Path Integral Quantum Monte Carlo
|
A derived class which performs an insert move, creating an off-diagonal world line configuration with a single worm. More...
#include <move.h>
Public Member Functions | |
InsertMove (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=DIAGONAL, bool _varLength=true) | |
Constructor. | |
~InsertMove () | |
Destructor. | |
bool | attemptMove () |
Perform an insert 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 insert move, creating an off-diagonal world line configuration with a single worm.
|
virtual |
Perform an insert move.
Attempt to insert a worm, which acts like a new worldline without periodic boundary conditions. It is only possible if we are already in a diagonal configuration. We have to be careful to properly grow our bead and link arrays. The actual number of particles doesn't increase, just the number of active worldlines.
Implements MoveBase.
Definition at line 2081 of file move.cpp.