mirror of https://github.com/QMCPACK/qmcpack.git
Add FermionWF in preparation with coupled simulations.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5949 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
parent
fc577cda9e
commit
fe3f0968fb
|
@ -71,7 +71,7 @@ EinsplineSetBuilder::CheckLattice()
|
|||
for (int j=0; j<OHMMS_DIM; j++)
|
||||
diff+=std::abs(SuperLattice(i,j) - TargetPtcl.Lattice.R(i,j));
|
||||
|
||||
if(diff>MatchingTol)
|
||||
if(diff>MatchingTol*10.)
|
||||
{
|
||||
ostringstream o;
|
||||
o.setf(std::ios::scientific, std::ios::floatfield);
|
||||
|
|
|
@ -126,6 +126,7 @@ bool SlaterDetBuilder::put(xmlNodePtr cur)
|
|||
abort();
|
||||
}
|
||||
spomap[spo_name] = spo;
|
||||
spo->objectName=spo_name;
|
||||
assert(spomap.find(spo_name) != spomap.end());
|
||||
// slaterdet_0->add(spo,spo_name);
|
||||
}
|
||||
|
@ -323,12 +324,12 @@ bool SlaterDetBuilder::put(xmlNodePtr cur)
|
|||
if(multiDet)
|
||||
{
|
||||
if(FastMSD)
|
||||
targetPsi.addOrbital(multislaterdetfast_0,"MultiSlaterDeterminantFast");
|
||||
targetPsi.addOrbital(multislaterdetfast_0,"MultiSlaterDeterminantFast",true);
|
||||
else
|
||||
targetPsi.addOrbital(multislaterdet_0,"MultiSlaterDeterminant");
|
||||
targetPsi.addOrbital(multislaterdet_0,"MultiSlaterDeterminant",true);
|
||||
}
|
||||
else
|
||||
targetPsi.addOrbital(slaterdet_0,"SlaterDet");
|
||||
targetPsi.addOrbital(slaterdet_0,"SlaterDet",true);
|
||||
delete myBasisSetFactory;
|
||||
myBasisSetFactory=0;
|
||||
return success;
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace qmcplusplus
|
|||
TrialWaveFunction::TrialWaveFunction(Communicate* c)
|
||||
: MPIObjectBase(c)
|
||||
, Ordered(true), NumPtcls(0), TotalDim(0), BufferCursor(0)
|
||||
, PhaseValue(0.0),LogValue(0.0),OneOverM(1.0), PhaseDiff(0.0)
|
||||
, PhaseValue(0.0),LogValue(0.0),OneOverM(1.0), PhaseDiff(0.0), FermionWF(0)
|
||||
{
|
||||
ClassName="TrialWaveFunction";
|
||||
myName="psi0";
|
||||
|
@ -73,13 +73,20 @@ void TrialWaveFunction::stopOptimization()
|
|||
}
|
||||
|
||||
/** add an ObritalBase
|
||||
*@param aterm a many-body wavefunction
|
||||
*/
|
||||
* @param aterm an OrbitalBase
|
||||
* @param aname name of aterm
|
||||
* @param fermion if true, set aterm to FermionWF
|
||||
*/
|
||||
void
|
||||
//TrialWaveFunction::addOrbital(OrbitalBase* aterm)
|
||||
TrialWaveFunction::addOrbital(OrbitalBase* aterm, const string& aname)
|
||||
TrialWaveFunction::addOrbital(OrbitalBase* aterm, const string& aname, bool fermion)
|
||||
{
|
||||
Z.push_back(aterm);
|
||||
if(fermion)
|
||||
{
|
||||
app_log() << " FermionWF=" << aname << endl;
|
||||
FermionWF=dynamic_cast<FermionBase*>(aterm);
|
||||
}
|
||||
|
||||
#if defined(QMC_CUDA)
|
||||
char name1[64],name2[64],name3[64],name4[64], name5[64], name6[64];
|
||||
sprintf(name1,"WaveFunction::%s_V",aname.c_str());
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
#include "Message/MPIObjectBase.h"
|
||||
#include "QMCWaveFunctions/OrbitalBase.h"
|
||||
#include "QMCWaveFunctions/FermionBase.h"
|
||||
#include "QMCWaveFunctions/DiffOrbitalBase.h"
|
||||
#include "Utilities/NewTimer.h"
|
||||
/**@defgroup MBWfs Many-body wave function group
|
||||
|
@ -170,7 +171,7 @@ public:
|
|||
|
||||
///Add an OrbitalBase
|
||||
//void addOrbital(OrbitalBase* aterm);
|
||||
void addOrbital(OrbitalBase* aterm, const string& aname);
|
||||
void addOrbital(OrbitalBase* aterm, const string& aname, bool fermion=false);
|
||||
|
||||
///read from xmlNode
|
||||
bool put(xmlNodePtr cur);
|
||||
|
@ -324,7 +325,10 @@ public:
|
|||
//OneOverM = 1.0/mass;
|
||||
}
|
||||
|
||||
|
||||
FermionBase* getFermionWF()
|
||||
{
|
||||
return FermionWF;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
|
@ -357,6 +361,9 @@ private:
|
|||
///a list of OrbitalBases constituting many-body wave functions
|
||||
vector<OrbitalBase*> Z;
|
||||
|
||||
///fermionic wavefunction
|
||||
FermionBase* FermionWF;
|
||||
|
||||
///differential gradients
|
||||
ParticleSet::ParticleGradient_t delta_G;
|
||||
|
||||
|
|
Loading…
Reference in New Issue