72 beadIndex = slice,ptcl;
73 pos =
path(beadIndex);
74 r = sqrt(dot(pos,pos));
75 psiT *= 1.0/cosh(a*r);
112 double psiT = exp( -0.5*alpha/(1.0+beta*pow(r,5.0)));
121 double delpsiT = 2.5*alpha*beta*pow(r,4.0)/pow((1.0+beta*pow(r,5.0)),2.0);
130 double delSqPsiT = -1.25*alpha*beta*pow(r,3.0)*(-8.0+
131 beta*(4.0-5.0*alpha)*pow(r,5.0)+12.0*pow(beta,2.0)*pow(r,10.0) )/
132 ( pow((1.0+beta*pow(r,5.0)),4.0) );
147 bead1[0] = bead2[0] = slice;
149 for (bead1[1] = 0; bead1[1] < numParticles; bead1[1]++) {
152 for (bead2[1] = bead1[1]+1; bead2[1] < numParticles; bead2[1]++) {
154 r = sqrt(dot(sep,sep));
169 double gradSqPsiT = 1.0;
175 bead1[0] = bead2[0] = bead3[0] = slice;
177 for (bead1[1] = 0; bead1[1] < numParticles; bead1[1]++) {
180 for (bead2[1] = bead1[1]+1; bead2[1] < numParticles; bead2[1]++) {
182 r = sqrt(dot(sep,sep));
185 for (bead3[1] = bead2[1]+1; bead3[1] < numParticles; bead3[1]++) {
187 r = sqrt(dot(sep,sep));
229 psiT = cos(k*(abs(r)-R));
262 bead1[0] = bead2[0] = slice;
279 doParticles(bead1[1]) =
false;
287 if (doParticles(bead2[1])) {
289 r = sqrt(dot(sep,sep));
332 r = sqrt(dot(sep,sep));
360 double _lambda,
string _name) :
391 bead1[0] = bead2[0] = slice;
394 for (bead1[1] = 0; bead1[1] < numParticles; bead1[1]++) {
396 for (bead2[1] = bead1[1]+1; bead2[1] < numParticles; bead2[1]++) {
398 r = sqrt(dot(sep,sep));
double R_LL_wfn() const
Get Lieb-Liniger length scale.
double k_LL_wfn() const
Get Lieb-Liniger wave number.
double L() const
Get maximum side length.
JastrowWaveFunction(const Path &, LookupTable &_lookup, string _name="Jastrow")
Constructor.
double gradSqPsiTrial(const int)
The value of the N-body trial wave function.
double delSqPsiTrial(const double r)
The derivative of psi over psi.
double PsiTrial(const double)
The value of the 2-body trial wave function.
double delPsiTrial(const double r)
The derivative of psi over psi.
~JastrowWaveFunction()
Destructor.
double gradSqPsiTrial(const int)
The value of the N-body trial wave function.
double PsiTrial(const double)
The value of the 2-body trial wave function.
double delPsiTrial(const double r)
The derivative of psi over psi.
LiebLinigerWaveFunction(const Path &, LookupTable &_lookup, string _name="LiebLiniger")
Constructor.
~LiebLinigerWaveFunction()
Destructor.
double delSqPsiTrial(const double r)
The derivative of psi over psi.
The particle (bead) lookup table.
Array< beadLocator, 1 > beadList
The cutoff dynamic list of interacting beads.
void updateInteractionList(const Path &, const beadLocator &)
Update the NN lookup table and the array of beadLocators containing all beads which 'interact' with t...
int numBeads
The cutoff number of active beads in beadList;.
The space-time trajectories.
dVec getSeparation(const beadLocator &, const beadLocator &) const
Return the separation vector between two particles in the same timeslice.
Array< int, 1 > numBeadsAtSlice
The number of active beads at a given time slice.
Worm worm
Details on the worm.
double PsiTrial(const int)
The value of the trial wave function.
SechWaveFunction(const Path &, LookupTable &_lookup, string _name="SHO sech")
Constructor.
~SechWaveFunction()
Destructor.
SutherlandWaveFunction(const Path &, LookupTable &_lookup, double, string _name="Sutherland")
Constructor.
~SutherlandWaveFunction()
Destructor.
double PsiTrial(const double r)
The 2-body trial wavefunction.
Holds a base class that all trial wave function classes will be derived from.
LookupTable & lookup
We need a non-constant reference for updates.
virtual ~WaveFunctionBase()
Empty base constructor.
WaveFunctionBase(const Path &, LookupTable &_lookup, string _name="constant")
Setup the path data members for the constant trial wavefunction.
const Path & path
A reference to the paths.
int beadOn(int, int) const
Safely get a bead (int indexed)
TinyVector< int, 2 > beadLocator
time-slice,bead-number world line index
TinyVector< double, NDIM > dVec
A NDIM-vector of type double.
ConstantParameters * constants()
Global public access to the constants.
Action class definitions.