![]() |
QMCPACK
|
class SOECPComponent brief Computes the nonlocal spin-orbit interaction .
More...
Public Member Functions | |
SOECPComponent () | |
~SOECPComponent () | |
SOECPComponent * | makeClone (const ParticleSet &qp) |
void | add (int l, RadialPotentialType *pp) |
add a new Spin-Orbit component More... | |
void | resize_warrays (int n, int m, int s) |
void | rotateQuadratureGrid (const TensorType &rmat) |
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". More... | |
RealType | calculateProjector (RealType r, const PosType &dr, RealType sold) |
RealType | evaluateOneExactSpinIntegration (ParticleSet &W, const int iat, const TrialWaveFunction &psi, const int iel, const RealType r, const PosType &dr) |
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 | print (std::ostream &os) |
void | initVirtualParticle (const ParticleSet &qp) |
void | deleteVirtualParticle () |
void | setRmax (RealType rmax) |
RealType | getRmax () const |
void | setLmax (int lmax) |
int | getLmax () const |
int | getNknot () const |
int | getSknot () const |
const VirtualParticleSet * | getVP () const |
Static Public Member Functions | |
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) |
Private Types | |
using | SpherGridType = std::vector< PosType > |
using | GridType = OneDimGridBase< RealType > |
using | RadialPotentialType = OneDimCubicSpline< RealType > |
using | ValueMatrix = SPOSet::ValueMatrix |
Private Member Functions | |
void | buildTotalQuadrature (const RealType r, const PosType &dr, const RealType sold) |
Static Private Member Functions | |
static ComplexType | sMatrixElements (RealType s1, RealType s2, int dim) |
static ComplexType | lmMatrixElements (int l, int m1, int m2, int dim) |
static ComplexType | matrixElementDecomposed (int l, int m1, int m2, RealType spin, bool plus=true) |
static int | kroneckerDelta (int x, int y) |
Private Attributes | |
int | lmax_ |
Non Local part: angular momentum, potential and grid. More... | |
int | nchannel_ |
the number of non-local channels More... | |
int | nknot_ |
int | sknot_ |
int | total_knots_ |
RealType | rmax_ |
Maximum cutoff the non-local pseudopotential. More... | |
aligned_vector< int > | angpp_m_ |
Angular momentum map. More... | |
std::vector< RadialPotentialType * > | sopp_m_ |
Non-Local part of the pseudo-potential. More... | |
std::vector< PosType > | deltaV_ |
std::vector< RealType > | deltaS_ |
SpherGridType | sgridxyz_m_ |
SpherGridType | rrotsgrid_m_ |
std::vector< ValueType > | psiratio_ |
std::vector< ValueType > | vrad_ |
std::vector< RealType > | sgridweight_m_ |
std::vector< RealType > | spin_quad_weights_ |
std::vector< ValueType > | wvec_ |
Matrix< ValueType > | dratio_ |
Vector< ValueType > | dlogpsi_vp_ |
VirtualParticleSet * | vp_ |
Friends | |
struct | ECPComponentBuilder |
class | testing::TestSOECPotential |
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. More... | |
void | copyGridUnrotatedForTest (SOECPComponent &nlpp) |
Additional Inherited Members | |
![]() | |
enum | { DIM = OHMMS_DIM, DIM_VGL = OHMMS_DIM + 2 } |
using | QTBase = QMCTypes< OHMMS_PRECISION, DIM > |
using | QTFull = QMCTypes< OHMMS_PRECISION_FULL, DIM > |
using | RealType = QTBase::RealType |
using | ComplexType = QTBase::ComplexType |
using | ValueType = QTBase::ValueType |
using | PosType = QTBase::PosType |
using | GradType = QTBase::GradType |
using | TensorType = QTBase::TensorType |
using | IndexType = OHMMS_INDEXTYPE |
define other types More... | |
using | FullPrecRealType = QTFull::RealType |
using | FullPrecValueType = QTFull::ValueType |
using | PropertySetType = RecordNamedProperty< FullPrecRealType > |
define PropertyList_t More... | |
using | PtclGrpIndexes = std::vector< std::pair< int, int > > |
class SOECPComponent brief Computes the nonlocal spin-orbit interaction .
details This computes the nonlocal spin-orbit interaction between a single ion species and a given electron.
Currently, this class does nothing other than generate and store for different orbital angular momenta. Implementation coming soon!
Definition at line 40 of file SOECPComponent.h.
|
private |
Definition at line 44 of file SOECPComponent.h.
|
private |
Definition at line 45 of file SOECPComponent.h.
|
private |
Definition at line 43 of file SOECPComponent.h.
|
private |
Definition at line 46 of file SOECPComponent.h.
SOECPComponent | ( | ) |
Definition at line 22 of file SOECPComponent.cpp.
Referenced by SOECPComponent::makeClone().
~SOECPComponent | ( | ) |
Definition at line 26 of file SOECPComponent.cpp.
References SOECPComponent::sopp_m_, and SOECPComponent::vp_.
void add | ( | int | l, |
RadialPotentialType * | pp | ||
) |
add a new Spin-Orbit component
Definition at line 51 of file SOECPComponent.cpp.
References SOECPComponent::angpp_m_, and SOECPComponent::sopp_m_.
Definition at line 430 of file SOECPComponent.cpp.
References SOECPComponent::deltaS_, SOECPComponent::deltaV_, SOECPComponent::nchannel_, SOECPComponent::nknot_, SOECPComponent::rrotsgrid_m_, SOECPComponent::sgridweight_m_, SOECPComponent::sknot_, SOECPComponent::sopp_m_, SOECPComponent::spin_quad_weights_, SOECPComponent::total_knots_, and SOECPComponent::vrad_.
Referenced by SOECPComponent::evaluateOne(), SOECPComponent::evaluateValueAndDerivatives(), and SOECPComponent::mw_evaluateOne().
SOECPComponent::RealType calculateProjector | ( | RealType | r, |
const PosType & | dr, | ||
RealType | sold | ||
) |
Definition at line 182 of file SOECPComponent.cpp.
References qmcplusplus::conj(), SOECPComponent::deltaS_, SOECPComponent::lmMatrixElements(), SOECPComponent::nchannel_, SOECPComponent::nknot_, SOECPComponent::psiratio_, SOECPComponent::rrotsgrid_m_, SOECPComponent::sMatrixElements(), qmcplusplus::sphericalHarmonic(), SOECPComponent::spin_quad_weights_, SOECPComponent::total_knots_, and SOECPComponent::vrad_.
Referenced by SOECPComponent::evaluateOne(), and SOECPComponent::mw_evaluateOne().
void deleteVirtualParticle | ( | ) |
SOECPComponent::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".
W | electron particle set. |
iat | index of ion. |
Psi | trial wave function object |
iel | index of electron |
r | the distance between ion iat and electron iel. |
dr | displacement from ion iat to electron iel. |
Definition at line 155 of file SOECPComponent.cpp.
References SOECPComponent::buildTotalQuadrature(), TrialWaveFunction::calcRatio(), SOECPComponent::calculateProjector(), SOECPComponent::deltaS_, SOECPComponent::deltaV_, TrialWaveFunction::evaluateRatios(), VirtualParticleSet::makeMovesWithSpin(), ParticleSet::makeMoveWithSpin(), SOECPComponent::psiratio_, ParticleSet::rejectMove(), TrialWaveFunction::resetPhaseDiff(), ParticleSet::spins, SOECPComponent::total_knots_, and SOECPComponent::vp_.
SOECPComponent::RealType evaluateOneExactSpinIntegration | ( | ParticleSet & | W, |
const int | iat, | ||
const TrialWaveFunction & | psi, | ||
const int | iel, | ||
const RealType | r, | ||
const PosType & | dr | ||
) |
Definition at line 212 of file SOECPComponent.cpp.
References qmcplusplus::conj(), SOECPComponent::deltaV_, TrialWaveFunction::evaluateSpinorRatios(), VirtualParticleSet::makeMoves(), SOECPComponent::matrixElementDecomposed(), SOECPComponent::nchannel_, SOECPComponent::nknot_, SOECPComponent::psiratio_, SOECPComponent::rrotsgrid_m_, SOECPComponent::sgridweight_m_, SOECPComponent::sopp_m_, qmcplusplus::sphericalHarmonic(), ParticleSet::spins, SOECPComponent::vp_, and SOECPComponent::vrad_.
SOECPComponent::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 | ||
) |
Definition at line 348 of file SOECPComponent.cpp.
References ParticleSet::acceptMove(), TrialWaveFunction::acceptMove(), Vector< T, Alloc >::begin(), SOECPComponent::buildTotalQuadrature(), TrialWaveFunction::calcRatio(), qmcplusplus::conj(), Matrix< T, Alloc >::data(), Vector< T, Alloc >::data(), SOECPComponent::deltaS_, SOECPComponent::deltaV_, SOECPComponent::dlogpsi_vp_, SOECPComponent::dratio_, Vector< T, Alloc >::end(), TrialWaveFunction::evaluateDerivativesWF(), TrialWaveFunction::evaluateDerivRatios(), BLAS::gemv(), SOECPComponent::lmMatrixElements(), VirtualParticleSet::makeMovesWithSpin(), ParticleSet::makeMoveWithSpin(), SOECPComponent::nchannel_, SOECPComponent::nknot_, VariableSet::num_active_vars, SOECPComponent::psiratio_, ParticleSet::R, Matrix< T, Alloc >::resize(), Vector< T, Alloc >::resize(), SOECPComponent::rrotsgrid_m_, Vector< T, Alloc >::size(), SOECPComponent::sMatrixElements(), SOECPComponent::sopp_m_, qmcplusplus::sphericalHarmonic(), SOECPComponent::spin_quad_weights_, ParticleSet::spins, SOECPComponent::total_knots_, SOECPComponent::vp_, and SOECPComponent::wvec_.
|
inline |
Definition at line 148 of file SOECPComponent.h.
References SOECPComponent::lmax_.
|
inline |
|
inline |
Definition at line 146 of file SOECPComponent.h.
References SOECPComponent::rmax_.
|
inline |
|
inline |
void initVirtualParticle | ( | const ParticleSet & | qp | ) |
Definition at line 36 of file SOECPComponent.cpp.
References outputManager, OutputManagerClass::pause(), OutputManagerClass::resume(), SOECPComponent::total_knots_, and SOECPComponent::vp_.
|
staticprivate |
Definition at line 90 of file SOECPComponent.cpp.
Referenced by SOECPComponent::lmMatrixElements().
|
staticprivate |
Definition at line 108 of file SOECPComponent.cpp.
References APP_ABORT, SOECPComponent::kroneckerDelta(), and qmcplusplus::sqrt().
Referenced by SOECPComponent::calculateProjector(), SOECPComponent::evaluateValueAndDerivatives(), and SOECPComponent::matrixElementDecomposed().
SOECPComponent * makeClone | ( | const ParticleSet & | qp | ) |
Definition at line 57 of file SOECPComponent.cpp.
References SOECPComponent::SOECPComponent(), SOECPComponent::sopp_m_, SOECPComponent::total_knots_, and SOECPComponent::vp_.
|
staticprivate |
Definition at line 136 of file SOECPComponent.cpp.
References qmcplusplus::cos(), SOECPComponent::lmMatrixElements(), qmcplusplus::Units::mass::mp, qmcplusplus::Units::distance::pm, and qmcplusplus::sin().
Referenced by SOECPComponent::evaluateOneExactSpinIntegration().
|
static |
Definition at line 273 of file SOECPComponent.cpp.
References SOECPComponent::buildTotalQuadrature(), TrialWaveFunction::calcRatio(), SOECPComponent::calculateProjector(), SOECPComponent::deltaS_, SOECPComponent::deltaV_, NLPPJob< T >::electron_id, RefVectorWithLeader< T >::getLeader(), NLPPJob< T >::ion_elec_displ, NLPPJob< T >::ion_elec_dist, ParticleSet::makeMoveWithSpin(), TrialWaveFunction::mw_evaluateRatios(), VirtualParticleSet::mw_makeMovesWithSpin(), SOECPComponent::psiratio_, ParticleSet::rejectMove(), TrialWaveFunction::resetPhaseDiff(), ParticleSet::spins, SOECPComponent::total_knots_, and SOECPComponent::vp_.
Referenced by SOECPotential::mw_evaluateImpl().
void print | ( | std::ostream & | os | ) |
Definition at line 34 of file SOECPComponent.cpp.
void resize_warrays | ( | int | n, |
int | m, | ||
int | s | ||
) |
Definition at line 67 of file SOECPComponent.cpp.
References APP_ABORT, SOECPComponent::deltaS_, SOECPComponent::deltaV_, qmcplusplus::Units::distance::m, qmcplusplus::n, SOECPComponent::nchannel_, SOECPComponent::nknot_, SOECPComponent::psiratio_, SOECPComponent::rrotsgrid_m_, qmcplusplus::Units::time::s, SOECPComponent::sgridxyz_m_, SOECPComponent::sknot_, SOECPComponent::sopp_m_, SOECPComponent::spin_quad_weights_, SOECPComponent::total_knots_, and SOECPComponent::vrad_.
void rotateQuadratureGrid | ( | const TensorType & | rmat | ) |
Definition at line 481 of file SOECPComponent.cpp.
References qmcplusplus::dot(), SOECPComponent::rrotsgrid_m_, and SOECPComponent::sgridxyz_m_.
|
inline |
Definition at line 147 of file SOECPComponent.h.
References SOECPComponent::lmax_.
|
inline |
Definition at line 145 of file SOECPComponent.h.
References SOECPComponent::rmax_.
|
staticprivate |
Definition at line 92 of file SOECPComponent.cpp.
References APP_ABORT, qmcplusplus::cos(), and qmcplusplus::sin().
Referenced by SOECPComponent::calculateProjector(), and SOECPComponent::evaluateValueAndDerivatives().
|
friend |
Definition at line 154 of file test_ecp.cpp.
|
friend |
Definition at line 152 of file SOECPComponent.h.
|
friend |
API for accessing the value of an SO radial potential at distance r. For unit and other testing.
Definition at line 44 of file test_ecp.cpp.
|
friend |
Definition at line 157 of file SOECPComponent.h.
|
private |
Angular momentum map.
Definition at line 58 of file SOECPComponent.h.
Referenced by SOECPComponent::add().
|
private |
Definition at line 68 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateOne(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::mw_evaluateOne(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 67 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::evaluateOne(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::mw_evaluateOne(), and SOECPComponent::resize_warrays().
Definition at line 80 of file SOECPComponent.h.
Referenced by SOECPComponent::evaluateValueAndDerivatives().
Definition at line 79 of file SOECPComponent.h.
Referenced by SOECPComponent::evaluateValueAndDerivatives().
|
private |
Non Local part: angular momentum, potential and grid.
Definition at line 49 of file SOECPComponent.h.
Referenced by SOECPComponent::getLmax(), and SOECPComponent::setLmax().
|
private |
the number of non-local channels
Definition at line 51 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 52 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::getNknot(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 71 of file SOECPComponent.h.
Referenced by SOECPComponent::calculateProjector(), SOECPComponent::evaluateOne(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::mw_evaluateOne(), and SOECPComponent::resize_warrays().
|
private |
Maximum cutoff the non-local pseudopotential.
Definition at line 56 of file SOECPComponent.h.
Referenced by SOECPComponent::getRmax(), and SOECPComponent::setRmax().
|
private |
Definition at line 70 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), qmcplusplus::copyGridUnrotatedForTest(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::resize_warrays(), and SOECPComponent::rotateQuadratureGrid().
|
private |
Definition at line 73 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), and SOECPComponent::evaluateOneExactSpinIntegration().
|
private |
Definition at line 69 of file SOECPComponent.h.
Referenced by qmcplusplus::copyGridUnrotatedForTest(), SOECPComponent::resize_warrays(), and SOECPComponent::rotateQuadratureGrid().
|
private |
Definition at line 53 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::getSknot(), and SOECPComponent::resize_warrays().
|
private |
Non-Local part of the pseudo-potential.
Definition at line 60 of file SOECPComponent.h.
Referenced by SOECPComponent::add(), SOECPComponent::buildTotalQuadrature(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), qmcplusplus::getSplinedSOPot(), SOECPComponent::makeClone(), SOECPComponent::resize_warrays(), and SOECPComponent::~SOECPComponent().
|
private |
Definition at line 75 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateValueAndDerivatives(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 54 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateOne(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::initVirtualParticle(), SOECPComponent::makeClone(), SOECPComponent::mw_evaluateOne(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 81 of file SOECPComponent.h.
Referenced by SOECPComponent::deleteVirtualParticle(), SOECPComponent::evaluateOne(), SOECPComponent::evaluateOneExactSpinIntegration(), SOECPComponent::evaluateValueAndDerivatives(), SOECPComponent::getVP(), SOECPComponent::initVirtualParticle(), SOECPComponent::makeClone(), SOECPComponent::mw_evaluateOne(), and SOECPComponent::~SOECPComponent().
|
private |
Definition at line 72 of file SOECPComponent.h.
Referenced by SOECPComponent::buildTotalQuadrature(), SOECPComponent::calculateProjector(), SOECPComponent::evaluateOneExactSpinIntegration(), and SOECPComponent::resize_warrays().
|
private |
Definition at line 77 of file SOECPComponent.h.
Referenced by SOECPComponent::evaluateValueAndDerivatives().