#include <FreeParticleNodes.h>
Inheritance diagram for FreeParticleNodes:

Public Types | |
| typedef tvmet::Matrix< double, NDIM, NDIM > | Mat |
| typedef blitz::Array< double, 2 > | Matrix |
| typedef blitz::Array< Vec, 2 > | VMatrix |
| typedef blitz::Array< Mat, 2 > | MMatrix |
| typedef blitz::Array< double, 1 > | Array |
| typedef blitz::Array< int, 1 > | IArray |
| typedef blitz::ColumnMajorArray< 2 > | ColMajor |
Public Member Functions | |
| FreeParticleNodes (const SimulationInfo &, const Species &, const double temperature, const int maxlevel) | |
| Constructor. | |
| virtual | ~FreeParticleNodes () |
| Virtual destructor. | |
| virtual double | evaluate (const VArray &r1, const VArray &r2, const int islice) |
| Evaluate the density matrix function, returning the value. | |
| virtual void | evaluateDistance (const VArray &r1, const VArray &r2, const int islice, Array &d1, Array &d2) |
Evaluate distance to the node in units of . | |
| virtual void | evaluateGradLogDist (const VArray &r1, const VArray &r2, const int islice, VMatrix &gradd1, VMatrix &gradd2, const Array &d1, const Array &d2) |
Evaluate gradient of log of the distance to the node in units of . | |
Private Attributes | |
| const double | tau |
| The time step. | |
| const double | mass |
| The mass. | |
| const int | npart |
| Number of particles of this type of fermion. | |
| const int | ifirst |
| Index of first particle of this type of fermion. | |
| int | nslice |
| Number of slices. | |
| std::vector< Matrix * > | matrix |
| The inverse slater matricies. | |
| VMatrix | gradmat |
| Gradient of the slater determinant. | |
| IArray | ipiv |
| Matrix diagonalization arrays. | |
| const int | lwork |
| Array | work |
| SuperCell & | cell |
| The SuperCell. | |
| std::vector< PeriodicGaussian * > | pg |
| A periodic gaussian. | |
| bool | notMySpecies |
| Flag for checking if this species is being moved. | |
| VArray | gradArray1 |
| Storage for first derivatives needed for forces. | |
| VArray | gradArray2 |
| Storage for first derivatives needed for forces. | |
We define the node model as a slater determinant of density matricies of single, free particles,
where
For periodic boundary conditions, we use must use a PeriodicGaussian. Note that the normalization factor is not needed for a NodeModel.
We estimate the distance to the node as the inverse log gradient,
.
The gradient of the distance is given by first and second derivatives of the trial density matrix,
where the indicies refer to particles.
Definition at line 39 of file FreeParticleNodes.h.
|
|
Reimplemented from NodeModel. Definition at line 45 of file FreeParticleNodes.h. Referenced by evaluateDistance(), and evaluateGradLogDist(). |
|
|
Definition at line 47 of file FreeParticleNodes.h. Referenced by FreeParticleNodes(). |
|
|
Definition at line 46 of file FreeParticleNodes.h. |
|
|
Definition at line 41 of file FreeParticleNodes.h. Referenced by evaluateGradLogDist(). |
|
|
Definition at line 42 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), evaluateGradLogDist(), and FreeParticleNodes(). |
|
|
Definition at line 44 of file FreeParticleNodes.h. |
|
|
Reimplemented from NodeModel. Definition at line 43 of file FreeParticleNodes.h. Referenced by evaluateGradLogDist(). |
|
||||||||||||||||||||
|
Constructor.
Definition at line 21 of file FreeParticleNodes.cc. References SuperCell::a, cell, ColMajor, mass, Matrix, matrix, npart, and pg. |
|
|
Virtual destructor.
Definition at line 44 of file FreeParticleNodes.cc. References pg. |
|
||||||||||||||||
|
Evaluate the density matrix function, returning the value.
Implements NodeModel. Definition at line 48 of file FreeParticleNodes.cc. References cell, DGETRF_F77, DGETRI_F77, ifirst, ipiv, lwork, matrix, Matrix, npart, SuperCell::pbc(), pg, NodeModel::Vec, and work. |
|
||||||||||||||||||||||||
|
Evaluate distance to the node in units of
Implements NodeModel. Definition at line 76 of file FreeParticleNodes.cc. References Array, cell, gradArray1, gradArray2, ifirst, mass, matrix, Matrix, npart, SuperCell::pbc(), pg, tau, and NodeModel::Vec. |
|
||||||||||||||||||||||||||||||||
|
Evaluate gradient of log of the distance to the node in units of
Implements NodeModel. Definition at line 114 of file FreeParticleNodes.cc. References Array, cell, gradArray1, gradArray2, ifirst, mass, Mat, matrix, Matrix, npart, SuperCell::pbc(), pg, tau, NodeModel::Vec, and VMatrix. |
|
|
The SuperCell.
Definition at line 84 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), evaluateGradLogDist(), and FreeParticleNodes(). |
|
|
Storage for first derivatives needed for forces.
Definition at line 90 of file FreeParticleNodes.h. Referenced by evaluateDistance(), and evaluateGradLogDist(). |
|
|
Storage for first derivatives needed for forces.
Definition at line 90 of file FreeParticleNodes.h. Referenced by evaluateDistance(), and evaluateGradLogDist(). |
|
|
Gradient of the slater determinant.
Definition at line 78 of file FreeParticleNodes.h. |
|
|
Index of first particle of this type of fermion.
Definition at line 72 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), and evaluateGradLogDist(). |
|
|
Matrix diagonalization arrays.
Definition at line 80 of file FreeParticleNodes.h. Referenced by evaluate(). |
|
|
Definition at line 81 of file FreeParticleNodes.h. Referenced by evaluate(). |
|
|
The mass.
Definition at line 68 of file FreeParticleNodes.h. Referenced by evaluateDistance(), evaluateGradLogDist(), and FreeParticleNodes(). |
|
|
The inverse slater matricies.
Definition at line 76 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), evaluateGradLogDist(), and FreeParticleNodes(). |
|
|
Flag for checking if this species is being moved.
Definition at line 88 of file FreeParticleNodes.h. |
|
|
Number of particles of this type of fermion.
Definition at line 70 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), evaluateGradLogDist(), and FreeParticleNodes(). |
|
|
Number of slices.
Definition at line 74 of file FreeParticleNodes.h. |
|
|
A periodic gaussian.
Definition at line 86 of file FreeParticleNodes.h. Referenced by evaluate(), evaluateDistance(), evaluateGradLogDist(), FreeParticleNodes(), and ~FreeParticleNodes(). |
|
|
The time step.
Definition at line 66 of file FreeParticleNodes.h. Referenced by evaluateDistance(), and evaluateGradLogDist(). |
|
|
Definition at line 82 of file FreeParticleNodes.h. Referenced by evaluate(). |
1.3.4