|
Path Integral Quantum Monte Carlo
|
A derived class which performs an advance tail move, causing the tail of a worm in a off-diagonal configuration to advance in imaginary time, resulting in a shorter worm. More...
#include <move.h>
Inheritance diagram for AdvanceTailMove:
Collaboration diagram for AdvanceTailMove:Public Member Functions | |
| AdvanceTailMove (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL, bool _varLength=true) | |
| Constructor. | |
| ~AdvanceTailMove () | |
| Destructor. | |
| bool | attemptMove () |
| Perform an advance tail 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 tail move, causing the tail of a worm in a off-diagonal configuration to advance in imaginary time, resulting in a shorter worm.
|
virtual |
Perform an advance tail move.
Here we attempt to advance the tail of a worm in imaginary time by a random number of slices. This is accomplished by removing beads and the result is a shorter worm. It is only possible if we already have an off-diagonal configuration.
Implements MoveBase.
Definition at line 2609 of file move.cpp.
Here is the call graph for this function: