mirror of https://github.com/QMCPACK/qmcpack.git
Merge pull request #836 from ye-luo/remove-branch-clones
Remove branchEngine clones
This commit is contained in:
commit
7fff5094b5
|
@ -81,7 +81,6 @@ CloneManager::~CloneManager()
|
|||
{
|
||||
// delete_iter(CSMovers.begin(),CSMovers.end());
|
||||
delete_iter(Movers.begin(),Movers.end());
|
||||
delete_iter(branchClones.begin(),branchClones.end());
|
||||
delete_iter(estimatorClones.begin(),estimatorClones.end());
|
||||
|
||||
#if !defined(REMOVE_TRACEMANAGER)
|
||||
|
|
|
@ -83,8 +83,6 @@ protected:
|
|||
std::vector<EstimatorManagerBase*> estimatorClones;
|
||||
///trace managers
|
||||
std::vector<TraceManager*> traceClones;
|
||||
///Branch engines
|
||||
std::vector<SimpleFixedNodeBranch*> branchClones;
|
||||
|
||||
//for correlated sampling.
|
||||
static std::vector<std::vector<MCWalkerConfiguration*> > WPoolClones;
|
||||
|
|
|
@ -237,7 +237,6 @@ void CSVMC::resetRun()
|
|||
if(Movers.empty())
|
||||
{
|
||||
CSMovers.resize(NumThreads,0);
|
||||
branchClones.resize(NumThreads,0);
|
||||
estimatorClones.resize(NumThreads,0);
|
||||
traceClones.resize(NumThreads,0);
|
||||
Rng.resize(NumThreads,0);
|
||||
|
@ -255,8 +254,6 @@ void CSVMC::resetRun()
|
|||
#endif
|
||||
Rng[ip]=new RandomGenerator_t(*(RandomNumberControl::Children[ip]));
|
||||
|
||||
|
||||
branchClones[ip] = new BranchEngineType(*branchEngine);
|
||||
if(QMCDriverMode[QMC_UPDATE_MODE])
|
||||
{
|
||||
if (UseDrift == "yes")
|
||||
|
@ -288,7 +285,7 @@ void CSVMC::resetRun()
|
|||
app_log() << os.str() << std::endl;
|
||||
|
||||
CSMovers[ip]->put(qmcNode);
|
||||
CSMovers[ip]->resetRun( branchClones[ip], estimatorClones[ip],traceClones[ip]);
|
||||
CSMovers[ip]->resetRun(branchEngine, estimatorClones[ip],traceClones[ip]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -314,7 +311,7 @@ void CSVMC::resetRun()
|
|||
{
|
||||
//int ip=omp_get_thread_num();
|
||||
CSMovers[ip]->put(qmcNode);
|
||||
CSMovers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
CSMovers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
CSMovers[ip]->initCSWalkersForPbyP(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1], nWarmupSteps>0);
|
||||
else
|
||||
|
|
|
@ -85,10 +85,8 @@ void DMCOMP::resetComponents(xmlNodePtr cur)
|
|||
{
|
||||
delete Movers[ip];
|
||||
delete estimatorClones[ip];
|
||||
delete branchClones[ip];
|
||||
estimatorClones[ip]= new EstimatorManagerBase(*Estimators);
|
||||
estimatorClones[ip]->setCollectionMode(false);
|
||||
branchClones[ip] = new BranchEngineType(*branchEngine);
|
||||
#if !defined(REMOVE_TRACEMANAGER)
|
||||
delete traceClones[ip];
|
||||
traceClones[ip] = Traces->makeClone();
|
||||
|
@ -101,7 +99,7 @@ void DMCOMP::resetComponents(xmlNodePtr cur)
|
|||
{
|
||||
Movers[ip] = new DMCUpdatePbyPWithRejectionFast(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
Movers[ip]->put(cur);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->initWalkersForPbyP(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
}
|
||||
else
|
||||
|
@ -111,7 +109,7 @@ void DMCOMP::resetComponents(xmlNodePtr cur)
|
|||
else
|
||||
Movers[ip] = new DMCUpdateAllWithRejection(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
Movers[ip]->put(cur);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->initWalkers(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
}
|
||||
}
|
||||
|
@ -136,7 +134,6 @@ void DMCOMP::resetUpdateEngines()
|
|||
}
|
||||
//if(QMCDriverMode[QMC_UPDATE_MODE]) W.clearAuxDataSet();
|
||||
Movers.resize(NumThreads,0);
|
||||
branchClones.resize(NumThreads,0);
|
||||
Rng.resize(NumThreads,0);
|
||||
estimatorClones.resize(NumThreads,0);
|
||||
traceClones.resize(NumThreads,0);
|
||||
|
@ -171,12 +168,11 @@ void DMCOMP::resetUpdateEngines()
|
|||
Rng[ip]=new RandomGenerator_t(*RandomNumberControl::Children[ip]);
|
||||
hClones[ip]->setRandomGenerator(Rng[ip]);
|
||||
#endif
|
||||
branchClones[ip] = new BranchEngineType(*branchEngine);
|
||||
if(QMCDriverMode[QMC_UPDATE_MODE])
|
||||
{
|
||||
Movers[ip] = new DMCUpdatePbyPWithRejectionFast(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
Movers[ip]->put(qmcNode);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->initWalkersForPbyP(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
}
|
||||
else
|
||||
|
@ -186,7 +182,7 @@ void DMCOMP::resetUpdateEngines()
|
|||
else
|
||||
Movers[ip] = new DMCUpdateAllWithRejection(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
Movers[ip]->put(qmcNode);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->initWalkers(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
}
|
||||
}
|
||||
|
@ -302,7 +298,7 @@ bool DMCOMP::run()
|
|||
for(int ip=1; ip<NumThreads; ++ip)
|
||||
W.Collectables += wClones[ip]->Collectables;
|
||||
}
|
||||
branchEngine->branch(CurrentStep, W, branchClones);
|
||||
branchEngine->branch(CurrentStep, W);
|
||||
// if(storeConfigs && (CurrentStep%storeConfigs == 0)) {
|
||||
// ForwardWalkingHistory.storeConfigsForForwardWalking(W);
|
||||
// W.resetWalkerParents();
|
||||
|
|
|
@ -86,8 +86,6 @@ bool QMCUpdateBase::put(xmlNodePtr cur)
|
|||
{
|
||||
H.setNonLocalMoves(cur);
|
||||
bool s=myParams.put(cur);
|
||||
if (branchEngine)
|
||||
branchEngine->put(cur);
|
||||
return s;
|
||||
}
|
||||
|
||||
|
@ -95,7 +93,6 @@ void QMCUpdateBase::resetRun(BranchEngineType* brancher, EstimatorManagerBase* e
|
|||
{
|
||||
Estimators=est;
|
||||
branchEngine=brancher;
|
||||
branchEngine->setEstimatorManager(est);
|
||||
NumPtcl = W.getTotalNum();
|
||||
deltaR.resize(NumPtcl);
|
||||
drift.resize(NumPtcl);
|
||||
|
@ -128,14 +125,6 @@ void QMCUpdateBase::resetRun(BranchEngineType* brancher, EstimatorManagerBase* e
|
|||
Traces = traces;
|
||||
}
|
||||
|
||||
|
||||
void QMCUpdateBase::resetEtrial(RealType et)
|
||||
{
|
||||
//branchEngine->E_T=et;
|
||||
branchEngine->setTrialEnergy(et,1.0);
|
||||
branchEngine->flush(0);
|
||||
}
|
||||
|
||||
void QMCUpdateBase::startRun(int blocks, bool record)
|
||||
{
|
||||
Estimators->start(blocks,record);
|
||||
|
|
|
@ -137,8 +137,6 @@ public:
|
|||
/** stop a run */
|
||||
void stopRun();
|
||||
void stopRun2();
|
||||
/** reset the trial energy */
|
||||
void resetEtrial(RealType et);
|
||||
|
||||
/** prepare to start a block
|
||||
* @param steps number of steps within the block
|
||||
|
@ -272,7 +270,7 @@ protected:
|
|||
///random number generator
|
||||
RandomGenerator_t& RandomGen;
|
||||
///branch engine
|
||||
BranchEngineType* branchEngine;
|
||||
const BranchEngineType* branchEngine;
|
||||
///estimator
|
||||
EstimatorManagerBase* Estimators;
|
||||
///parameters
|
||||
|
|
|
@ -106,7 +106,7 @@ namespace qmcplusplus
|
|||
if (Period4WalkerDump && now_loc % myPeriod4WalkerDump == 0)
|
||||
wClones[ip]->saveEnsemble (wit, wit_end);
|
||||
|
||||
branchEngine->collect (CurrentStep, W, branchClones); //Ray Clay: For now, collects and syncs based on first reptile. Need a better way to do this.
|
||||
branchEngine->collect (CurrentStep, W); //Ray Clay: For now, collects and syncs based on first reptile. Need a better way to do this.
|
||||
}
|
||||
Movers[ip]->stopBlock (false);
|
||||
} //end-of-parallel for
|
||||
|
@ -211,7 +211,6 @@ namespace qmcplusplus
|
|||
if (Movers.empty ())
|
||||
{
|
||||
Movers.resize (NumThreads, 0);
|
||||
branchClones.resize (NumThreads, 0);
|
||||
estimatorClones.resize (NumThreads, 0);
|
||||
traceClones.resize (NumThreads, 0);
|
||||
Rng.resize (NumThreads, 0);
|
||||
|
@ -229,7 +228,6 @@ namespace qmcplusplus
|
|||
traceClones[ip] = Traces->makeClone ();
|
||||
#endif
|
||||
hClones[ip]->setRandomGenerator (Rng[ip]);
|
||||
branchClones[ip] = new BranchEngineType (*branchEngine);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
{
|
||||
os <<
|
||||
|
@ -271,7 +269,7 @@ namespace qmcplusplus
|
|||
for (int ip = 0; ip < NumThreads; ++ip)
|
||||
{
|
||||
Movers[ip]->put (qmcNode);
|
||||
Movers[ip]->resetRun (branchClones[ip], estimatorClones[ip],
|
||||
Movers[ip]->resetRun (branchEngine, estimatorClones[ip],
|
||||
traceClones[ip]);
|
||||
// wClones[ip]->reptile = new Reptile(*wClones[ip], W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
wClones[ip]->reptile = W.ReptileList[ip];
|
||||
|
@ -316,7 +314,7 @@ namespace qmcplusplus
|
|||
{
|
||||
Movers[ip]->advanceWalkers (W.begin () + wPerNode[ip],
|
||||
W.begin () + wPerNode[ip + 1], false);
|
||||
branchEngine->collect (CurrentStep, W, branchClones);
|
||||
branchEngine->collect (CurrentStep, W);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -121,7 +121,6 @@ void SimpleFixedNodeBranch::start(const std::string& froot, bool append)
|
|||
MyEstimator->reset();
|
||||
}
|
||||
|
||||
//void SimpleFixedNodeBranch::initWalkerController(MCWalkerConfiguration& walkers, RealType tau, bool fixW, bool killwalker)
|
||||
int SimpleFixedNodeBranch::initWalkerController(MCWalkerConfiguration& walkers, bool fixW, bool killwalker)
|
||||
{
|
||||
BranchMode.set(B_DMC,1);//set DMC
|
||||
|
@ -180,7 +179,7 @@ int SimpleFixedNodeBranch::initWalkerController(MCWalkerConfiguration& walkers,
|
|||
//update the simulation parameters
|
||||
WalkerController->put(myNode);
|
||||
//assign current Eref and a large number for variance
|
||||
WalkerController->setEnergyAndVariance(vParam[B_EREF],vParam[B_SIGMA2]);
|
||||
WalkerController->setTrialEnergy(vParam[B_ETRIAL]);
|
||||
this->reset();
|
||||
if(fromscratch)
|
||||
{
|
||||
|
@ -371,24 +370,9 @@ void SimpleFixedNodeBranch::branch(int iter, MCWalkerConfiguration& walkers)
|
|||
MyEstimator->accumulate(walkers);
|
||||
}
|
||||
|
||||
/** perform branching
|
||||
*
|
||||
* Set the trial energy of clones
|
||||
*/
|
||||
void SimpleFixedNodeBranch::branch(int iter, MCWalkerConfiguration& walkers, std::vector<ThisType*>& clones)
|
||||
{
|
||||
branch(iter,walkers);
|
||||
//synchronize it
|
||||
for(int i=0; i<clones.size(); i++)
|
||||
clones[i]->vParam=vParam;
|
||||
if((BranchMode[B_DMCSTAGE])&&(ToDoSteps==0))
|
||||
for(int i=0; i<clones.size(); i++)
|
||||
clones[i]->BranchMode=BranchMode;
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
void SimpleFixedNodeBranch::collect(int iter, MCWalkerConfiguration& W)
|
||||
{
|
||||
//Update the current energy and accumulate.
|
||||
|
@ -476,23 +460,9 @@ void SimpleFixedNodeBranch::collect(int iter, MCWalkerConfiguration& W)
|
|||
MyEstimator->accumulate(W);
|
||||
}
|
||||
|
||||
//Ray Clay: Have to come up with a better way to collect and sync up reptile copies. This is taken from DMC. See RMCSingleOMP
|
||||
|
||||
void SimpleFixedNodeBranch::collect(int iter, MCWalkerConfiguration& W, std::vector<ThisType*>& clones)
|
||||
{
|
||||
collect(iter,W);
|
||||
//synchronize it
|
||||
for(int i=0; i<clones.size(); i++)
|
||||
clones[i]->vParam=vParam;
|
||||
if((BranchMode[B_RMCSTAGE])&&(ToDoSteps==0))
|
||||
for(int i=0; i<clones.size(); i++)
|
||||
clones[i]->BranchMode=BranchMode;
|
||||
}
|
||||
/** Calculates and saves various action components, also does necessary updates for running averages.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
void SimpleFixedNodeBranch::reset()
|
||||
{
|
||||
//use effective time step of BranchInterval*Tau
|
||||
|
@ -634,7 +604,6 @@ int SimpleFixedNodeBranch::resetRun(xmlNodePtr cur)
|
|||
WalkerController->put(myNode);
|
||||
ToDoSteps=iParam[B_WARMUPSTEPS]=(iParam[B_WARMUPSTEPS])?iParam[B_WARMUPSTEPS]:10;
|
||||
setBranchCutoff(vParam[B_SIGMA2],WalkerController->targetSigma,10);
|
||||
WalkerController->setEnergyAndVariance(vParam[B_EREF],vParam[B_SIGMA2]);
|
||||
WalkerController->reset();
|
||||
#ifdef QMC_CUDA
|
||||
reset(); // needed. Ye
|
||||
|
|
|
@ -359,33 +359,18 @@ struct SimpleFixedNodeBranch: public QMCTraits
|
|||
return vParam[B_TAUEFF];
|
||||
}
|
||||
|
||||
inline void setTrialEnergy(RealType etot, RealType wtot=1.0)
|
||||
{
|
||||
vParam[B_EREF]=vParam[B_ETRIAL]=etot/wtot;
|
||||
//Eref=Etrial=etot/wtot;
|
||||
}
|
||||
|
||||
/** perform branching
|
||||
* @param iter current step
|
||||
* @param w Walker configuration
|
||||
*/
|
||||
void branch(int iter, MCWalkerConfiguration& w);
|
||||
|
||||
/** perform branching
|
||||
* @param iter the iteration
|
||||
* @param w the walker ensemble
|
||||
* @param clones of the branch engine for OpenMP threads
|
||||
*/
|
||||
void branch(int iter, MCWalkerConfiguration& w, std::vector<ThisType*>& clones);
|
||||
|
||||
/** update RMC counters and running averages.
|
||||
* @param iter the iteration
|
||||
* @param w the walker ensemble
|
||||
* @param clones of the branch engine for OpenMP threads
|
||||
*/
|
||||
|
||||
void collect(int iter, MCWalkerConfiguration& w);
|
||||
void collect(int iter, MCWalkerConfiguration& w, std::vector<ThisType*>& clones);
|
||||
|
||||
/** restart averaging
|
||||
* @param counter Counter to determine the cummulative average will be reset.
|
||||
|
|
|
@ -481,7 +481,6 @@ void VMCLinearOptOMP::resetRun()
|
|||
{
|
||||
Movers.resize(NumThreads,0);
|
||||
// CSMovers.resize(NumThreads,0);
|
||||
branchClones.resize(NumThreads,0);
|
||||
estimatorClones.resize(NumThreads,0);
|
||||
traceClones.resize(NumThreads,0);
|
||||
Rng.resize(NumThreads,0);
|
||||
|
@ -502,7 +501,6 @@ void VMCLinearOptOMP::resetRun()
|
|||
#endif
|
||||
Rng[ip]=new RandomGenerator_t(*(RandomNumberControl::Children[ip]));
|
||||
hClones[ip]->setRandomGenerator(Rng[ip]);
|
||||
branchClones[ip] = new BranchEngineType(*branchEngine);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
{
|
||||
// if (UseDrift == "rn")
|
||||
|
@ -526,7 +524,7 @@ void VMCLinearOptOMP::resetRun()
|
|||
// CSMovers[ip]=
|
||||
Movers[ip]=new VMCUpdatePbyP(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
// }
|
||||
//Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip]);
|
||||
//Movers[ip]->resetRun(branchEngine,estimatorClones[ip]);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -549,7 +547,7 @@ void VMCLinearOptOMP::resetRun()
|
|||
// CSMovers[ip]=
|
||||
Movers[ip]=new VMCUpdateAll(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
// }
|
||||
//Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip]);
|
||||
//Movers[ip]->resetRun(branchEngine,estimatorClones[ip]);
|
||||
}
|
||||
if (ip==0)
|
||||
app_log() << os.str() << std::endl;
|
||||
|
@ -570,8 +568,8 @@ void VMCLinearOptOMP::resetRun()
|
|||
int ip=omp_get_thread_num();
|
||||
Movers[ip]->put(qmcNode);
|
||||
// CSMovers[ip]->put(qmcNode);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
// CSMovers[ip]->resetRun(branchClones[ip],estimatorClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
// CSMovers[ip]->resetRun(branchEngine,estimatorClones[ip]);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
Movers[ip]->initWalkersForPbyP(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
else
|
||||
|
|
|
@ -157,7 +157,6 @@ void VMCSingleOMP::resetRun()
|
|||
{
|
||||
movers_created=true;
|
||||
Movers.resize(NumThreads,0);
|
||||
branchClones.resize(NumThreads,0);
|
||||
estimatorClones.resize(NumThreads,0);
|
||||
traceClones.resize(NumThreads,0);
|
||||
Rng.resize(NumThreads,0);
|
||||
|
@ -177,7 +176,6 @@ void VMCSingleOMP::resetRun()
|
|||
Rng[ip]=new RandomGenerator_t(*(RandomNumberControl::Children[ip]));
|
||||
hClones[ip]->setRandomGenerator(Rng[ip]);
|
||||
#endif
|
||||
branchClones[ip] = new BranchEngineType(*branchEngine);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
{
|
||||
Movers[ip]=new VMCUpdatePbyP(*wClones[ip],*psiClones[ip],*hClones[ip],*Rng[ip]);
|
||||
|
@ -235,7 +233,7 @@ void VMCSingleOMP::resetRun()
|
|||
{
|
||||
//int ip=omp_get_thread_num();
|
||||
Movers[ip]->put(qmcNode);
|
||||
Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip],traceClones[ip]);
|
||||
Movers[ip]->resetRun(branchEngine,estimatorClones[ip],traceClones[ip]);
|
||||
if (QMCDriverMode[QMC_UPDATE_MODE])
|
||||
Movers[ip]->initWalkersForPbyP(W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]);
|
||||
else
|
||||
|
|
|
@ -27,8 +27,7 @@ namespace qmcplusplus
|
|||
WalkerControlBase::WalkerControlBase(Communicate* c, bool rn)
|
||||
: MPIObjectBase(c), SwapMode(0), Nmin(1), Nmax(10)
|
||||
, MaxCopy(2), NumWalkersCreated(0), NumWalkersSent(0)
|
||||
, targetEnergyBound(10), targetVar(2), targetSigma(10)
|
||||
, dmcStream(0), WriteRN(rn)
|
||||
, targetSigma(10), dmcStream(0), WriteRN(rn)
|
||||
{
|
||||
MyMethod=-1; //assign invalid method
|
||||
NumContexts=myComm->size();
|
||||
|
@ -560,7 +559,6 @@ bool WalkerControlBase::put(xmlNodePtr cur)
|
|||
int nw_target=0, nw_max=0;
|
||||
std::string nonblocking="yes";
|
||||
ParameterSet params;
|
||||
params.add(targetEnergyBound,"energyBound","double");
|
||||
params.add(targetSigma,"sigmaBound","double");
|
||||
params.add(MaxCopy,"maxCopy","int");
|
||||
params.add(nw_target,"targetwalkers","int");
|
||||
|
|
|
@ -94,16 +94,8 @@ public:
|
|||
IndexType NumWalkersSent;
|
||||
///trial energy energy
|
||||
RealType trialEnergy;
|
||||
///target average energy
|
||||
RealType targetAvg;
|
||||
///target average variance
|
||||
RealType targetVar;
|
||||
///target sigma to limit fluctuations of the trial energy
|
||||
RealType targetSigma;
|
||||
///bound of the energy window
|
||||
RealType targetEnergyBound;
|
||||
///current variance
|
||||
RealType curVar;
|
||||
///number of particle per node
|
||||
std::vector<int> NumPerNode;
|
||||
///offset of the particle index
|
||||
|
@ -179,15 +171,6 @@ public:
|
|||
return curData[i];
|
||||
}
|
||||
|
||||
/** set the target average and variance
|
||||
*/
|
||||
inline void setEnergyAndVariance(RealType e, RealType v)
|
||||
{
|
||||
trialEnergy=e;
|
||||
targetAvg=e;
|
||||
targetVar=v;
|
||||
}
|
||||
|
||||
/** update properties without branching */
|
||||
int doNotBranch(int iter, MCWalkerConfiguration& W);
|
||||
|
||||
|
|
|
@ -53,18 +53,9 @@ TEST_CASE("Fixed node branch", "[drivers][walker_control]")
|
|||
|
||||
REQUIRE(fnb.getTau() == Approx(tau));
|
||||
|
||||
|
||||
fnb.advanceQMCCounter();
|
||||
REQUIRE(fnb.iParam[SimpleFixedNodeBranch::B_COUNTER] == 0);
|
||||
|
||||
|
||||
fnb.setTrialEnergy(-4.0);
|
||||
|
||||
REQUIRE(fnb.getEtrial() == Approx(-4.0));
|
||||
REQUIRE(fnb.getEref() == Approx(-4.0));
|
||||
|
||||
|
||||
|
||||
// default is classic cutoff scheme
|
||||
//fnb.setBranchCutoff();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue