Path Integral Quantum Monte Carlo
|
A derived class which performs an advance head move, causing the head of a worm in a off-diagonal configuration to advance in imaginary time. More...
#include <move.h>
Public Member Functions | |
AdvanceHeadMove (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true) | |
Constructor. | |
~AdvanceHeadMove () | |
Destructor. | |
bool | attemptMove () |
Perform an advance head move. More... | |
string | getName () |
return the move name | |
Public Member Functions inherited from MoveBase | |
MoveBase (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY, bool _varLength=false) | |
Move naming conventions: More... | |
virtual | ~MoveBase () |
Destructor. | |
double | getAcceptanceRatio () |
Get the acceptance ratio. | |
double | getTotAcceptanceRatio () |
Get the total acceptance ratio. | |
double | getAcceptanceRatioLevel (int n) |
Get the acceptance ratio by level. | |
int | getNumAttempted () |
Get the number of moves attempted. | |
int | getNumAccepted () |
Get the number of moves accepted. | |
int | getNumAttemptedLevel (int n) |
Get the number of moves attempted by level. | |
int | getNumAcceptedLevel (int n) |
Get the number of moves accepted by level. | |
void | resetTotAccept () |
Reset the total accepted counter. | |
void | resetAccept () |
Reset the number accepted counter. | |
Static Public Attributes | |
static const string | name |
Additional Inherited Members | |
Data Fields inherited from MoveBase | |
ensemble | operateOnConfig |
What configurations do we operate on? | |
bool | variableLength |
Does the move have a variable length? | |
string | name1 |
Protected Member Functions inherited from MoveBase | |
dVec | newStagingPosition (const beadLocator &, const beadLocator &, const int, const int) |
Returns a new staging position which will exactly sample the kinetic action. More... | |
dVec | newStagingPosition (const beadLocator &, const beadLocator &, const int, const int, iVec &) |
Returns a new staging position which will exactly sample the kinetic action in different winding sectors. More... | |
iVec | sampleWindingSector (const beadLocator &, const beadLocator &, const int, double &) |
Obtain a winding sector for a stage-like move. More... | |
iVec | getWindingNumber (const beadLocator &, const beadLocator &) |
Find the winding number for a path between two beads. More... | |
dVec | newFreeParticlePosition (const beadLocator &) |
Generates a new position, which exactly samples the free particle density matrix. More... | |
dVec | newBisectionPosition (const beadLocator &, const int) |
Returns a new bisection position which will exactly sample the kinetic action. More... | |
void | printMoveState (string) |
void | checkMove (int, double) |
Protected Attributes inherited from MoveBase | |
Path & | path |
A reference to the paths. | |
ActionBase * | actionPtr |
A base pointer to the action. | |
MTRand & | random |
A reference to the RNG. | |
bool | success |
Did we sucessfully perform a move? | |
uint32 | numAccepted |
The number of accepted moves. | |
uint32 | numAttempted |
The number of attempted moves. | |
int | numToMove |
The number of particles moved. | |
int | numLevels |
Array< uint32, 1 > | numAcceptedLevel |
The number of moves accepted at each level. | |
Array< uint32, 1 > | numAttemptedLevel |
The number of moves attempted at each level. | |
Array< dVec, 1 > | originalPos |
The original particle positions. | |
Array< dVec, 1 > | newPos |
New particle positions. | |
vector< iVec > | winding |
The winding vectors | |
vector< int > | windingSector |
Used to index different winding sectors. | |
vector< double > | cumrho0 |
Used for tower-sampling winding sectors. | |
int | maxWind |
The largest winding number. | |
int | numWind |
The total number of winding vectors. | |
double | oldAction |
The original potential action. | |
double | newAction |
The new potential action. | |
double | deltaAction |
The action difference. | |
double | sqrt2LambdaTau |
sqrt(2 * Lambda * tau) | |
double | sqrtLambdaTau |
sqrt(Lambda * tau) | |
beadLocator | nBeadIndex |
Neighbor bead index. | |
dVec | neighborPos |
Staging neighbor position. | |
dVec | newRanPos |
Staing random position. | |
double | newK |
double | oldK |
The old and new kinetic action. | |
double | newV |
double | oldV |
The old and new potential action. | |
Static Protected Attributes inherited from MoveBase | |
static uint32 | totAccepted = 0 |
The total number of moves accepted. | |
static uint32 | totAttempted = 0 |
The total number of moves attempted. | |
A derived class which performs an advance head move, causing the head of a worm in a off-diagonal configuration to advance in imaginary time.
|
virtual |
Perform an advance head move.
Attempt to advance a worm head in imaginary time by a random number of slices. We generate the new bead positions from the free particle density matrix. It is only possible if we already have an off-diagonal configuration.
Implements MoveBase.
Definition at line 2430 of file move.cpp.