34 ensemble _operateOnConfig=ANY,
bool _varLength=
false);
143 void printMoveState(
string);
144 void checkMove(
int,
double);
161 static const string name;
183 static const string name;
207 static const string name;
232 static const string name;
255 static const string name;
279 static const string name;
304 static const string name;
308 Array <bool,1> include;
316 double oldDeltaAction;
333 ensemble _operateOnConfig=DIAGONAL,
bool _varLength=
true);
337 static const string name;
361 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
365 static const string name;
372 Array <int,1> oldBeadOn;
389 ensemble _operateOnConfig=DIAGONAL,
bool _varLength=
true);
393 static const string name;
417 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
421 static const string name;
442 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
446 static const string name;
459 Array <dVec,1> newPos;
460 Array <unsigned int,1> oldBeadOn;
476 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
480 static const string name;
504 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
508 static const string name;
531 ensemble _operateOnConfig=OFFDIAGONAL,
bool _varLength=
true);
535 static const string name;
558 ensemble _operateOnConfig=OFFDIAGONAL);
595 ensemble _operateOnConfig=OFFDIAGONAL);
599 static const string name;
623 ensemble _operateOnConfig=OFFDIAGONAL);
627 static const string name;
Holds a base class that all action classes will be derived from.
A derived class which performs an advance head move, causing the head of a worm in a off-diagonal con...
~AdvanceHeadMove()
Destructor.
string getName()
return the move name
AdvanceHeadMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
bool attemptMove()
Perform an advance head move.
A derived class which performs an advance tail move, causing the tail of a worm in a off-diagonal con...
~AdvanceTailMove()
Destructor.
bool attemptMove()
Perform an advance tail move.
string getName()
return the move name
AdvanceTailMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
A derived class which performs a bisection move, which exactly samples the kinetic action.
BisectionMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
bool attemptMove()
Bisection Move : attempt Move.
~BisectionMove()
Destructor.
string getName()
return the move name
A derived class which performs a simple displacement of the center of mass of the entire wordline for...
CenterOfMassMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
string getName()
return the move name
bool attemptMove()
Performs a Center of Mass move.
~CenterOfMassMove()
Destructor.
A derived class which performs a close move, creating a diagonal world line configuration.
string getName()
return the move name
bool attemptMove()
Perform a close move.
CloseMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
A derived class which performs a simple single slice displacement move.
bool attemptMove()
Perform a single slice update on the head or tail.
DisplaceMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
string getName()
return the move name
string getName()
return the move name
EndStagingMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
bool attemptMove()
Perform a single slice update on the head or tail.
A derived class which performs an insert move, creating an off-diagonal world line configuration with...
string getName()
return the move name
bool attemptMove()
Perform an insert move.
InsertMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=DIAGONAL, bool _varLength=true)
Constructor.
MidStagingMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
bool attemptMove()
CMH: Add a description for this update.
string getName()
return the move name
The base class that all moves will be derived from.
double sqrtLambdaTau
sqrt(Lambda * tau)
virtual ~MoveBase()
Destructor.
dVec neighborPos
Staging neighbor position.
bool variableLength
Does the move have a variable length?
uint32 numAttempted
The number of attempted moves.
Array< dVec, 1 > originalPos
The original particle positions.
vector< iVec > winding
The winding vectors
Array< dVec, 1 > newPos
New particle positions.
int getNumAccepted()
Get the number of moves accepted.
iVec getWindingNumber(const beadLocator &, const beadLocator &)
Find the winding number for a path between two beads.
int getNumAcceptedLevel(int n)
Get the number of moves accepted by level.
double getAcceptanceRatio()
Get the acceptance ratio.
int getNumAttemptedLevel(int n)
Get the number of moves attempted by level.
double oldV
The old and new potential action.
Path & path
A reference to the paths.
MoveBase(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY, bool _varLength=false)
Move naming conventions:
dVec newFreeParticlePosition(const beadLocator &)
Generates a new position, which exactly samples the free particle density matrix.
void resetAccept()
Reset the number accepted counter.
int numWind
The total number of winding vectors.
dVec newStagingPosition(const beadLocator &, const beadLocator &, const int, const int)
Returns a new staging position which will exactly sample the kinetic action.
double getTotAcceptanceRatio()
Get the total acceptance ratio.
iVec sampleWindingSector(const beadLocator &, const beadLocator &, const int, double &)
Obtain a winding sector for a stage-like move.
virtual bool attemptMove()=0
Attempt the move (will be overloaded).
void resetTotAccept()
Reset the total accepted counter.
dVec newBisectionPosition(const beadLocator &, const int)
Returns a new bisection position which will exactly sample the kinetic action.
ensemble operateOnConfig
What configurations do we operate on?
virtual void undoMove()=0
undo the move
MTRand & random
A reference to the RNG.
int maxWind
The largest winding number.
beadLocator nBeadIndex
Neighbor bead index.
double deltaAction
The action difference.
ActionBase * actionPtr
A base pointer to the action.
int numToMove
The number of particles moved.
virtual string getName()
return the move name
int getNumAttempted()
Get the number of moves attempted.
uint32 numAccepted
The number of accepted moves.
dVec newRanPos
Staing random position.
vector< int > windingSector
Used to index different winding sectors.
static uint32 totAccepted
The total number of moves accepted.
double getAcceptanceRatioLevel(int n)
Get the acceptance ratio by level.
virtual void keepMove()
Keep the move.
double newAction
The new potential action.
Array< uint32, 1 > numAttemptedLevel
The number of moves attempted at each level.
bool success
Did we sucessfully perform a move?
double sqrt2LambdaTau
sqrt(2 * Lambda * tau)
double oldAction
The original potential action.
static uint32 totAttempted
The total number of moves attempted.
Array< uint32, 1 > numAcceptedLevel
The number of moves accepted at each level.
vector< double > cumrho0
Used for tower-sampling winding sectors.
double oldK
The old and new kinetic action.
A derived class which performs an open move, creating a worm with a well defined head and tail.
OpenMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=DIAGONAL, bool _varLength=true)
Constructor.
bool attemptMove()
Perform an open move.
string getName()
return the move name
The main driver class for the entire path integral monte carlo program.
The space-time trajectories.
A derived class which performs a recede move on the head, causing a worm head to propagate backwards ...
string getName()
return the move name
bool attemptMove()
Perform a recede head move.
~RecedeHeadMove()
Destructor.
RecedeHeadMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
A derived class which performs a recede move on the tail, causing a worm tail to propagate backwards ...
string getName()
return the move name
RecedeTailMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
bool attemptMove()
Perform a recede tail move.
~RecedeTailMove()
Destructor.
A derived class which performs a remove move, creating a diagonal world line configuration by destroy...
bool attemptMove()
Perform a remove move.
RemoveMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true)
Constructor.
string getName()
return the move name
A derived class which performs a staging move, which exactly samples the kinetic action.
bool attemptMove()
Perform the staging move.
StagingMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
string getName()
return the move name
~StagingMove()
Destructor.
SwapBreakMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY)
Constructor.
string getName()
return the move name
bool attemptMove()
CMH: Please add a method description for this move.
A derived class which performs a swap head move, which mixes up worldlines by reconnecting the worm h...
~SwapHeadMove()
Destructor.
SwapHeadMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL)
Constructor.
string getName()
return the move name
bool attemptMove()
Perform a swap head move.
A derived class which forms the base of a swap head and swap tail move class.
beadLocator pivot
The pivot bead.
SwapMoveBase(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL)
Constructor.
vector< double > cumulant
The cumulant array used in selecting a pivot.
beadLocator selectPivotBead()
Select the pivot bead for a swap move.
double SigmaSwap
Probability normalization factor.
~SwapMoveBase()
Destructor.
double getNorm(const beadLocator &, const int sign=1)
Get the normalization constant for a swap move.
unsigned int sizeCDF
The size of the cumulative distribution function.
beadLocator swap
The swap bead.
int swapLength
The length of worldLine to be moved.
int numLevels
The number of bisection levels.
A derived class which performs a swap tail move, which mixes up worldlines by reconnecting the worm t...
~SwapTailMove()
Destructor.
bool attemptMove()
Perform a swap tail move.
string getName()
return the move name
SwapTailMove(Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL)
Constructor.
Global common header with shared dependencies and methods.
unsigned long uint32
Unsigned integer type, at least 32 bits.
TinyVector< int, 2 > beadLocator
time-slice,bead-number world line index
ensemble
Each move can operate on only the digaonal ensemble, only the off-diagonal ensemble,...
TinyVector< double, NDIM > dVec
A NDIM-vector of type double.
TinyVector< int, NDIM > iVec
A NDIM-vector of type integer.