14 #ifndef QMCPLUSPLUS_CUSP_CORRECTION_CONSTRUCTOR_H 15 #define QMCPLUSPLUS_CUSP_CORRECTION_CONSTRUCTOR_H 103 const std::string& objectName,
273 const std::string&
id);
279 const std::string&
id,
base class for Single-particle orbital sets
void minimizeForRc(CuspCorrection &cusp, OneMolecularOrbital &phiMO, RealType Z, RealType Rc_init, RealType Rc_max, RealType eta0, ValueVector &pos, ValueVector &ELcurr, ValueVector &ELideal)
Minimize chi2 with respect to Rc and phi at zero.
helper functions for EinsplineSetBuilder
QTBase::GradType GradType
QTBase::RealType RealType
RealType phiBar(const CuspCorrection &cusp, RealType r, OneMolecularOrbital &phiMO)
Cusp correction parameters.
OrbitalSetTraits< ValueType >::ValueVector ValueVector
int curCenter
Index of atomic center.
void getCurrentLocalEnergy(const ValueVector &pos, RealType Zeff, RealType Rc, RealType originalELatRc, CuspCorrection &cusp, OneMolecularOrbital &phiMO, ValueVector &ELcurr)
Compute effective local energy at vector of points.
LatticeGaussianProduct::GradType GradType
OneMolecularOrbital(ParticleSet *targetP, ParticleSet *sourceP, SPOSetPtr Phi)
void evalX(RealType valRc, GradType gradRc, ValueType lapRc, RealType Rc, RealType Z, RealType C, RealType valAtZero, RealType eta0, TinyVector< ValueType, 5 > &X)
Evaluate various orbital quantities that enter as constraints on the correction.
void saveCusp(const std::string &filename, const Matrix< CuspCorrectionParameters > &info, const std::string &id)
save cusp correction info to a file.
void broadcastCuspInfo(CuspCorrectionParameters ¶m, Communicate &Comm, int root)
Broadcast cusp correction parameters.
OrbitalSetTraits< ValueType >::ValueVector ValueVector
void applyCuspCorrection(const Matrix< CuspCorrectionParameters > &info, ParticleSet &targetPtcl, ParticleSet &sourcePtcl, LCAOrbitalSet &lcao, SoaCuspCorrection &cusp, const std::string &id)
QMCTraits::RealType RealType
bool readCuspInfo(const std::string &cuspInfoFile, const std::string &objectName, int OrbitalSetSize, Matrix< CuspCorrectionParameters > &info)
Read cusp correction parameters from XML file.
void getIdealLocalEnergy(const ValueVector &pos, RealType Z, RealType Rc, RealType ELorigAtRc, ValueVector &ELideal)
Ideal local energy at a vector of points.
Wrapping information on parallelism.
RealType getOriginalLocalEnergy(const ValueVector &pos, RealType Zeff, RealType Rc, OneMolecularOrbital &phiMO, ValueVector &ELorig)
Local energy from uncorrected orbital.
virtual void evaluateValue(const ParticleSet &P, int iat, ValueVector &psi)=0
evaluate the values of this single-particle orbital set
Specialized paritlce class for atomistic simulations.
void removeSTypeOrbitals(const std::vector< bool > &corrCenter, LCAOrbitalSet &Phi)
Remove S atomic orbitals from all molecular orbitals on all centers.
QTBase::ValueType ValueType
void changeOrbital(int centerIdx, int orbIdx)
OrbitalSetTraits< ValueType >::GradVector GradVector
void generateCuspInfo(Matrix< CuspCorrectionParameters > &info, const ParticleSet &targetPtcl, const ParticleSet &sourcePtcl, const LCAOrbitalSet &lcao, const std::string &id, Communicate &Comm)
virtual void evaluateVGL(const ParticleSet &P, int iat, ValueVector &psi, GradVector &dpsi, ValueVector &d2psi)=0
evaluate the values, gradients and laplacians of this single-particle orbital set ...
ValueVector val1
Temporary storage for real wavefunction values.
A localized basis set derived from BasisSetBase<typename COT::ValueType>
Formulas for applying the cusp correction.
int getOrbitalSetSize() const
return the size of the orbitals
Corrections to electron-nucleus cusp for all-electron molecular calculations.
RealType getOneIdealLocalEnergy(RealType r, RealType Z, RealType beta0)
Ideal local energy at one point.
ParticleSet * sourcePtcl
source ParticleSet
void computeRadialPhiBar(ParticleSet *targetP, ParticleSet *sourceP, int curOrb_, int curCenter_, SPOSet *Phi, Vector< QMCTraits::RealType > &xgrid, Vector< QMCTraits::RealType > &rad_orb, const CuspCorrectionParameters &data)
Compute the radial part of the corrected wavefunction.
void makeMove(Index_t iat, const SingleParticlePos &displ, bool maybe_accept=true)
move the iat-th particle to active_pos_
void X2alpha(const TinyVector< ValueType, 5 > &X, RealType Rc, TinyVector< ValueType, 5 > &alpha)
Convert constraints to polynomial parameters.
LatticeGaussianProduct::ValueType ValueType
RealType minimizeForPhiAtZero(CuspCorrection &cusp, OneMolecularOrbital &phiMO, RealType Z, RealType eta0, ValueVector &pos, ValueVector &ELcurr, ValueVector &ELideal, RealType start_phi0)
Minimize chi2 with respect to phi at zero for a fixed Rc.
QMCTraits::ValueType ValueType
class to handle linear combinations of basis orbitals used to evaluate the Dirac determinants.
ParticleSet * targetPtcl
target ParticleSet
trait class to handel a set of Orbitals
void phi_vgl(RealType r, RealType &val, GradType &grad, RealType &lap)
RealType getZeff(RealType Z, RealType etaAtZero, RealType phiBarAtZero)
Effective nuclear charge to keep effective local energy finite at zero.
RealType getELchi2(const ValueVector &ELcurr, const ValueVector &ELideal)
Sum of squares difference between the current and ideal local energies This is the objective function...
void splitPhiEta(int center, const std::vector< bool > &corrCenter, LCAOrbitalSet &Phi, LCAOrbitalSet &Eta)
Divide molecular orbital into atomic S-orbitals on this center (phi), and everything else (eta)...
int curOrb
Index of orbital.