14 #ifndef QMCPLUSPLUS_SO_ECPOTENTIAL_COMPONENT_H 15 #define QMCPLUSPLUS_SO_ECPOTENTIAL_COMPONENT_H 30 class TestSOECPotential;
60 std::vector<RadialPotentialType*>
sopp_m_;
127 std::vector<RealType>& pairpots,
140 void print(std::ostream& os);
const VirtualParticleSet * getVP() const
int nchannel_
the number of non-local channels
std::vector< T, aligned_allocator< T > > aligned_vector
helper functions for EinsplineSetBuilder
RealType evaluateOneExactSpinIntegration(ParticleSet &W, const int iat, const TrialWaveFunction &psi, const int iel, const RealType r, const PosType &dr)
void rotateQuadratureGrid(const TensorType &rmat)
Vector< ValueType > dlogpsi_vp_
aligned_vector< int > angpp_m_
Angular momentum map.
A ParticleSet that handles virtual moves of a selected particle of a given physical ParticleSet Virtu...
std::vector< ValueType > vrad_
int lmax_
Non Local part: angular momentum, potential and grid.
Declaration of OperatorBase.
void resize_warrays(int n, int m, int s)
OrbitalSetTraits< ValueType >::ValueMatrix ValueMatrix
QTBase::ComplexType ComplexType
void buildTotalQuadrature(const RealType r, const PosType &dr, const RealType sold)
class SOECPComponent brief Computes the nonlocal spin-orbit interaction .
void deleteVirtualParticle()
friend RealType getSplinedSOPot(SOECPComponent *so_pp, int l, double r)
API for accessing the value of an SO radial potential at distance r. For unit and other testing...
static ComplexType sMatrixElements(RealType s1, RealType s2, int dim)
static ComplexType matrixElementDecomposed(int l, int m1, int m2, RealType spin, bool plus=true)
SPOSet::ValueMatrix ValueMatrix
An abstract base class to implement a One-Dimensional grid.
Decalaration of One-Dimesional grids.
Specialized paritlce class for atomistic simulations.
RealType rmax_
Maximum cutoff the non-local pseudopotential.
std::vector< PosType > deltaV_
static ComplexType lmMatrixElements(int l, int m1, int m2, int dim)
RealType calculateProjector(RealType r, const PosType &dr, RealType sold)
friend void copyGridUnrotatedForTest(SOECPComponent &nlpp)
std::vector< ValueType > psiratio_
class to handle a set of variables that can be modified during optimizations
SpherGridType sgridxyz_m_
RealType evaluateValueAndDerivatives(ParticleSet &P, int iat, TrialWaveFunction &psi, int iel, RealType r, const PosType &dr, const opt_variables_type &optvars, const Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)
void initVirtualParticle(const ParticleSet &qp)
void print(std::ostream &os)
std::vector< PosType > SpherGridType
std::vector< RadialPotentialType * > sopp_m_
Non-Local part of the pseudo-potential.
void setRmax(RealType rmax)
Declaration of a TrialWaveFunction.
std::vector< ValueType > wvec_
std::vector< std::reference_wrapper< T > > RefVector
void add(int l, RadialPotentialType *pp)
add a new Spin-Orbit component
Class to represent a many-body trial wave function.
std::vector< RealType > sgridweight_m_
SpherGridType rrotsgrid_m_
RealType evaluateOne(ParticleSet &W, int iat, TrialWaveFunction &Psi, int iel, RealType r, const PosType &dr)
Evaluate the spin orbit pp contribution to total energy from ion "iat" and electron "iel"...
meta data for NLPP calculation of a pair of ion and electron This is not just meta data...
static int kroneckerDelta(int x, int y)
SOECPComponent * makeClone(const ParticleSet &qp)
std::vector< RealType > deltaS_
Matrix< ValueType > dratio_
std::vector< RealType > spin_quad_weights_
static void mw_evaluateOne(const RefVectorWithLeader< SOECPComponent > &soecp_component_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVectorWithLeader< TrialWaveFunction > &psi_list, const RefVector< const NLPPJob< RealType >> &joblist, std::vector< RealType > &pairpots, ResourceCollection &collection)