Lattice
class description - source file - inheritance tree
private:
void PrecalculateDistances()
public:
Lattice Lattice()
Lattice Lattice(const int Na, const int Nb, const int Nc)
Lattice Lattice(const Lattice&)
virtual void ~Lattice()
static TClass* Class()
float Distance(const int i, const int j, const int k) const
float Distance(const int idx)
void FillRandom()
float*** Get() const
float Geta() const
float Getb() const
float Getc() const
float GetEnergy(int i, int j, int k) const
float GetEnergyDifference(int i, int j, int k, int di, int dj, int dk) const
int GetNa() const
int GetNb() const
int GetNc() const
virtual TClass* IsA() const
void ScaleEnergy(const float sigma)
void SetBase(const float a, const float b, const float c)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
protected:
float* fdistances precalculated distances
float*** fspace lattice energies
float fa
float fb
float fc base cell size in Angstroms
int fNa
int fNb
int fNc lattice size
float fsigma scale of the field, used to set sigma of FillRandom in eV
This class is for use to montecarlo
simulation of charge particle in a
disordered molecular crystal
it contains mechanism to get periodic
boundary conditions of lattice.
lattice contains integer coordinates
base cell size are floats
working space is by defaults 7x7x7 sites
Note:
- no bias here!!! see LSpace
- 1-based indexes of fspace(3D array)
- 0-based private index fdistances
Logs:
$Log: Lattice.cc,v $
Revision 1.7 2003/06/26 14:46:16 cvs
found a bug in LSpace::GetEnergy() with fbias. Bug successfully resolved :)
Revision 1.6 2003/06/26 11:24:25 cvs
modified particle moving with LMiki and faster LDisorder operations
Revision 1.5 2003/06/26 09:27:11 cvs
added log fields...
Lattice(const int Na,const int Nb,const int Nc)
create float lattice [1..Na][1..Nb][1..Nc] in memory with nrc f3tensor
base cell size is 1x1x1
~Lattice()
destroy Lattice and particles and free memory space
void SetBase(const float a,const float b,const float c)
Set lattice base cell size
void FillRandom()
fill fspace with normal energy distribution of sigma=unity
use ScaleEnergy() to get diferent sigma
void ScaleEnergy(const float sigma)
scale energy values
sigma in eV!!!
float Distance(const int i,const int j,const int k) const
Calculates distance from the given lattice vector
this method has no control about limits since it
is intended to be used with small values.
float Distance(const int idx)
return distance from the given lattice index
is intended to be used with LDisorder::Step.
void PrecalculateDistances()
precalculates distances to speed up the calculation
index is calculated as in LDisorder::Step
WARNING!!!
set parameters here regarding LDisorder::SetWSpace
working space for example 7x7x7
float GetEnergy(int i,int j,int k) const
return the energy of the lattice at the current position.
periodic boundary condition is used
Details:
This procedure returns the i,j,k is centered in the sublattice fWa,fWb,fWc
of latice fspace and periodic boudary condition is included
float GetEnergyDifference(int i,int j,int k,int di,int dj,int dk) const
return the energy difference of the latice at the i,j,k position (e1) and
the lattice site in the i+di,j+dj,k+dk position (e2)
de=e2-e1
calls GetEnergy()
it is not faster than two GetEnergy()
Inline Functions
Lattice Lattice(const int Na, const int Nb, const int Nc)
float*** Get() const
int GetNa() const
int GetNb() const
int GetNc() const
float Geta() const
float Getb() const
float Getc() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Lattice Lattice(const Lattice&)
Author: Egon Pavlica
Last update: Sat Oct 16 19:10:33 2004
ROOT page - Class index - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.