![]() |
QMCPACK
|
Class to handle FS corrections. More...
Public Types | |
using | LRHandlerType = LRCoulombSingleton::LRHandlerType |
using | GridType = LRCoulombSingleton::GridType |
using | RadFunctorType = LRCoulombSingleton::RadFunctorType |
using | mRealType = LRHandlerType::mRealType |
using | Grid_t = SkParserBase::Grid_t |
using | RealType = QMCTraits::RealType |
using | FullPrecRealType = QMCTraits::FullPrecRealType |
using | PosType = QMCTraits::PosType |
Public Member Functions | |
QMCFiniteSize () | |
QMCFiniteSize (SkParserBase *skparser_i) | |
~QMCFiniteSize () | |
void | setSkParser (SkParserBase *skparser_i) |
bool | validateXML () override |
validate the input file More... | |
bool | execute () override |
execute the main function More... | |
void | build_spherical_grid (IndexType mtheta, IndexType mphi) |
void | getSkInfo (UBspline_3d_d *spline, std::vector< RealType > &symmatelem) |
UBspline_3d_d * | getSkSpline (std::vector< RealType > sk, RealType limit=1.0) |
RealType | sphericalAvgSk (UBspline_3d_d *spline, RealType k) |
RealType | integrate_spline (UBspline_1d_d *spline, RealType a, RealType b, IndexType N) |
UBspline_1d_d * | spline_clamped (std::vector< RealType > &grid, std::vector< RealType > &vals, RealType lVal, RealType rVal) |
void | initialize () |
void | calcPotentialCorrection () |
void | calcLeadingOrderCorrections () |
void | summary () |
RealType | calcPotentialDiscrete (std::vector< RealType > sk) |
RealType | calcPotentialInt (std::vector< RealType > sk) |
![]() | |
QMCAppBase () | |
constructor More... | |
virtual | ~QMCAppBase () |
destructor More... | |
bool | parse (const std::string &infile) |
parse an input file More... | |
void | saveXml () |
save the xml document More... | |
const std::string & | getTitle () const |
Private Member Functions | |
bool | processPWH (xmlNodePtr cur) |
void | wfnPut (xmlNodePtr cur) |
void | initBreakup () |
void | printSkRawSphAvg (const std::vector< RealType > &sk) |
void | printSkSplineSphAvg (UBspline_3d_d *spline) |
Private Attributes | |
SkParserBase * | skparser |
ParticleSetPool | ptclPool |
RealType | myRcut |
RealType | myConst |
ParticleSet * | P |
RealType | h |
std::vector< PosType > | sphericalgrid |
std::unique_ptr< LRHandlerType > | AA |
std::unique_ptr< RadFunctorType > | rVs |
Grid_t | gridx |
Grid_t | gridy |
Grid_t | gridz |
KContainer | Klist |
std::vector< TinyVector< int, OHMMS_DIM > > | kpts |
std::vector< RealType > | SK_raw |
std::vector< RealType > | SKerr_raw |
std::vector< RealType > | SK |
std::vector< RealType > | SKerr |
IndexType | mtheta |
IndexType | mphi |
IndexType | NumSamples |
RealType | Ne |
RealType | Vol |
RealType | rs |
RealType | rho |
RealType | tlo |
RealType | tloerr |
RealType | vlo |
RealType | vloerr |
RealType | Vfs |
RealType | Vfserr |
Additional Inherited Members | |
![]() | |
bool | pushDocument (const std::string &infile) |
open a new document More... | |
void | popDocument () |
close the current document More... | |
![]() | |
std::stack< Libxml2Document * > | xml_doc_stack_ |
stack of xml document More... | |
ProjectData | my_project_ |
project description More... | |
RandomNumberControl | my_random_control_ |
random number controller More... | |
![]() | |
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 to handle FS corrections.
Implements finite size corrections from Holzmann et al., PRB (2016) Currently implements Eqn. (30), using a long-rang break up of the Coulomb interaction and a spline representation of S(k). S(k) is obtained from SkParserBase
Definition at line 19 of file QMCFiniteSize.h.
Definition at line 28 of file QMCFiniteSize.h.
using Grid_t = SkParserBase::Grid_t |
Definition at line 26 of file QMCFiniteSize.h.
using GridType = LRCoulombSingleton::GridType |
Definition at line 23 of file QMCFiniteSize.h.
Definition at line 22 of file QMCFiniteSize.h.
using mRealType = LRHandlerType::mRealType |
Definition at line 25 of file QMCFiniteSize.h.
using PosType = QMCTraits::PosType |
Definition at line 29 of file QMCFiniteSize.h.
Definition at line 24 of file QMCFiniteSize.h.
using RealType = QMCTraits::RealType |
Definition at line 27 of file QMCFiniteSize.h.
QMCFiniteSize | ( | ) |
Definition at line 13 of file QMCFiniteSize.cpp.
References qmcplusplus::app_log(), QMCFiniteSize::build_spherical_grid(), QMCFiniteSize::h, QMCFiniteSize::mphi, and QMCFiniteSize::mtheta.
QMCFiniteSize | ( | SkParserBase * | skparser_i | ) |
Definition at line 23 of file QMCFiniteSize.cpp.
References QMCFiniteSize::build_spherical_grid(), QMCFiniteSize::h, QMCFiniteSize::mphi, QMCFiniteSize::mtheta, and QMCFiniteSize::NumSamples.
|
inline |
Definition at line 32 of file QMCFiniteSize.h.
Definition at line 33 of file QMCFiniteSize.cpp.
References qmcplusplus::cos(), qmcplusplus::Units::distance::m, QMCFiniteSize::mphi, QMCFiniteSize::mtheta, qmcplusplus::n, qmcplusplus::sin(), QMCFiniteSize::sphericalgrid, and qmcplusplus::sqrt().
Referenced by QMCFiniteSize::QMCFiniteSize().
void calcLeadingOrderCorrections | ( | ) |
Definition at line 541 of file QMCFiniteSize.cpp.
References QMCFiniteSize::getSkInfo(), QMCFiniteSize::getSkSpline(), qmcplusplus::getStats(), QMCFiniteSize::Ne, QMCFiniteSize::NumSamples, QMCFiniteSize::rho, QMCFiniteSize::SK, QMCFiniteSize::SKerr, QMCFiniteSize::tlo, QMCFiniteSize::tloerr, QMCFiniteSize::vlo, and QMCFiniteSize::vloerr.
Referenced by QMCFiniteSize::execute().
void calcPotentialCorrection | ( | ) |
Definition at line 501 of file QMCFiniteSize.cpp.
References QMCFiniteSize::calcPotentialDiscrete(), QMCFiniteSize::calcPotentialInt(), qmcplusplus::getStats(), QMCFiniteSize::NumSamples, QMCFiniteSize::SK, QMCFiniteSize::SK_raw, QMCFiniteSize::SKerr, QMCFiniteSize::SKerr_raw, qmcplusplus::sqrt(), QMCFiniteSize::Vfs, and QMCFiniteSize::Vfserr.
Referenced by QMCFiniteSize::execute().
QMCFiniteSize::RealType calcPotentialDiscrete | ( | std::vector< RealType > | sk | ) |
Definition at line 460 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, QMCFiniteSize::Klist, and KContainer::kshell.
Referenced by QMCFiniteSize::calcPotentialCorrection().
QMCFiniteSize::RealType calcPotentialInt | ( | std::vector< RealType > | sk | ) |
Definition at line 466 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, QMCFiniteSize::getSkSpline(), QMCFiniteSize::integrate_spline(), QMCFiniteSize::Klist, KContainer::kshell, QMCFiniteSize::sphericalAvgSk(), QMCFiniteSize::spline_clamped(), and QMCFiniteSize::Vol.
Referenced by QMCFiniteSize::calcPotentialCorrection().
|
overridevirtual |
execute the main function
Implements QMCAppBase.
Definition at line 602 of file QMCFiniteSize.cpp.
References QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::calcPotentialCorrection(), SkParserBase::get_sk(), SkParserBase::get_sk_raw(), SkParserBase::get_skerr_raw(), QMCFiniteSize::getSkSpline(), QMCFiniteSize::initialize(), SkParserBase::is_normalized(), QMCFiniteSize::Ne, QMCFiniteSize::printSkRawSphAvg(), QMCFiniteSize::printSkSplineSphAvg(), QMCFiniteSize::SK, QMCFiniteSize::SK_raw, QMCFiniteSize::SKerr, QMCFiniteSize::SKerr_raw, QMCFiniteSize::skparser, and QMCFiniteSize::summary().
void getSkInfo | ( | UBspline_3d_d * | spline, |
std::vector< RealType > & | symmatelem | ||
) |
Definition at line 216 of file QMCFiniteSize.cpp.
References ParticleSet::getLattice(), QMCFiniteSize::h, and QMCFiniteSize::P.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), and QMCFiniteSize::printSkSplineSphAvg().
Definition at line 159 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, LinearGrid< T, CT >::einspline_grid(), ParticleSet::getLattice(), QMCFiniteSize::gridx, QMCFiniteSize::gridy, QMCFiniteSize::gridz, OneDimGridBase< T, CT >::lower_bound, QMCFiniteSize::P, and OneDimGridBase< T, CT >::upper_bound.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::calcPotentialInt(), and QMCFiniteSize::execute().
|
private |
Definition at line 142 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, qmcplusplus::app_log(), LRCoulombSingleton::createSpline4RbyVs(), LRCoulombSingleton::getHandler(), ParticleSet::getLattice(), ParticleSetPool::getParticleSet(), QMCFiniteSize::myRcut, QMCFiniteSize::P, QMCFiniteSize::ptclPool, and QMCFiniteSize::rVs.
Referenced by QMCFiniteSize::initialize().
void initialize | ( | ) |
Definition at line 356 of file QMCFiniteSize.cpp.
References SkParserBase::get_grid(), ParticleSet::getLattice(), ParticleSet::getSimulationCell(), ParticleSet::getTotalNum(), QMCFiniteSize::gridx, QMCFiniteSize::gridy, QMCFiniteSize::gridz, SkParserBase::has_grid(), QMCFiniteSize::initBreakup(), QMCFiniteSize::Klist, KContainer::kpts, QMCFiniteSize::kpts, QMCFiniteSize::Ne, QMCFiniteSize::P, qmcplusplus::pow(), QMCFiniteSize::rho, QMCFiniteSize::rs, SkParserBase::set_grid(), QMCFiniteSize::skparser, and QMCFiniteSize::Vol.
Referenced by QMCFiniteSize::execute().
QMCFiniteSize::RealType integrate_spline | ( | UBspline_1d_d * | spline, |
RealType | a, | ||
RealType | b, | ||
IndexType | N | ||
) |
Definition at line 326 of file QMCFiniteSize.cpp.
References qmcplusplus::Units::force::N.
Referenced by QMCFiniteSize::calcPotentialInt().
|
private |
Definition at line 376 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, qmcplusplus::app_log(), QMCFiniteSize::Klist, KContainer::kshell, KContainer::ksq, qmcplusplus::n, and qmcplusplus::sqrt().
Referenced by QMCFiniteSize::execute().
|
private |
Definition at line 420 of file QMCFiniteSize.cpp.
References QMCFiniteSize::AA, qmcplusplus::app_log(), QMCFiniteSize::getSkInfo(), and QMCFiniteSize::sphericalAvgSk().
Referenced by QMCFiniteSize::execute().
|
private |
Definition at line 118 of file QMCFiniteSize.cpp.
References QMCFiniteSize::ptclPool, ParticleSetPool::put(), ParticleSetPool::readSimulationCellXML(), and QMCFiniteSize::wfnPut().
Referenced by QMCFiniteSize::validateXML().
|
inline |
QMCFiniteSize::RealType sphericalAvgSk | ( | UBspline_3d_d * | spline, |
RealType | k | ||
) |
Definition at line 269 of file QMCFiniteSize.cpp.
References ParticleSet::getLattice(), QMCFiniteSize::gridx, QMCFiniteSize::gridy, QMCFiniteSize::gridz, OneDimGridBase< T, CT >::lower_bound, QMCFiniteSize::P, QMCFiniteSize::sphericalgrid, and OneDimGridBase< T, CT >::upper_bound.
Referenced by QMCFiniteSize::calcPotentialInt(), and QMCFiniteSize::printSkSplineSphAvg().
UBspline_1d_d * spline_clamped | ( | std::vector< RealType > & | grid, |
std::vector< RealType > & | vals, | ||
RealType | lVal, | ||
RealType | rVal | ||
) |
Definition at line 299 of file QMCFiniteSize.cpp.
References LinearGrid< T, CT >::set().
Referenced by QMCFiniteSize::calcPotentialInt().
void summary | ( | ) |
Definition at line 571 of file QMCFiniteSize.cpp.
References qmcplusplus::app_log(), QMCFiniteSize::Ne, QMCFiniteSize::rho, QMCFiniteSize::rs, QMCFiniteSize::tlo, QMCFiniteSize::tloerr, QMCFiniteSize::Vfs, QMCFiniteSize::Vfserr, QMCFiniteSize::vlo, QMCFiniteSize::vloerr, and QMCFiniteSize::Vol.
Referenced by QMCFiniteSize::execute().
|
overridevirtual |
validate the input file
Implements QMCAppBase.
Definition at line 59 of file QMCFiniteSize.cpp.
References qmcplusplus::app_log(), ParticleSetPool::get(), QMCAppBase::popDocument(), QMCFiniteSize::processPWH(), QMCFiniteSize::ptclPool, QMCAppBase::pushDocument(), ParticleSetPool::put(), QMCFiniteSize::wfnPut(), and QMCAppBase::xml_doc_stack_.
|
private |
Definition at line 102 of file QMCFiniteSize.cpp.
References OhmmsAttributeSet::add(), ParticleSetPool::getParticleSet(), QMCFiniteSize::ptclPool, and OhmmsAttributeSet::put().
Referenced by QMCFiniteSize::processPWH(), and QMCFiniteSize::validateXML().
|
private |
Definition at line 62 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialDiscrete(), QMCFiniteSize::calcPotentialInt(), QMCFiniteSize::getSkSpline(), QMCFiniteSize::initBreakup(), QMCFiniteSize::printSkRawSphAvg(), and QMCFiniteSize::printSkSplineSphAvg().
|
private |
Definition at line 67 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::getSkSpline(), QMCFiniteSize::initialize(), and QMCFiniteSize::sphericalAvgSk().
|
private |
Definition at line 68 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::getSkSpline(), QMCFiniteSize::initialize(), and QMCFiniteSize::sphericalAvgSk().
|
private |
Definition at line 69 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::getSkSpline(), QMCFiniteSize::initialize(), and QMCFiniteSize::sphericalAvgSk().
|
private |
Definition at line 60 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::getSkInfo(), and QMCFiniteSize::QMCFiniteSize().
|
private |
Definition at line 72 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialDiscrete(), QMCFiniteSize::calcPotentialInt(), QMCFiniteSize::initialize(), and QMCFiniteSize::printSkRawSphAvg().
|
private |
Definition at line 73 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::initialize().
|
private |
Definition at line 79 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::build_spherical_grid(), and QMCFiniteSize::QMCFiniteSize().
|
private |
Definition at line 78 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::build_spherical_grid(), and QMCFiniteSize::QMCFiniteSize().
|
private |
Definition at line 58 of file QMCFiniteSize.h.
|
private |
Definition at line 57 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::initBreakup().
|
private |
Definition at line 81 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::execute(), QMCFiniteSize::initialize(), and QMCFiniteSize::summary().
|
private |
Definition at line 80 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::QMCFiniteSize().
|
private |
Definition at line 59 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::getSkInfo(), QMCFiniteSize::getSkSpline(), QMCFiniteSize::initBreakup(), QMCFiniteSize::initialize(), and QMCFiniteSize::sphericalAvgSk().
|
private |
Definition at line 56 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::initBreakup(), QMCFiniteSize::processPWH(), QMCFiniteSize::validateXML(), and QMCFiniteSize::wfnPut().
|
private |
Definition at line 81 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::initialize(), and QMCFiniteSize::summary().
|
private |
Definition at line 81 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::initialize(), and QMCFiniteSize::summary().
|
private |
Definition at line 63 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::initBreakup().
|
private |
Definition at line 76 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::execute().
|
private |
Definition at line 74 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::execute().
|
private |
Definition at line 77 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::execute().
|
private |
Definition at line 75 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::execute().
|
private |
Definition at line 55 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::execute(), QMCFiniteSize::initialize(), and QMCFiniteSize::setSkParser().
|
private |
Definition at line 61 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::build_spherical_grid(), and QMCFiniteSize::sphericalAvgSk().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), and QMCFiniteSize::summary().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), and QMCFiniteSize::summary().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::summary().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialCorrection(), and QMCFiniteSize::summary().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), and QMCFiniteSize::summary().
|
private |
Definition at line 82 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcLeadingOrderCorrections(), and QMCFiniteSize::summary().
|
private |
Definition at line 81 of file QMCFiniteSize.h.
Referenced by QMCFiniteSize::calcPotentialInt(), QMCFiniteSize::initialize(), and QMCFiniteSize::summary().