32 double _maxR,
int _frequency=1,
string _label=
"");
66 virtual string getName()
const {
return "base"; }
132 int _frequency=1,
string _label=
"estimator");
137 static const string name;
144 std::chrono::high_resolution_clock::time_point time_begin;
145 std::chrono::high_resolution_clock::time_point time_end;
166 int _frequency=1,
string _label=
"estimator");
169 static const string name;
203 int _frequency=1,
string _label=
"virial");
206 static const string name;
224 int _frequency=1,
string _label=
"estimator");
227 static const string name;
245 int _frequency=1,
string _label=
"position");
248 static const string name;
255 vector<string> diffLabels;
269 int _frequency=1,
string _label=
"bipart_dens");
272 static const string name;
290 int _frequency=1,
string _label=
"lineardensity");
293 static const string name;
314 int _frequency=1,
string _label=
"planedensity");
317 static const string name;
339 int _frequency=1,
string _label=
"planeavedensity");
342 static const string name;
366 const MTRand &,
double,
int _frequency=1,
string _label=
"planeaveVext");
369 static const string name;
394 int _frequency=1,
string _label=
"number");
397 static const string name;
401 int startParticleNumber;
402 int endParticleNumber;
420 int _frequency=1,
string _label=
"super");
423 static const string name;
443 int _frequency=1,
string _label=
"locsuper");
448 static const string name;
454 Array <double,1> locAz;
455 Array <double,1> locA2;
456 Array <double,1> locWz;
472 double,
int _frequency=1,
string _label=
"planewind");
475 static const string name;
483 Array <double,1> locWz;
498 double,
int _frequency=1,
string _label=
"planearea");
501 static const string name;
509 Array <double,1> locAz;
524 double,
int _frequency=1,
string _label=
"radwind");
527 static const string name;
533 Array <double,1> locWz;
548 double,
int _frequency=1,
string _label=
"radarea");
551 static const string name;
557 Array <double,1> locAz;
572 double,
int _frequency=1,
string _label=
"estimator");
577 static const string name;
594 double,
int _frequency=1,
string _label=
"pcycle");
597 static const string name;
601 Array <bool,1> doBead;
617 double,
int _frequency=1,
string _label=
"locperm");
622 static const string name;
626 Array <int, 1> numBeadInGrid;
627 Array <bool,1> doBead;
648 double,
int _frequency=20,
string _label=
"obdm");
654 static const string name;
666 dVec newTailPos,oldTailPos;
668 dVec newRanPos,neighborPos;
670 double sqrt2LambdaTau;
672 double oldAction,newAction;
675 dVec getRandomVector(
const double);
694 double,
int _frequency=1,
string _label=
"pair");
697 static const string name;
715 const MTRand &,
double,
int _frequency=1,
string _label=
"ssf");
718 static const string name;
738 const MTRand &,
double,
int _frequency=1,
string _label=
"isf");
741 static const string name;
746 Array <double,1> isf;
749 Array <int,1> numqVecs;
750 vector <vector<dVec> > q;
763 double,
int _frequency=1,
string _label=
"radial");
766 static const string name;
784 double,
int _frequency=1,
string _label=
"worm");
787 static const string name;
817 double,
int _frequency=1,
string _label=
"cyl_estimator");
820 static const string name;
839 double,
int _frequency=1,
string _label=
"cyl_estimator");
842 static const string name;
859 double,
int _frequency=1,
string _label=
"cyl_number");
862 static const string name;
881 double,
int _frequency=1,
string _label=
"cyl_linedensity");
884 static const string name;
905 double,
int _frequency=1,
string _label=
"cyl_super");
908 static const string name;
912 Array <bool,1> doBead;
934 double,
int _frequency=20,
string _label=
"cyl_obdm");
939 static const string name;
951 dVec newTailPos,oldTailPos;
953 dVec newRanPos,neighborPos;
955 double sqrt2LambdaTau;
957 double oldAction,newAction;
960 dVec getRandomVector(
const double);
979 double,
int _frequency=1,
string _label=
"cyl_pair");
984 static const string name;
1002 double,
int _frequency=1,
string _label=
"cyl_linepotential");
1005 static const string name;
1026 double,
int _frequency=1,
string _label=
"cyl_potential");
1029 static const string name;
1035 Array <double,1> radPot;
1056 double,
int _frequency=1,
string _label=
"potential");
1059 static const string name;
1077 double,
int _frequency=1,
string _label=
"kinetic");
1080 static const string name;
1098 double,
int _frequency=1,
string _label=
"energy");
1101 static const string name;
1119 double,
int _frequency=1,
string _label=
"thpotential");
1122 static const string name;
1141 double,
int _frequency=1,
string _label=
"position");
1144 static const string name;
1163 double,
int _frequency=1,
string _label=
"prposition");
1166 static const string name;
1186 double,
int _frequency=1,
string _label=
"prcorrelation");
1189 static const string name;
1210 double,
int _frequency=1,
string _label=
"velocity");
1213 static const string name;
1232 double,
int _frequency=1,
string _label=
"subregionocc");
1235 static const string name;
1257 double,
int _frequency=1,
string _label=
"obdm");
1263 static const string name;
1275 dVec newTailPos,oldTailPos;
1276 dVec newRanPos,neighborPos;
1278 double sqrt2LambdaTau;
1279 double oldAction,newAction;
1282 dVec getRandomVector(
const double);
1299 const MTRand &,
double,
int _frequency=1,
string _label=
"");
1323 const MTRand &,
double,
int _frequency=1,
string _label=
"swap");
1326 static const string name;
1336 void accumulateOpen();
1337 void accumulateClosed();
1351 const MTRand &,
double,
int _frequency=1,
string _label=
"entpart");
1354 static const string name;
Holds a base class that all action classes will be derived from.
Compute density inside film and in bulk separately for Excluded volume potentials.
~BipartitionDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
BipartitionDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="bipart_dens")
Constructor.
Computes the total energy via the thermodynamic estimator.
CylinderEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_estimator")
Constructor.
~CylinderEnergyEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Computes the density as a function of distance along the cylinder axis.
CylinderLinearDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_linedensity")
Constructor.
~CylinderLinearDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Compute the effective linear potential along the axis of the cylinder.
~CylinderLinearPotentialEstimator()
Destructor.
string getName() const
Get the name of the estimator.
CylinderLinearPotentialEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_linepotential")
Constructor.
Computes the probability distribution function for the number of particles.
~CylinderNumberDistributionEstimator()
Destructor.
string getName() const
Get the name of the estimator.
CylinderNumberDistributionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_number")
Constructor.
Computes the average number of particles, as well as density.
~CylinderNumberParticlesEstimator()
Destructor.
string getName() const
Get the name of the estimator.
CylinderNumberParticlesEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_estimator")
Constructor.
Compute the one body density matrix n(r) which can be used to find the momentum distribution function...
~CylinderOneBodyDensityMatrixEstimator()
Destructor.
CylinderOneBodyDensityMatrixEstimator(Path &, ActionBase *, const MTRand &, double, int _frequency=20, string _label="cyl_obdm")
Constructor.
string getName() const
Get the name of the estimator.
void sample()
Sample the OBDM.
Compute the two-body pair-correlation function, g(r) ~ <rho(r)rho(0)>.
string getName() const
Get the name of the estimator.
~CylinderPairCorrelationEstimator()
Destructor.
void sample()
Sample the estimator.
CylinderPairCorrelationEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_pair")
Constructor.
Compute the effective radial potential in a cylinder.
CylinderRadialPotentialEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_potential")
Constructor.
~CylinderRadialPotentialEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Compute the superfluid fraction, as well as the winding number probability distribution.
~CylinderSuperfluidFractionEstimator()
Destructor.
string getName() const
Get the name of the estimator.
CylinderSuperfluidFractionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="cyl_super")
Constructor.
Compute the fraction of time we spend in the diagonal ensemble.
void sample()
Overload sampling to make sure it is always done, regardless of ensemble.
string getName() const
Get the name of the estimator.
~DiagonalFractionEstimator()
Destructor.
DiagonalFractionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="estimator")
Constructor.
Base class for estimators that use two paths.
const Path & path2
A constant reference to the paths.
~DoubledEstimator()
Destructor.
string getName() const
Get the name of the estimator.
DoubledEstimator(const Path &, const Path &, ActionBase *, ActionBase *, const MTRand &, double, int _frequency=1, string _label="")
Constructor.
Computes the total energy via the thermodynamic estimator.
string getName() const
Get the name of the estimator.
EnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="estimator")
Constructor.
~EnergyEstimator()
Destructor.
Computes the Swap Estimator between two paths.
EntPartEstimator(Path &, Path &, ActionBase *, ActionBase *, const MTRand &, double, int _frequency=1, string _label="entpart")
Constructor.
string getName() const
Get the name of the estimator.
~EntPartEstimator()
Destructor.
The base class that all estimator classes will be derived from.
virtual void outputFlat()
Output a flat estimator value to disk.
int endSlice
Where imaginary time averages end.
bool diagonal
Is this a diagonal estimator?
void reset()
Reset numAccumulated and the estimator to 0.
Array< double, 1 > estimator
The estimator array.
virtual void outputFooter()
Ouptut the fooder to disk.
ActionBase * actionPtr
A pointer to the action.
uint32 getNumAccumulated() const
Get the number of accumulated measurements since the last reset.
virtual ~EstimatorBase()
Destructor.
Array< double, 1 > norm
The normalization factor for each estimator.
bool canonical
Are we in the canonical ensemble?
int endDiagSlice
Where imaginary time averages end for diagonal estimiators.
virtual void output()
Output the estimator value to disk.
vector< double > sliceFactor
Used to properly incorporate end affects.
void restart(const uint32, const uint32)
Restart the measurment process from a previous state.
void prepare()
Prepare the estimator for i/o.
void addEndLine()
Add a carriage return to estimator files.
string header
The data file header.
bool endLine
Should we output a carriage return?
int numEst
The number of individual quantities measured.
int startSlice
Where imaginary time averages begin.
int frequency
The frequency at which we accumulate.
void appendLabel(string append)
Append to default label.
map< string, int > estIndex
Map estimator labels to indices.
uint32 totNumAccumulated
The total number of accumulated values.
virtual string getName() const
Get the name of the estimator.
uint32 getTotNumAccumulated() const
Get the total number of accumulated measurments.
virtual void sample()
Sample the estimator.
EstimatorBase(const Path &_path, ActionBase *_actionPtr, const MTRand &_random, double _maxR, int _frequency=1, string _label="")
Constructor.
string getLabel() const
Get the estimator label.
uint32 numSampled
The number of times we have sampled.
virtual void accumulate()
Accumulate the estimator.
uint32 numAccumulated
The number of accumulated values.
uint32 getNumSampled() const
Get the number of samples since the last reset.
bool baseSample()
Determine the basic sampling condition.
const Path & path
A constant reference to the paths.
int numBeads0
The target number of beads for the canonical ensemble.
fstream * outFilePtr
The output fie.
void initialize(int)
Initialize estimator.
string label
The label used for the output file.
Computes the total energy using a mixed estimator.
string getName() const
Get the name of the estimator.
KineticEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="kinetic")
Constructor.
~KineticEnergyEstimator()
Destructor.
Create a 1d histogram of particle positions in the z-direction.
~LinearParticlePositionEstimator()
Destructor.
LinearParticlePositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="lineardensity")
Constructor.
string getName() const
Get the name of the estimator.
Particle permutation number density histogram.
string getName() const
Get the name of the estimator.
void output()
Output the estimator value to disk.
LocalPermutationEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="locperm")
Constructor.
~LocalPermutationEstimator()
Destructor.
Compute the local superfluid density.
LocalSuperfluidDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="locsuper")
Constructor.
~LocalSuperfluidDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
void output()
overload the output
Computes the probability distribution function for the number of particles.
~NumberDistributionEstimator()
Destructor.
string getName() const
Get the name of the estimator.
NumberDistributionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="number")
Constructor.
Computes the average number of particles, as well as density.
NumberParticlesEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="estimator")
Constructor.
~NumberParticlesEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Compute the one body density matrix n(r) which can be used to find the momentum distribution function...
string getName() const
Get the name of the estimator.
void outputFooter()
For the one body density matrix estimator, we would like to output the acceptance information for the...
OneBodyDensityMatrixEstimator(Path &, ActionBase *, const MTRand &, double, int _frequency=20, string _label="obdm")
Constructor.
~OneBodyDensityMatrixEstimator()
Destructor.
void sample()
Sample the OBDM.
Compute the one body density matrix n(r) which can be used to find the momentum distribution function...
void outputFooter()
For the one body density matrix estimator, we would like to output the acceptance information for the...
~PIGSOneBodyDensityMatrixEstimator()
Destructor.
string getName() const
Get the name of the estimator.
PIGSOneBodyDensityMatrixEstimator(Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="obdm")
Constructor.
void sample()
Sample the OBDM.
Compute the two-body pair-correlation function, g(r) ~ <rho(r)rho(0)>.
PairCorrelationEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="pair")
Constructor.
~PairCorrelationEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Computes the average position of each particle in 1D at the center time slice.
~ParticleCorrelationEstimator()
Destructor.
ParticleCorrelationEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="prcorrelation")
Constructor.
string getName() const
Get the name of the estimator.
Create histogram of particle positions.
ParticlePositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="position")
Constructor.
void output()
Output the estimator value to disk.
string getName() const
Get the name of the estimator.
~ParticlePositionEstimator()
Destructor.
Computes the average position of each particle in 1D at the center time slice.
ParticleResolvedPositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="prposition")
Constructor.
~ParticleResolvedPositionEstimator()
Destructor.
string getName() const
Get the name of the estimator.
The space-time trajectories.
Computes the particle permutation cycle probability distribution.
~PermutationCycleEstimator()
Destructor.
PermutationCycleEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="pcycle")
Constructor.
string getName() const
Get the name of the estimator.
Compute the radially averaged local superfluid density.
~PlaneAreaSuperfluidDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
PlaneAreaSuperfluidDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="planearea")
Constructor.
Create a 2d histogram of particle positions but only store the average.
PlaneAverageExternalPotentialEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="planeaveVext")
Constructor.
string getName() const
Get the name of the estimator.
void output()
Output a flat estimator value to disk.
~PlaneAverageExternalPotentialEstimator()
Destructor.
Create a 2d histogram of particle positions but only store the average.
~PlaneParticleAveragePositionEstimator()
Destructor.
void output()
Output the estimator value to disk.
PlaneParticleAveragePositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="planeavedensity")
Constructor.
string getName() const
Get the name of the estimator.
Create a 2d histogram of particle positions.
string getName() const
Get the name of the estimator.
PlaneParticlePositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="planedensity")
Constructor.
~PlaneParticlePositionEstimator()
Destructor.
Compute the radially averaged local superfluid density.
PlaneWindingSuperfluidDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="planewind")
Constructor.
~PlaneWindingSuperfluidDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Computes the average value of the position in 1D.
string getName() const
Get the name of the estimator.
~PositionEstimator()
Destructor.
PositionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="position")
Constructor.
Computes the potential energy along the worldline.
PotentialEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="potential")
Constructor.
string getName() const
Get the name of the estimator.
~PotentialEnergyEstimator()
Destructor.
Compute the radially averaged local superfluid density.
string getName() const
Get the name of the estimator.
RadialAreaSuperfluidDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="radarea")
Constructor.
~RadialAreaSuperfluidDensityEstimator()
Destructor.
Compute the density as a function of position in the radial direction.
string getName() const
Get the name of the estimator.
~RadialDensityEstimator()
Destructor.
RadialDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="radial")
Constructor.
Compute the radially averaged local superfluid density.
~RadialWindingSuperfluidDensityEstimator()
Destructor.
string getName() const
Get the name of the estimator.
RadialWindingSuperfluidDensityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="radwind")
Constructor.
Compute the static structure factor S(q)
string getName() const
Get the name of the estimator.
StaticStructureFactorEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="ssf")
Constructor.
~StaticStructureFactorEstimator()
Destructor.
Computes the imaginary time resolved "velocity" for the first particle .
~SubregionOccupationEstimator()
Destructor.
SubregionOccupationEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="subregionocc")
Constructor.
string getName() const
Get the name of the estimator.
Compute the superfluid fraction, as well as the winding number probability distribution.
SuperfluidFractionEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="super")
Constructor.
~SuperfluidFractionEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Computes the Swap Estimator between two paths.
SwapEstimator(Path &, Path &, ActionBase *, ActionBase *, const MTRand &, double, int _frequency=1, string _label="swap")
Constructor.
~SwapEstimator()
Destructor.
string getName() const
Get the name of the estimator.
Computes the total energy using a mixed estimator.
~ThermoPotentialEnergyEstimator()
Destructor.
string getName() const
Get the name of the estimator.
ThermoPotentialEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="thpotential")
Constructor.
An estimator which tracks the ammount of time between bins, summing them into a total at the end.
void sample()
Overload sampling to make sure it is always done, regardless of ensemble.
TimeEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="estimator")
Constructor.
string getName() const
Get the name of the estimator.
void output()
Grab the final time and write to disk.
Computes the total energy using a mixed estimator.
~TotalEnergyEstimator()
Destructor.
TotalEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="energy")
Constructor.
string getName() const
Get the name of the estimator.
Computes the imaginary time resolved "velocity" for the first particle .
~VelocityEstimator()
Destructor.
VelocityEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="velocity")
Constructor.
string getName() const
Get the name of the estimator.
Computes the total energy via the thermodynamic estimator.
VirialEnergyEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="virial")
Constructor.
string getName() const
Get the name of the estimator.
~VirialEnergyEstimator()
Destructor.
Compute various properties related to the worm in the simulation.
string getName() const
Get the name of the estimator.
WormPropertiesEstimator(const Path &, ActionBase *, const MTRand &, double, int _frequency=1, string _label="worm")
Constructor.
~WormPropertiesEstimator()
Destructor.
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
TinyVector< double, NDIM > dVec
A NDIM-vector of type double.