|
Path Integral Quantum Monte Carlo
|
A derived class which forms the base of a swap head and swap tail move class. More...
#include <move.h>
Inheritance diagram for SwapMoveBase:
Collaboration diagram for SwapMoveBase:Public Member Functions | |
| SwapMoveBase (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=OFFDIAGONAL) | |
| Constructor. | |
| ~SwapMoveBase () | |
| Destructor. | |
Public Member Functions inherited from MoveBase | |
| MoveBase (Path &, ActionBase *, MTRand &, ensemble _operateOnConfig=ANY, bool _varLength=false) | |
| Move naming conventions: More... | |
| virtual | ~MoveBase () |
| Destructor. | |
| virtual string | getName () |
| return the move name | |
| 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. | |
| virtual bool | attemptMove ()=0 |
| Attempt the move (will be overloaded). | |
| void | resetTotAccept () |
| Reset the total accepted counter. | |
| void | resetAccept () |
| Reset the number accepted counter. | |
Protected Member Functions | |
| double | getNorm (const beadLocator &, const int sign=1) |
| Get the normalization constant for a swap move. More... | |
| beadLocator | selectPivotBead () |
| Select the pivot bead for a swap move. More... | |
| beadLocator | selectPivotBead (iVec &) |
| *************************************************************************//** More... | |
Protected Member Functions inherited from MoveBase | |
| virtual void | keepMove () |
| Keep the move. More... | |
| virtual void | undoMove ()=0 |
| undo the move | |
| 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 | |
| int | swapLength |
| The length of worldLine to be moved. | |
| int | numLevels |
| The number of bisection levels. | |
| unsigned int | sizeCDF |
| The size of the cumulative distribution function. | |
| vector< double > | cumulant |
| The cumulant array used in selecting a pivot. | |
| beadLocator | pivot |
| The pivot bead. | |
| beadLocator | swap |
| The swap bead. | |
| double | SigmaSwap |
| Probability normalization factor. | |
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. | |
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 |
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 forms the base of a swap head and swap tail move class.
|
protected |
Get the normalization constant for a swap move.
We compute the normalization constant used in both the pivot selection probability as well as the overall acceptance probabilty.
| sign | corrects for always measuring distances forward in imaginary time |
Definition at line 3141 of file move.cpp.
Here is the call graph for this function:
Here is the caller graph for this function:
|
protected |
Select the pivot bead for a swap move.
Here we select a pivot bead from a list with the probability given by Eq. (2.22) of PRE 74, 036701 (2006). We use the trick in Ceperly's lecture notes where we evaluate the cumulative distribution function then generate a uniform random variable and find where it lies in the ordered CDF list.
Definition at line 3269 of file move.cpp.
Here is the caller graph for this function:
|
protected |
*************************************************************************//**
Select the pivot bead for a swap move.
Here we select a pivot bead from a list with the probability given by Eq. (2.22) of PRE 74, 036701 (2006). We use the trick in Ceperly's lecture notes where we evaluate the cumulative distribution function then generate a uniform random variable and find where it lies in the ordered CDF list.
| wind | the chosen winding number sector. |
Definition at line 3233 of file move.cpp.