![]() |
QMCPACK
|
JastrowBuilder using an analytic 1d functor Should be able to eventually handle all one and two body jastrows although spline based ones will come later. More...
Public Types | |
enum | detail { CPU, CUDA, OMPTARGET } |
![]() | |
using | RealType = WaveFunctionComponent::RealType |
using | ValueType = WaveFunctionComponent::ValueType |
using | PosType = WaveFunctionComponent::PosType |
using | GradType = WaveFunctionComponent::GradType |
using | PSetMap = std::map< std::string, const std::unique_ptr< ParticleSet > > |
![]() | |
using | mpi_comm_type = Communicate::mpi_comm_type |
Public Member Functions | |
RadialJastrowBuilder (Communicate *comm, ParticleSet &target, ParticleSet &source) | |
RadialJastrowBuilder (Communicate *comm, ParticleSet &target) | |
std::unique_ptr< WaveFunctionComponent > | buildComponent (xmlNodePtr cur) override |
process a xml node at cur More... | |
template<> | |
void | initTwoBodyFunctor (BsplineFunctor< RealType > &bfunc, double fac) |
![]() | |
WaveFunctionComponentBuilder (Communicate *comm, ParticleSet &p) | |
constructor More... | |
virtual | ~WaveFunctionComponentBuilder ()=default |
![]() | |
MPIObjectBase (Communicate *c) | |
constructor with communicator More... | |
int | rank () const |
return the rank of the communicator More... | |
int | getGroupID () const |
return the group id of the communicator More... | |
Communicate * | getCommunicator () const |
return myComm More... | |
Communicate & | getCommRef () const |
return a TEMPORARY reference to Communicate More... | |
mpi_comm_type | getMPI () const |
return MPI communicator if one wants to use MPI directly More... | |
bool | is_manager () const |
return true if the rank == 0 More... | |
const std::string & | getName () const |
return the name More... | |
void | setName (const std::string &aname) |
Private Member Functions | |
template<class RadFuncType , bool SPIN = false, unsigned Implementation = detail::CPU> | |
std::unique_ptr< WaveFunctionComponent > | createJ1 (xmlNodePtr cur) |
template<class RadFuncType , unsigned Implementation = detail::CPU> | |
std::unique_ptr< WaveFunctionComponent > | createJ2 (xmlNodePtr cur) |
template<class RadFuncType > | |
void | initTwoBodyFunctor (RadFuncType &functor, double fac) |
template<class RadFuncType > | |
void | computeJ2uk (const std::vector< RadFuncType *> &functors) |
void | guardAgainstOBC () |
void | guardAgainstPBC () |
template<> | |
std::unique_ptr< WaveFunctionComponent > | createJ2 (xmlNodePtr cur) |
template<> | |
std::unique_ptr< WaveFunctionComponent > | createJ1 (xmlNodePtr cur) |
Private Attributes | |
std::string | NameOpt |
<jastrow name="..."> More... | |
std::string | TypeOpt |
<jastrow type="..."> More... | |
std::string | Jastfunction |
<jastrow function="..."> More... | |
std::string | SpinOpt |
<jastrow spin="..."> More... | |
ParticleSet * | SourcePtcl |
particle set for source particle More... | |
Additional Inherited Members | |
![]() | |
static std::string | wfs_tag = "wavefunction" |
reserved tags for the elements associated with the many-body wavefunctions More... | |
static std::string | param_tag = "parameter" |
the element name for a parameter More... | |
static std::string | dtable_tag = "distancetable" |
the element name for a distancetable More... | |
static std::string | jastrow_tag = "jastrow" |
the element name for jatrow More... | |
static std::string | detset_tag = "determinantset" |
the element name for a set of Slater determinants, contains 1..* Slater determinants More... | |
static std::string | sd_tag = "slaterdeterminant" |
the element name for a Slater determinant, contains 1..* determinants More... | |
static std::string | det_tag = "determinant" |
the element name for a determinant, may contain (0..*) orbital or parameter element More... | |
static std::string | rn_tag = "determinant_rn" |
the element name for a released node determinant, may contain (0..*) orbital or parameter element More... | |
static std::string | spo_tag = "psi" |
the element name for single-particle orbital More... | |
static std::string | sposet_tag = "sposet" |
the element name for single-particle orbital set More... | |
static std::string | ionorb_tag = "ionwf" |
the element name for an ion wavefunction More... | |
static std::string | backflow_tag = "backflow" |
the element name for a backflow transformation More... | |
static std::string | multisd_tag = "multideterminant" |
the element name for a multi slater determinant wavefunction More... | |
![]() | |
ParticleSet & | targetPtcl |
reference to the particle set on which targetPsi is defined More... | |
xmlNodePtr | myNode |
xmlNode operated by this object More... | |
![]() | |
Communicate * | myComm |
pointer to Communicate More... | |
std::string | ClassName |
class Name More... | |
std::string | myName |
name of the object More... | |
JastrowBuilder using an analytic 1d functor Should be able to eventually handle all one and two body jastrows although spline based ones will come later.
Definition at line 33 of file RadialJastrowBuilder.h.
enum detail |
RadialJastrowBuilder | ( | Communicate * | comm, |
ParticleSet & | target, | ||
ParticleSet & | source | ||
) |
Definition at line 57 of file RadialJastrowBuilder.cpp.
References MPIObjectBase::ClassName, RadialJastrowBuilder::Jastfunction, RadialJastrowBuilder::NameOpt, RadialJastrowBuilder::SpinOpt, and RadialJastrowBuilder::TypeOpt.
RadialJastrowBuilder | ( | Communicate * | comm, |
ParticleSet & | target | ||
) |
Definition at line 67 of file RadialJastrowBuilder.cpp.
References MPIObjectBase::ClassName, RadialJastrowBuilder::Jastfunction, RadialJastrowBuilder::NameOpt, RadialJastrowBuilder::SpinOpt, and RadialJastrowBuilder::TypeOpt.
|
overridevirtual |
process a xml node at cur
Implements WaveFunctionComponentBuilder.
Definition at line 508 of file RadialJastrowBuilder.cpp.
References OhmmsAttributeSet::add(), SpeciesSet::addAttribute(), APP_ABORT, qmcplusplus::app_error(), qmcplusplus::app_summary(), Communicate::barrier_and_abort(), PlatformSelector< KIND >::candidate_values(), MPIObjectBase::ClassName, qmcplusplus::DC_POS_OFFLOAD, ParticleSet::getCoordinates(), DynamicCoordinates::getKind(), OhmmsElementBase::getName(), ParticleSet::getSpeciesSet(), RadialJastrowBuilder::guardAgainstOBC(), RadialJastrowBuilder::guardAgainstPBC(), qmcplusplus::is_same(), RadialJastrowBuilder::Jastfunction, qmcplusplus::lowerCase(), MPIObjectBase::myComm, RadialJastrowBuilder::NameOpt, qmcplusplus::OMPTARGET, RadialJastrowBuilder::OMPTARGET, OhmmsAttributeSet::put(), PlatformSelector< KIND >::selectPlatform(), RadialJastrowBuilder::SpinOpt, WaveFunctionComponentBuilder::targetPtcl, and RadialJastrowBuilder::TypeOpt.
Referenced by JastrowBuilder::buildOneBody(), JastrowBuilder::buildTwoBody(), qmcplusplus::doSOECPotentialTest(), qmcplusplus::TEST_CASE(), qmcplusplus::test_J1_spline(), and qmcplusplus::testTrialWaveFunction_diamondC_2x1x1().
|
private |
Definition at line 257 of file RadialJastrowBuilder.cpp.
References DEBUG, ParticleSet::first(), MPIObjectBase::getGroupID(), ParticleSet::getLattice(), ParticleSet::getSimulationCell(), ParticleSet::groups(), MPIObjectBase::is_manager(), OutputManagerClass::isActive(), ParticleSet::last(), RadialJastrowBuilder::NameOpt, outputManager, qmcplusplus::sin(), qmcplusplus::sqrt(), and WaveFunctionComponentBuilder::targetPtcl.
Referenced by RadialJastrowBuilder::createJ2().
|
private |
Definition at line 317 of file RadialJastrowBuilder.cpp.
References OhmmsAttributeSet::add(), qmcplusplus::app_summary(), Communicate::barrier_and_abort(), PlatformSelector< KIND >::candidate_values(), castXMLCharToChar(), MPIObjectBase::ClassName, qmcplusplus::DC_POS_OFFLOAD, DEBUG, ReportEngine::error(), qmcplusplus::extractCoefficientsID(), SpeciesSet::findSpecies(), ParticleSet::getCoordinates(), MPIObjectBase::getGroupID(), DynamicCoordinates::getKind(), ParticleSet::getLattice(), OhmmsElementBase::getName(), ParticleSet::getSpeciesSet(), SpeciesSet::getTotalNum(), getXMLAttributeValue(), MPIObjectBase::is_manager(), OutputManagerClass::isActive(), RadialJastrowBuilder::Jastfunction, qmcplusplus::lowerCase(), MPIObjectBase::myComm, RadialJastrowBuilder::NameOpt, qmcplusplus::OMPTARGET, outputManager, qmcplusplus::print(), OhmmsAttributeSet::put(), PlatformSelector< KIND >::selectPlatform(), RadialJastrowBuilder::SourcePtcl, qmcplusplus::SUPERCELL_OPEN, and WaveFunctionComponentBuilder::targetPtcl.
|
private |
Definition at line 439 of file RadialJastrowBuilder.cpp.
References OhmmsAttributeSet::add(), ParameterSet::add(), qmcplusplus::app_log(), qmcplusplus::Units::charge::e, qmcplusplus::pow(), ParameterSet::put(), OhmmsAttributeSet::put(), LinearGrid< T, CT >::set(), and ShortRangePartAdapter< T >::setRmax().
|
private |
Definition at line 133 of file RadialJastrowBuilder.cpp.
References OhmmsAttributeSet::add(), app_debug, qmcplusplus::app_summary(), MPIObjectBase::ClassName, RadialJastrowBuilder::computeJ2uk(), DEBUG, ReportEngine::error(), qmcplusplus::extractCoefficientsID(), ParticleSet::first(), MPIObjectBase::getGroupID(), ParticleSet::getLattice(), OhmmsElementBase::getName(), ParticleSet::getSpeciesSet(), getXMLAttributeValue(), RadialJastrowBuilder::initTwoBodyFunctor(), MPIObjectBase::is_manager(), OutputManagerClass::isActive(), RadialJastrowBuilder::Jastfunction, ParticleSet::last(), RadialJastrowBuilder::NameOpt, outputManager, qmcplusplus::print(), OhmmsAttributeSet::put(), qmcplusplus::SUPERCELL_OPEN, WaveFunctionComponentBuilder::targetPtcl, and ReportEngine::warning().
|
private |
Definition at line 309 of file RadialJastrowBuilder.cpp.
|
private |
Definition at line 78 of file RadialJastrowBuilder.cpp.
References qmcplusplus::app_error(), ParticleSet::getLattice(), RadialJastrowBuilder::Jastfunction, qmcplusplus::SUPERCELL_OPEN, and WaveFunctionComponentBuilder::targetPtcl.
Referenced by RadialJastrowBuilder::buildComponent().
|
private |
Definition at line 88 of file RadialJastrowBuilder.cpp.
References qmcplusplus::app_error(), ParticleSet::getLattice(), RadialJastrowBuilder::Jastfunction, qmcplusplus::SUPERCELL_OPEN, and WaveFunctionComponentBuilder::targetPtcl.
Referenced by RadialJastrowBuilder::buildComponent().
|
private |
Definition at line 98 of file RadialJastrowBuilder.cpp.
Referenced by RadialJastrowBuilder::createJ2().
void initTwoBodyFunctor | ( | BsplineFunctor< RealType > & | bfunc, |
double | fac | ||
) |
Definition at line 102 of file RadialJastrowBuilder.cpp.
References qmcplusplus::app_log(), LRRPAHandlerTemp< Func, BreakupBasis >::Breakup(), OptimizableFunctorBase::cutoff_radius, LRRPAHandlerTemp< Func, BreakupBasis >::evaluate(), ParticleSet::getLattice(), BsplineFunctor< REAL >::NumParams, BsplineFunctor< REAL >::Parameters, BsplineFunctor< REAL >::reset(), qmcplusplus::SUPERCELL_OPEN, and WaveFunctionComponentBuilder::targetPtcl.
|
private |
<jastrow function="...">
Definition at line 56 of file RadialJastrowBuilder.h.
Referenced by RadialJastrowBuilder::buildComponent(), RadialJastrowBuilder::createJ1(), RadialJastrowBuilder::createJ2(), RadialJastrowBuilder::guardAgainstOBC(), RadialJastrowBuilder::guardAgainstPBC(), and RadialJastrowBuilder::RadialJastrowBuilder().
|
private |
<jastrow name="...">
Definition at line 52 of file RadialJastrowBuilder.h.
Referenced by RadialJastrowBuilder::buildComponent(), RadialJastrowBuilder::computeJ2uk(), RadialJastrowBuilder::createJ1(), RadialJastrowBuilder::createJ2(), and RadialJastrowBuilder::RadialJastrowBuilder().
|
private |
particle set for source particle
Definition at line 60 of file RadialJastrowBuilder.h.
Referenced by RadialJastrowBuilder::createJ1().
|
private |
<jastrow spin="...">
Definition at line 58 of file RadialJastrowBuilder.h.
Referenced by RadialJastrowBuilder::buildComponent(), and RadialJastrowBuilder::RadialJastrowBuilder().
|
private |
<jastrow type="...">
Definition at line 54 of file RadialJastrowBuilder.h.
Referenced by RadialJastrowBuilder::buildComponent(), and RadialJastrowBuilder::RadialJastrowBuilder().