26 name_ =
"HF_Force_Base";
36 return std::make_unique<BareForce>(*this);
61 for (
int jat = 0; jat < d_ab.targets(); jat++)
63 const auto& ab_dist = d_ab.getDistRow(jat);
64 const auto& ab_displ = d_ab.getDisplRow(jat);
65 for (
int iat = 0; iat < d_ab.sources(); iat++)
67 Real rinv = 1.0 / ab_dist[iat];
68 Real r3zz = Qat[jat] * Zat[iat] * rinv * rinv * rinv;
69 forces_[iat] += r3zz * ab_displ[iat];
78 std::string ionionforce(
"yes");
81 attr.
add(ionionforce,
"add_ion_ion_");
83 add_ion_ion_ = (ionionforce ==
"yes" || ionionforce ==
"true");
89 os <<
"Force Base Hamiltonian: " <<
pair_name_;
std::string getClassName() const override
return class name
helper functions for EinsplineSetBuilder
std::unique_ptr< OperatorBase > makeClone(ParticleSet &qp, TrialWaveFunction &psi) final
ParticleSet::ParticlePos forces_
int my_index_
starting index of this object
bool put(xmlNodePtr cur)
assign attributes to the set
void addObservablesF(QMCTraits::PropertySetType &plist)
Vectorized record engine for scalar properties.
void resetTargetParticleSet(ParticleSet &P) override
Reset the data with the target ParticleSet.
void registerObservablesF(std::vector< ObservableHelper > &h5list, hdf_archive &file) const
const DistanceTableAB & getDistTableAB(int table_ID) const
get a distance table by table_ID and dyanmic_cast to DistanceTableAB
std::string name_
name of this object
Specialized paritlce class for atomistic simulations.
void setObservables(PropertySetType &plist) override
Set the values evaluated by this object to plist Default implementation is to assign Value which is u...
bool add_ion_ion_
Determines if ion-ion force will be added to electron-ion force in derived force estimators. If false, forces_ion_ion_=0.0.
class to handle a set of attributes of an xmlNode
QTFull::RealType Scalar_t
bool put(xmlNodePtr cur) override
Do nothing.
void setParticleSetF(QMCTraits::PropertySetType &plist, int offset)
void registerObservables(std::vector< ObservableHelper > &h5list, hdf_archive &file) const override
add to observable descriptor for hdf5 The default implementation is to register a scalar for this->va...
ParticleScalar Z
charge of each particle
QMCTraits::RealType Real
cheat, need to use virtual inheriance to clean up
FullPrecRealType Return_t
type of return value of evaluate
void addObservables(PropertySetType &plist, BufferType &collectables) override
default implementation to add named values to the property list
void setObservablesF(QMCTraits::PropertySetType &plist)
Class to represent a many-body trial wave function.
Return_t evaluate(ParticleSet &P) override
Evaluate the local energy contribution of this component.
void setParticlePropertyList(PropertySetType &plist, int offset) override
ParticleSet::ParticlePos forces_ion_ion_
bool get(std::ostream &os) const override
write about the class
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute
BareForce(ParticleSet &ions, ParticleSet &elns)