34 string _name=
"Base",
double _endFactor=1.0,
int _period=1);
53 virtual double barePotentialAction (
const beadLocator &) {
return 0.0; }
54 virtual double potentialActionCorrection (
const beadLocator &) {
return 0.0; }
58 virtual double derivPotentialActionTau (
int) {
return 0.0; }
59 virtual double derivPotentialActionLambda (
int) {
return 0.0; }
60 virtual double secondderivPotentialActionTau (
int) {
return 0.0; }
63 virtual double derivPotentialActionTau (
int,
double) {
return 0.0; }
64 virtual double derivPotentialActionLambda (
int,
double) {
return 0.0; }
67 virtual dVec gradPotentialAction(
int) {
return 0.0; }
72 virtual double rDOTgradUterm1(
int) {
return 0.0; }
73 virtual double rDOTgradUterm2(
int) {
return 0.0; }
78 virtual double deltaDOTgradUterm1(
int) {
return 0.0; }
79 virtual double deltaDOTgradUterm2(
int) {
return 0.0; }
82 virtual double virKinCorr(
int) {
return 0.0; }
85 virtual TinyVector<double,2> potential(
int) {
return TinyVector<double,2>(0.0); }
86 virtual double potential(
int,
double) {
return 0.0; }
129 bool gaussianEnsemble;
130 double gaussianEnsembleSD;
155 const TinyVector<double,2>&,
bool _local=
true,
string _name=
"Local",
156 double _endFactor=1.0,
int _period=1);
176 virtual dVec gradPotentialAction(
int slice) {
return gradU(slice); }
190 virtual TinyVector<double,2> potential(
int slice) {
return V(slice); }
191 virtual double potential(
int slice,
double maxR) {
return V(slice,maxR); }
202 double V(
const int,
const double);
206 TinyVector <double,2>
V(
const int);
217 double Vnn(
const int);
233 double RdotgradUterm1(
const int);
234 double RdotgradUterm2(
const int);
262 string _name=
"Non-local");
274 virtual TinyVector<double,2> potential(
int slice) {
return U(slice); }
277 TinyVector<double,2>
U(
int);
Holds a base class that all action classes will be derived from.
WaveFunctionBase * waveFunctionPtr
A pointer to a trial wave function object.
const bool local
Is the action local in imaginary time?
Array< int, 1 > cylSepHist
A histogram of separations for a cylinder.
string name
The name of the action.
virtual double potentialAction()
The effective potential inter-ACTION for various pass conditions.
ActionBase(const Path &, LookupTable &, PotentialBase *, PotentialBase *, WaveFunctionBase *, bool _local=true, string _name="Base", double _endFactor=1.0, int _period=1)
Setup the path data members and canonical re-weighting factors.
double endFactor
Mutiplictive factor of the potential action on ends.
int getShift()
Get the tau scaling factor.
string getActionName()
Returns the action name.
Array< int, 1 > sepHist
A histogram of separations.
int numBeads0
The target number of beads.
PotentialBase * interactionPtr
The interaction potential.
bool canonical
Are we in the canonical ensemble?
LookupTable & lookup
We need a non-constant reference for updates.
double tau()
The local shifted value of tau.
PotentialBase * externalPtr
The external potential.
double ensembleWeight(const int)
The ensemble particle number weighting factor.
double kineticAction()
The full kinetic Action
virtual ~ActionBase()
Empty base constructor.
void setShift(int _shift)
The public method that sets the tau scaling factor.
void updateSepHist(const dVec &)
Update the separation histogram.
int shift
The scaling factor for tau.
const Path & path
A reference to the paths.
double rho0(const dVec &, const dVec &, int)
The free-particle density matrix.
double tau() const
Get imaginary time step.
A base class to be inherited by actions that are local in imaginary time.
double potentialAction()
Return the potential action for all time slices and all particles.
double deltadotgradUterm1(const int)
Return the sum over particles at a given time slice of the gradient of the action potential for a sin...
double potentialActionCorrection(const beadLocator &)
Return the potential action correction for a single bead.
virtual ~LocalAction()
Empty base constructor.
double rDOTgradUterm2(int)
Return the sum over particles at a given time slice of the gradient of the action potential for a sin...
double secondderivPotentialActionTau(int)
The second derivative of the potential action wrt tau on all links starting on slice.
dMat tMatrix(const int)
Returns the T-matrix needed to compute gradU.
double gradVSquared(const beadLocator &)
Return the gradient of the full potential squared for a single bead.
double virialKinCorrection(const int)
Returns the value of the virial kinetic energy correction term.
double derivPotentialActionLambda(int)
The derivative of the potential action wrt lambda for all links starting on slice.
double rDOTgradUterm1(int)
Return the sum over particles at a given time slice of the gradient of the action potential for a sin...
TinyVector< double, 2 > VFactor
The even/odd slice potential factor.
dVec gradU(const int)
Returns the value of the gradient of the potential action for all beads at a given time slice.
TinyVector< double, 2 > gradVFactor
The even/odd slice correction factor.
dVec gradientV(const int)
Return the gradient of the full potential for all beads at a single time slice.
LocalAction(const Path &, LookupTable &, PotentialBase *, PotentialBase *, WaveFunctionBase *, const TinyVector< double, 2 > &, const TinyVector< double, 2 > &, bool _local=true, string _name="Local", double _endFactor=1.0, int _period=1)
Setup the path data members and local action factors.
double derivPotentialActionTau(int)
The derivative of the potential action wrt tau on all links starting on slice.
double deltadotgradUterm2(const int)
Return the sum over particles at a given time slice of the gradient of the action potential for a sin...
int eo
Is a slice even or odd?
double barePotentialAction(const beadLocator &)
Return the bare potential action for a single bead indexed with beadIndex.
double V(const beadLocator &)
Returns the total value of the potential energy, including both the external potential,...
double Vnn(const beadLocator &)
Returns the total value of the potential energy, including both the external potential,...
double gradVnnSquared(const beadLocator &)
Return the gradient of the full potential squared for a single bead.
The particle (bead) lookup table.
A base class to be inherited by actions that are non-local in imaginary time.
double derivPotentialActionLambda(int)
The derivative of the potential action wrt lambda on all links starting on slice.
double potentialAction()
Return the potential action for all time slices and all particles.
NonLocalAction(const Path &, LookupTable &, PotentialBase *, PotentialBase *, WaveFunctionBase *, bool _local=false, string _name="Non-local")
Setup the path data members for non-local actions.
TinyVector< double, 2 > U(int)
Return the potential action for all time slices and all particles.
double derivPotentialActionTau(int)
The derivative of the potential action wrt tau on all links starting on slice.
virtual ~NonLocalAction()
Empty constructor.
The space-time trajectories.
The base class from which all specific potentials are derived from.
Holds a base class that all trial wave function classes will be derived from.
TinyMatrix< double, NDIM, NDIM > dMat
A NDIM x NDIM matrix of type double.
TinyVector< int, 2 > beadLocator
time-slice,bead-number world line index
TinyVector< double, NDIM > dVec
A NDIM-vector of type double.
ConstantParameters class definition.
ConstantParameters * constants()
Global public access to the constants.