Class : XYReflexionSymmetricPeriodic3DHamiltonian

class deriving from AbstractHamiltonian

XYReflexionSymmetricPeriodic3DHamiltonian :

prototype: XYReflexionSymmetricPeriodic3DHamiltonian (XYReflexionSymmetricPeriodic3DOneParticle* , bool , bool , double , double , double , double , double , double , int , int , int , ThreeDConstantCellPotential* PotentialInput )

description:constructor from data


input parameters:
space = Hilbert space
pairX = whether basis is pair in X direction, if not impair
pairY = whether basis is pair in Y direction, if not impair
xSize = the sample length in X direction
ySize = the sample length in Y direction
zSize = the sample length in Z direction
mux = effective mass in X direction
muy = effective mass in Y direction
muz = effective mass in Z direction
nbrCellX = number of steps in X direction
nbrCellY = number of steps in Y direction
nbrCellZ = number of steps in Z direction
PotentielInput = pointer to a 3D potential with constant value in a cell



XYReflexionSymmetricPeriodic3DHamiltonian :

prototype: XYReflexionSymmetricPeriodic3DHamiltonian (const XYReflexionSymmetricPeriodic3DHamiltonian& hamiltonian )

description:copy constructor (without duplicating datas)


input parameters:
hamiltonian = reference on hamiltonian to copy



~XYReflexionSymmetricPeriodic3DHamiltonian :

prototype: ~XYReflexionSymmetricPeriodic3DHamiltonian ()

description:destructor



XYReflexionSymmetricPeriodic3DHamiltonian::Clone :

prototype: AbstractHamiltonian* XYReflexionSymmetricPeriodic3DHamiltonian::Clone ()

description:clone hamiltonian without duplicating datas


input parameters:


return value: pointer to cloned hamiltonian



SetHilbertSpace :

prototype: void SetHilbertSpace (AbstractHilbertSpace* hilbertSpace )

description:set Hilbert space


input parameters:
hilbertSpace = pointer to Hilbert space to use



GetHilbertSpace :

prototype: AbstractHilbertSpace* GetHilbertSpace ()

description:get Hilbert space on which Hamiltonian acts


input parameters:


return value: pointer to used Hilbert space



GetHilbertSpaceDimension :

prototype: int GetHilbertSpaceDimension ()

description:return dimension of Hilbert space where Hamiltonian acts


input parameters:


return value: corresponding matrix elementdimension



ShiftHamiltonian :

prototype: void ShiftHamiltonian (double shift )

description:shift Hamiltonian from a given energy


input parameters:
shift = shift value



MatrixElement :

prototype: 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: 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: 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: ComplexVector& LowLevelMultiply (ComplexVector& , ComplexVector& , int , int nbrComponent )

description:multiply a vector by the current hamiltonian for a given range of idinces
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: 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: 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



EvaluateInteractionFactors :

prototype: void EvaluateInteractionFactors (bool , bool pairY )

description:evaluate all interaction factors


input parameters:
pairX = whether basis is pair in X direction, if not impair
pairY = whether basis is pair in Y direction, if not impair



EvaluateSinusWaveFunctionOverlap :

prototype: double*** EvaluateSinusWaveFunctionOverlap (double , int , int nbrState )

description:evaluate sinus wave function overlaps on a cell in a given direction


input parameters:
size = system length in the choosen direction
nbrStep = number of subdivision in the choosen direction
nbrState = number of state in the choosen direction


return value: tridimensionnal array containg all matrix elements for all cells (first two indices using symmetric storage)



EvaluateCosinusWaveFunctionOverlap :

prototype: double*** EvaluateCosinusWaveFunctionOverlap (double , int , int nbrState )

description:evaluate cosinus wave function overlaps on a cell in a given direction


input parameters:
size = system length in the choosen direction
nbrStep = number of subdivision in the choosen direction
nbrState = number of state in the choosen direction


return value: tridimensionnal array containg all matrix elements for all cells (first two indices using symmetric storage)



EvaluatePlaneWaveFunctionOverlap :

prototype: bool EvaluatePlaneWaveFunctionOverlap (int , int , double** , double** &imaginaryArray )

description:evaluate the plane wave function overlap


input parameters:
nbrStep = number of steps in the given direction
nbrState = number of states chosen for this direction
realArray = 2D array containing the real elements of the overlap
imaginaryArray = 2D array containing the imaginary elements of the overlap



Back to index.