From 153904b661dbe3898e040e7c002cac70ba26f7c0 Mon Sep 17 00:00:00 2001 From: Raymond Clay Date: Wed, 19 Feb 2014 00:27:28 +0000 Subject: [PATCH] RMC working in main branch git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6238 e5b18d87-469d-4833-9cc0-8cdfa06e9491 --- src/QMCDrivers/RMC/RMCSingleOMP.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/QMCDrivers/RMC/RMCSingleOMP.cpp b/src/QMCDrivers/RMC/RMCSingleOMP.cpp index 6d974e496..d471d5ea5 100644 --- a/src/QMCDrivers/RMC/RMCSingleOMP.cpp +++ b/src/QMCDrivers/RMC/RMCSingleOMP.cpp @@ -49,8 +49,10 @@ bool RMCSingleOMP::run() resetRun(); //start the main estimator Estimators->start(nBlocks); + for (int ip=0; ipstartRun(nBlocks,false); + Traces->startRun(nBlocks,traceClones); const bool has_collectables=W.Collectables.size(); for (int block=0; blockinitReptile(W); @@ -161,6 +164,7 @@ void RMCSingleOMP::resetRun() estimatorClones[ip]->resetTargetParticleSet(*wClones[ip]); estimatorClones[ip]->setCollectionMode(false); Rng[ip]=new RandomGenerator_t(*(RandomNumberControl::Children[ip])); + traceClones[ip] = Traces->makeClone(); hClones[ip]->setRandomGenerator(Rng[ip]); branchClones[ip] = new BranchEngineType(*branchEngine); // branchClones[ip]->initReptile(W); @@ -180,6 +184,16 @@ void RMCSingleOMP::resetRun() app_log() << os.str() << endl; } } + else + { +#if !defined(BGP_BUG) +#pragma omp parallel for +#endif + for(int ip=0; iptransfer_state_from(*Traces); + } + } app_log().flush(); #if !defined(BGP_BUG) #pragma omp parallel for @@ -187,7 +201,7 @@ void RMCSingleOMP::resetRun() for(int ip=0; ipput(qmcNode); - Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip]); + Movers[ip]->resetRun(branchClones[ip],estimatorClones[ip], traceClones[ip]); wClones[ip]->reptile = new Reptile(*wClones[ip], W.begin()+wPerNode[ip],W.begin()+wPerNode[ip+1]); //app_log()<<"Thread # "<WalkerList.size());