Class : AbstractHamiltonian
~AbstractHamiltonian :
prototype: virtual ~AbstractHamiltonian ()
description:destructor
SetHilbertSpace :
prototype: virtual void SetHilbertSpace (AbstractHilbertSpace* hilbertSpace )
description:clone hamiltonian without duplicating datas
input parameters:
return value: pointer to cloned hamiltonian
virtual AbstractHamiltonian* Clone () = 0;
set Hilbert space
input parameters:
hilbertSpace = pointer to Hilbert space to use
GetHilbertSpace :
prototype: virtual AbstractHilbertSpace* GetHilbertSpace ()
description:get Hilbert space on which Hamiltonian acts
input parameters:
return value: pointer to used Hilbert space
GetHilbertSpaceDimension :
prototype: virtual int GetHilbertSpaceDimension ()
description:return dimension of Hilbert space where Hamiltonian acts
input parameters:
return value: corresponding matrix elementdimension
ShiftHamiltonian :
prototype: virtual void ShiftHamiltonian (double shift )
description:shift Hamiltonian from a given energy
input parameters:
shift = shift value
GetHamiltonian :
prototype: virtual HermitianMatrix& GetHamiltonian (HermitianMatrix& M )
description:store Hamiltonian into an hermitian matrix
input parameters:
M = reference on matrix where Hamiltonian has to be stored
return value: reference on corresponding hermitian matrix
GetHamiltonian :
prototype: virtual RealSymmetricMatrix& GetHamiltonian (RealSymmetricMatrix& M )
description:store real part of Hamiltonian into a real symmetric matrix
input parameters:
M = reference on matrix where Hamiltonian has to be stored
return value: reference on corresponding real symmetric matrix
GetHamiltonian :
prototype: virtual Matrix& GetHamiltonian (Matrix& M )
description:store real part of Hamiltonian into a matrix
input parameters:
M = reference on matrix where Hamiltonian has to be stored
return value: reference on corresponding matrix
GetHamiltonian :
prototype: virtual Matrix* GetHamiltonian ()
description:return matrix representation of current Hamiltonian
input parameters:
return value: reference to representation
GetHamiltonianPicture :
prototype: AbstractBitmapPicture* GetHamiltonianPicture (double error )
description:store Hamiltonian into a picture (drawing non zero element in black)
input parameters:
error = absolute minimum value to be considered as non zero element
return value: pointer to the picture associated to the matrix
GetHamiltonianColorPicture :
prototype: AbstractBitmapPicture* GetHamiltonianColorPicture (double error )
description:store Hamiltonian into a picture (drawing non zero element with a color scale)
input parameters:
error = absolute minimum value to be considered as non zero element
return value: pointer to the picture associated to the matrix
LeftInteractionOperators :
prototype: virtual List LeftInteractionOperators ()
description:return a list of left interaction operators
input parameters:
return value: list of left interaction operators
RightInteractionOperators :
prototype: virtual List RightInteractionOperators ()
description:return a list of right interaction operators
input parameters:
return value: list of right interaction operators
MatrixElement :
prototype: virtual Complex MatrixElement (RealVector& , RealVector& V2 )
description:evaluate matrix element
input parameters:
V1 = vector to left multiply with current matrix
V2 = vector to right multiply with current matrix
return value: corresponding matrix element
MatrixElement :
prototype: virtual Complex MatrixElement (ComplexVector& , ComplexVector& V2 )
description:evaluate matrix element
input parameters:
V1 = vector to left multiply with current matrix
V2 = vector to right multiply with current matrix
return value: corresponding matrix element
LowLevelMultiply :
prototype: virtual RealVector& LowLevelMultiply (RealVector& , RealVector& vDestination )
description:multiply a vector by the current hamiltonian and store result in another vector
low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
return value: reference on vectorwhere result has been stored
LowLevelMultiply :
prototype: virtual RealVector& LowLevelMultiply (RealVector& , RealVector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and store result in another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
LowLevelAddMultiply :
prototype: virtual RealVector& LowLevelAddMultiply (RealVector& , RealVector& vDestination )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
return value: reference on vectorwhere result has been stored
LowLevelAddMultiply :
prototype: virtual RealVector& LowLevelAddMultiply (RealVector& , RealVector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
LowLevelMultiply :
prototype: virtual ComplexVector& LowLevelMultiply (ComplexVector& , ComplexVector& vDestination )
description:multiply a vector by the current hamiltonian and store result in another vector
low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
return value: reference on vectorwhere result has been stored
LowLevelMultiply :
prototype: virtual ComplexVector& LowLevelMultiply (ComplexVector& , ComplexVector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and store result in another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
LowLevelAddMultiply :
prototype: virtual ComplexVector& LowLevelAddMultiply (ComplexVector& , ComplexVector& vDestination )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
return value: reference on vectorwhere result has been stored
LowLevelAddMultiply :
prototype: virtual ComplexVector& LowLevelAddMultiply (ComplexVector& , ComplexVector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
Multiply :
prototype: virtual Vector& Multiply (Vector& , Vector& vDestination )
description:multiply a vector by the current hamiltonian and store result in another vector
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
return value: reference on vectorwhere result has been stored
Multiply :
prototype: virtual Vector& Multiply (Vector& , Vector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and store result in another vector
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
AddMultiply :
prototype: virtual Vector& AddMultiply (Vector& , Vector& vDestination )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
return value: reference on vectorwhere result has been stored
AddMultiply :
prototype: virtual Vector& AddMultiply (Vector& , Vector& ,
int , int nbrComponent )
description:multiply a vector by the current hamiltonian for a given range of indices
and add result to another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector at which result has to be added
firstComponent = index of the first component to evaluate
nbrComponent = number of components to evaluate
return value: reference on vector where result has been stored
LowLevelMultiply :
prototype: virtual RealVector& LowLevelMultiply (RealVector& , RealVector& , int nbrProcess )
description:multiply a vector by the current hamiltonian using threads
and store result in another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
nbrProcess = number of process to run
return value: reference on vector where result has been stored
LowLevelMultiply :
prototype: virtual ComplexVector& LowLevelMultiply (ComplexVector& , ComplexVector& , int nbrProcess )
description:multiply a vector by the current hamiltonian using threads
and store result in another vector, low level function (no architecture optimization)
input parameters:
vSource = vector to be multiplied
vDestination = vector where result has to be stored
nbrProcess = number of process to run
return value: reference on vector where result has been stored
Lanczos :
prototype: virtual RealTriDiagonalSymmetricMatrix& Lanczos (int , RealTriDiagonalSymmetricMatrix& , ComplexVector& V1 )
description:Tridiagonalize an hermitian matrix using Lanczos algorithm without re-orthogonalizing base at each step
input parameters:
dimension = maximum iteration number
M = reference on complex tridiagonal hermitian matrix where result has to be stored
V1 = reference on complex vector used as first vector (will contain last produced vector at the end)
return value: reference on complex tridiagonal hermitian matrix
ReorthogonalizedLanczos :
prototype: virtual RealTriDiagonalSymmetricMatrix& ReorthogonalizedLanczos (int , RealTriDiagonalSymmetricMatrix& ,
RealVector& , int step = 1 )
description:Tridiagonalize hamiltonian using Lanczos algorithm with partial base re-orthogonalization
input parameters:
dimension = maximum iteration number
M = reference on complex tridiagonal hermitian matrix where result has to be stored
V1 = reference on real vector used as first vector (will contain last produced vector at the end)
step = number of iterations before re-orthogonalizing whole base
return value: reference on complex tridiagonal hermitian matrix
FullReorthogonalizedLanczos :
prototype: virtual RealTriDiagonalSymmetricMatrix& FullReorthogonalizedLanczos (int , RealTriDiagonalSymmetricMatrix& , RealVector& V1 )
description:Tridiagonalize hamiltonian using Lanczos algorithm with base re-orthogonalization
input parameters:
dimension = maximum iteration number
M = reference on real tridiagonal hermitian matrix where result has to be stored
V1 = reference on real vector used as first vector (will contain last produced vector at the end)
return value: reference on complex tridiagonal hermitian matrix
Lanczos :
prototype: virtual RealTriDiagonalSymmetricMatrix& Lanczos (int , RealTriDiagonalSymmetricMatrix& , RealVector& V1 )
description:Tridiagonalize an hermitian matrix using Lanczos algorithm without re-orthogonalizing base at each step
input parameters:
dimension = maximum iteration number
M = reference on complex tridiagonal hermitian matrix where result has to be stored
V1 = reference on complex vector used as first vector (will contain last produced vector at the end)
return value: reference on complex tridiagonal hermitian matrix
Lanczos :
prototype: RealTriDiagonalSymmetricMatrix& Lanczos (int , RealTriDiagonalSymmetricMatrix& ,
RealVector& , RealVector& , bool useV2 = false )
description:Tridiagonalize an hermitian matrix using Lanczos algorithm without re-orthogonalizing base at each step
input parameters:
dimension = maximum iteration number
M = reference on real tridiagonal symmetric matrix where result has to be stored
V1 = reference on real vector used as first vector (will contain last produced vector at the end)
V2 = reference on real vector used as second vector (will contain next to last produced vector at the end)
useV2 = true if V2 already contains result of second Lanczos iteration, in that case M is supposed to give
results of previous Lanczos iteration
return value: reference on real tridiagonal symmetric matrix
Back to index.