37 app_warning() <<
" LatticeGaussianProductBuilder::put does not have name " << std::endl;
43 app_error() <<
"Could not find source ParticleSet " <<
sourceOpt <<
" for ion wave function.\n";
45 auto& sourcePtcl = *pa_it->second;
46 auto orb = std::make_unique<LatticeGaussianProduct>(sourcePtcl,
targetPtcl);
55 orb->ParticleCenter[iat] = num_nonzero++;
56 orb->ParticleAlpha[iat] = 0.5 / (w * w);
60 orb->ParticleCenter[iat] = -1;
61 orb->ParticleAlpha[iat] = 0.0;
64 if (num_nonzero != sourcePtcl.getTotalNum())
66 app_error() <<
" The number of nonzero widths should be the same as the number of\n" 67 <<
" centers for the ionwf.\n";
70 assert(num_nonzero == sourcePtcl.getTotalNum());
void resize(size_type n, Type_t val=Type_t())
Resize the container.
std::string sourceOpt
source
std::ostream & app_warning()
std::unique_ptr< WaveFunctionComponent > buildComponent(xmlNodePtr cur) override
process a xml node at cur
helper functions for EinsplineSetBuilder
An abstract class for wave function builders.
size_t getTotalNum() const
bool put(xmlNodePtr cur)
assign attributes to the set
std::ostream & app_error()
std::map< std::string, const std::unique_ptr< ParticleSet > > PSetMap
ParticleSet & targetPtcl
reference to the particle set on which targetPsi is defined
Wrapping information on parallelism.
Specialized paritlce class for atomistic simulations.
class to handle a set of attributes of an xmlNode
const PSetMap & ptclPool
particleset pool to get ParticleSet other than the target
LatticeGaussianProductBuilder(Communicate *comm, ParticleSet &p, const PSetMap &psets)
Simple gaussian functions used for orbitals for ions.
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute
Vector< RealType > widthOpt
function