![]() |
QMCPACK
|
Classes | |
struct | MultiDiracDetMultiWalkerResource |
Public Member Functions | |
MultiDiracDeterminant (std::unique_ptr< SPOSet > &&spos, bool spinor, int first, int nel) | |
constructor More... | |
~MultiDiracDeterminant () override | |
default destructor More... | |
MultiDiracDeterminant (const MultiDiracDeterminant &s) | |
copy constructor More... | |
MultiDiracDeterminant & | operator= (const MultiDiracDeterminant &s)=delete |
std::unique_ptr< SPOSet > | clonePhi () const |
return a clone of Phi More... | |
SPOSetPtr | getPhi () |
std::string | getClassName () const override |
return class name More... | |
bool | isFermionic () const final |
true, if this component is fermionic More... | |
bool | isOptimizable () const final |
if true, this contains optimizable components More... | |
void | extractOptimizableObjectRefs (UniqueOptObjRefs &opt_obj_refs) final |
extract underlying OptimizableObject references More... | |
void | checkOutVariables (const opt_variables_type &active) override |
check out variational optimizable variables More... | |
void | buildOptVariables (std::vector< size_t > &C2node) |
create optimizable orbital rotation parameters More... | |
int | build_occ_vec (const OffloadVector< int > &data, const size_t nel, const size_t nmo, std::vector< int > &occ_vec) |
helper function to buildOptVariables More... | |
void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi) override |
void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi, const MultiDiracDeterminant &pseudo_dn, const ValueType &psiCurrent, const std::vector< ValueType > &Coeff, const std::vector< size_t > &C2node_up, const std::vector< size_t > &C2node_dn) |
void | evaluateDerivativesWF (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, const MultiDiracDeterminant &pseudo_dn, const PsiValue &psiCurrent, const std::vector< ValueType > &Coeff, const std::vector< size_t > &C2node_up, const std::vector< size_t > &C2node_dn) |
void | registerData (ParticleSet &P, WFBufferType &buf) override |
For particle-by-particle move. More... | |
LogValue | updateBuffer (ParticleSet &P, WFBufferType &buf, bool fromscratch=false) override |
For particle-by-particle move. More... | |
void | copyFromBuffer (ParticleSet &P, WFBufferType &buf) override |
For particle-by-particle move. More... | |
void | acceptMove (ParticleSet &P, int iat, bool safe_to_delay=false) override |
move was accepted, update the real container More... | |
void | restore (int iat) override |
move was rejected. More... | |
void | createResource (ResourceCollection &collection) const override |
initialize a shared resource and hand it to a collection More... | |
void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< MultiDiracDeterminant > &wfc_list) const |
void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< MultiDiracDeterminant > &wfc_list) const |
std::unique_ptr< WaveFunctionComponent > | makeClone (ParticleSet &tqp) const override |
make clone More... | |
PsiValue | ratio (ParticleSet &P, int iat) override |
evaluate the ratio of the new to old WaveFunctionComponent value More... | |
GradType | evalGrad (ParticleSet &P, int iat) override |
return the current gradient for the iat-th particle More... | |
PsiValue | ratioGrad (ParticleSet &P, int iat, GradType &grad_iat) override |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient More... | |
LogValue | evaluateLog (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L) override |
evaluate the value of the WaveFunctionComponent from scratch More... | |
ValueType | evaluate (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L) |
void | createDetData (const int ref_det_id, const std::vector< ci_configuration2 > &configlist_unsorted, const std::vector< size_t > &C2nodes_unsorted, std::vector< size_t > &C2nodes_sorted) |
create necessary structures related to unique determinants sort configlist_unsorted by excitation level abd store the results in ciConfigList (class member) ciConfigList shouldn't change during a simulation after it is sorted here More... | |
void | evaluateDetsForPtclMove (const ParticleSet &P, int iat, int refPtcl=-1) |
evaluate the value of all the unique determinants with one electron moved. More... | |
void | evaluateDetsAndGradsForPtclMove (const ParticleSet &P, int iat) |
evaluate the value and gradients of all the unique determinants with one electron moved. Used by the table method More... | |
void | evaluateDetsAndGradsForPtclMoveWithSpin (const ParticleSet &P, int iat) |
evaluate the value and gradients of all the unique determinants with one electron moved. Used by the table method. Includes Spin Gradient data More... | |
void | evaluateGrads (ParticleSet &P, int iat) |
evaluate the gradients of all the unique determinants with one electron moved. Used by the table method More... | |
void | evaluateGradsWithSpin (ParticleSet &P, int iat) |
evaluate the gradients of all the unique determinants with one electron moved. Used by the table method. Includes Spin Gradient data More... | |
void | evaluateForWalkerMove (const ParticleSet &P, bool fromScratch=true) |
void | evaluateForWalkerMoveWithSpin (const ParticleSet &P, bool fromScratch=true) |
int | getNumDets () const |
int | getNumPtcls () const |
int | getFirstIndex () const |
const OffloadVector< ValueType > & | getRatiosToRefDet () const |
const OffloadVector< ValueType > & | getNewRatiosToRefDet () const |
const Matrix< GradType > & | getGrads () const |
const Matrix< GradType > & | getNewGrads () const |
const Matrix< ValueType > & | getLapls () const |
const Matrix< ValueType > & | getNewLapls () const |
const Matrix< ValueType > & | getSpinGrads () const |
const Matrix< ValueType > & | getNewSpinGrads () const |
PsiValue | getRefDetRatio () const |
LogValue | getLogValueRefDet () const |
![]() | |
const LogValue & | get_log_value () const |
WaveFunctionComponent (const std::string &obj_name="") | |
default constructor More... | |
virtual | ~WaveFunctionComponent () |
default destructor More... | |
virtual void | checkSanity () const |
Validate the internal consistency of the object. More... | |
const std::string & | getName () const |
return object name More... | |
PsiValue | getValue () const |
assembles the full value More... | |
virtual bool | isMultiDet () const |
true, if this component is multi-determinant More... | |
virtual void | registerTWFFastDerivWrapper (const ParticleSet &P, TWFFastDerivWrapper &twf) const |
Register the component with the TWFFastDerivWrapper wrapper. More... | |
virtual void | mw_evaluateLog (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list) const |
evaluate from scratch the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | recompute (const ParticleSet &P) |
recompute the value of the WaveFunctionComponents which require critical accuracy. More... | |
virtual void | mw_recompute (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const std::vector< bool > &recompute) const |
virtual void | evaluateHessian (ParticleSet &P, HessVector &grad_grad_psi_all) |
virtual void | prepareGroup (ParticleSet &P, int ig) |
Prepare internal data for updating WFC correspond to a particle group It should be called before moving particles of a given group. More... | |
virtual void | mw_prepareGroup (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int ig) const |
virtual GradType | evalGradWithSpin (ParticleSet &P, int iat, ComplexType &spingrad) |
return the current spin gradient for the iat-th particle Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin. More... | |
template<CoordsType CT> | |
void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const int iat, TWFGrads< CT > &grads_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
virtual void | mw_evalGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< GradType > &grad_now) const |
compute the current gradients for the iat-th particle of multiple walkers More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat) |
return the logarithmic gradient for the iat-th particle of the source particleset More... | |
virtual GradType | evalGradSource (ParticleSet &P, ParticleSet &source, int iat, TinyVector< ParticleSet::ParticleGradient, OHMMS_DIM > &grad_grad, TinyVector< ParticleSet::ParticleLaplacian, OHMMS_DIM > &lapl_grad) |
Adds the gradient w.r.t. More... | |
virtual PsiValue | ratioGradWithSpin (ParticleSet &P, int iat, GradType &grad_iat, ComplexType &spingrad_iat) |
evaluate the ratio of the new to old WaveFunctionComponent value and the new spin gradient Default implementation assumes that WaveFunctionComponent does not explicitly depend on Spin. More... | |
template<CoordsType CT> | |
void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, TWFGrads< CT > &grad_new) const |
virtual void | mw_ratioGrad (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, std::vector< GradType > &grad_new) const |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient of multiple walkers More... | |
virtual void | mw_accept_rejectMove (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, const std::vector< bool > &isAccepted, bool safe_to_delay=false) const |
moves of the iat-th particle on some walkers in a batch is accepted. More... | |
virtual void | completeUpdates () |
complete all the delayed or asynchronous operations before leaving the p-by-p move region. More... | |
virtual void | mw_completeUpdates (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
complete all the delayed or asynchronous operations for all the walkers in a batch before leaving the p-by-p move region. More... | |
virtual void | mw_calcRatio (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios) const |
compute the ratio of the new to old WaveFunctionComponent value of multiple walkers More... | |
virtual LogValue | evaluateGL (const ParticleSet &P, ParticleSet::ParticleGradient &G, ParticleSet::ParticleLaplacian &L, bool fromscratch) |
compute gradients and laplacian of the TWF with respect to each particle. More... | |
virtual void | mw_evaluateGL (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, const RefVector< ParticleSet::ParticleGradient > &G_list, const RefVector< ParticleSet::ParticleLaplacian > &L_list, bool fromscratch) const |
evaluate gradients and laplacian of the same type WaveFunctionComponent of multiple walkers More... | |
virtual void | acquireResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
acquire a shared resource from a collection More... | |
virtual void | releaseResource (ResourceCollection &collection, const RefVectorWithLeader< WaveFunctionComponent > &wfc_list) const |
return a shared resource to a collection More... | |
virtual RealType | KECorrection () |
Return the Chiesa kinetic energy correction. More... | |
virtual void | evaluateDerivatives (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)=0 |
Compute the derivatives of both the log of the wavefunction and kinetic energy with respect to optimizable parameters. More... | |
virtual void | evaluateDerivativesWF (ParticleSet &P, const opt_variables_type &optvars, Vector< ValueType > &dlogpsi) |
Compute the derivatives of the log of the wavefunction with respect to optimizable parameters. More... | |
virtual void | evaluateGradDerivatives (const ParticleSet::ParticleGradient &G_in, std::vector< ValueType > &dgradlogpsi) |
Calculates the derivatives of ![]() | |
virtual void | finalizeOptimization () |
virtual void | evaluateRatiosAlltoOne (ParticleSet &P, std::vector< ValueType > &ratios) |
evaluate the ratios of one virtual move with respect to all the particles More... | |
virtual void | evaluateRatios (const VirtualParticleSet &VP, std::vector< ValueType > &ratios) |
evaluate ratios to evaluate the non-local PP More... | |
virtual void | evaluateSpinorRatios (const VirtualParticleSet &VP, const std::pair< ValueVector, ValueVector > &spinor_multiplier, std::vector< ValueType > &ratios) |
Used by SOECPComponent for faster SOC evaluation. More... | |
virtual void | mw_evaluateRatios (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< const VirtualParticleSet > &vp_list, std::vector< std::vector< ValueType >> &ratios) const |
evaluate ratios to evaluate the non-local PP multiple walkers More... | |
virtual void | evaluateDerivRatios (const VirtualParticleSet &VP, const opt_variables_type &optvars, std::vector< ValueType > &ratios, Matrix< ValueType > &dratios) |
evaluate ratios to evaluate the non-local PP More... | |
virtual void | mw_evalGradWithSpin (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< GradType > &grad_now, std::vector< ComplexType > &spingrad_now) const |
compute the current gradients and spin gradients for the iat-th particle of multiple walkers More... | |
virtual void | mw_ratioGradWithSpin (const RefVectorWithLeader< WaveFunctionComponent > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, std::vector< PsiValue > &ratios, std::vector< GradType > &grad_new, std::vector< ComplexType > &spingrad_new) const |
compute the ratio of the new to old WaveFunctionComponent value and the new gradient/spingradient of multiple walkers More... | |
Static Public Member Functions | |
static void | mw_accept_rejectMove (const RefVectorWithLeader< MultiDiracDeterminant > &wfc_list, const RefVectorWithLeader< ParticleSet > &p_list, int iat, const std::vector< bool > &isAccepted) |
static void | mw_evaluateDetsForPtclMove (const RefVectorWithLeader< MultiDiracDeterminant > &det_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat) |
multi walker version of evaluateDetsForPtclMove More... | |
static void | mw_evaluateDetsAndGradsForPtclMove (const RefVectorWithLeader< MultiDiracDeterminant > &det_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, UnpinnedOffloadMatrix< ValueType > &mw_grads) |
multi walker version of mw_evaluateDetsAndGradsForPtclMove More... | |
static void | mw_evaluateGrads (const RefVectorWithLeader< MultiDiracDeterminant > &det_list, const RefVectorWithLeader< ParticleSet > &P_list, int iat, UnpinnedOffloadMatrix< ValueType > &mw_grads) |
multi walker version of mw_evaluateGrads More... | |
Public Attributes | |
NewTimer & | inverse_timer |
NewTimer & | buildTable_timer |
NewTimer & | table2ratios_timer |
NewTimer & | evalWalker_timer |
NewTimer & | evalOrbValue_timer |
NewTimer & | evalOrbVGL_timer |
NewTimer & | updateInverse_timer |
NewTimer & | calculateRatios_timer |
NewTimer & | calculateGradRatios_timer |
NewTimer & | updateRatios_timer |
NewTimer & | evaluateDetsForPtclMove_timer |
NewTimer & | evaluateDetsAndGradsForPtclMove_timer |
NewTimer & | evaluateGrads_timer |
NewTimer & | offload_timer |
NewTimer & | transferH2D_timer |
NewTimer & | transferD2H_timer |
opt_variables_type | myVars |
std::vector< std::vector< int > > | lookup_tbl |
![]() | |
int | UpdateMode |
current update mode More... | |
opt_variables_type | myVars |
list of variables this WaveFunctionComponent handles More... | |
size_t | Bytes_in_WFBuffer |
Bytes in WFBuffer. More... | |
Private Member Functions | |
void | mw_InverseUpdateByColumn (MultiDiracDetMultiWalkerResource &mw_res, const int working_index, const OffloadVector< ValueType > &curRatio_list, const OffloadVector< ValueType *> &psiV_deviceptr_list, const OffloadVector< ValueType *> &psiMinv_deviceptr_list, const size_t psiMinv_rows) const |
void | mw_updateRatios_generic (const int ext_level, const size_t det_offset, const size_t data_offset, SmallMatrixDetCalculator< ValueType > &det_calculator, const OffloadVector< int > &data, const OffloadVector< RealType > &sign, const RefVector< OffloadMatrix< ValueType >> &table_matrix_list, const RefVector< OffloadVector< ValueType >> &ratios_list) const |
update ratios with respect to the reference deteriminant for a given excitation level More... | |
void | mw_updateRatios_det0 (const OffloadVector< ValueType > &det0_list, const OffloadVector< ValueType *> &ratios_deviceptr_list) const |
update ratios of the reference deteriminant More... | |
template<unsigned EXT_LEVEL> | |
void | mw_updateRatios (const size_t det_offset, const size_t data_offset, const OffloadVector< int > &data, const OffloadVector< RealType > &sign, const OffloadVector< ValueType *> &table_matrix_deviceptr_list, const size_t num_table_matrix_cols, const OffloadVector< ValueType *> &ratios_deviceptr_list) const |
update ratios with respect to the reference deteriminant for a given excitation level More... | |
void | mw_buildTableMatrix_calculateRatios_impl (MultiDiracDetMultiWalkerResource &mw_res, int ref, const OffloadVector< ValueType > &det0_list, const RefVector< OffloadMatrix< ValueType >> &psiinv_list, const RefVector< OffloadMatrix< ValueType >> &psi_list, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, const RefVector< OffloadMatrix< ValueType >> &table_matrix_list, const RefVector< OffloadVector< ValueType >> &ratios_list) |
Function to calculate the ratio of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al. More... | |
void | buildTableMatrix_calculateRatios_impl (int ref, ValueType det0, ValueType *restrict ratios, const OffloadMatrix< ValueType > &psiinv, const OffloadMatrix< ValueType > &psi, OffloadMatrix< ValueType > &table_matrix, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign) |
Function to calculate the ratio of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al. More... | |
void | buildTableMatrix_calculateRatios (int ref, const OffloadMatrix< ValueType > &psiinv, const OffloadMatrix< ValueType > &psi, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, OffloadMatrix< ValueType > &table_matrix, OffloadVector< ValueType > &ratios) |
compute the ratio of the excited determinants to the reference determinant More... | |
void | mw_buildTableMatrix_calculateRatios (MultiDiracDetMultiWalkerResource &mw_res, int ref, const OffloadVector< ValueType > &det0_list, const RefVector< OffloadMatrix< ValueType >> &psiinv_list, const RefVector< OffloadMatrix< ValueType >> &psi_list, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, const RefVector< OffloadMatrix< ValueType >> &table_matrix_list, const RefVector< OffloadVector< ValueType >> &ratios_list) |
void | buildTableMatrix_calculateGradRatios (int ref, const OffloadMatrix< ValueType > &psiinv, const OffloadMatrix< ValueType > &psi, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, const ValueType &det0_grad, OffloadMatrix< ValueType > &table_matrix, int dx, int iat, Matrix< GradType > &grads) |
Function to calculate the ratio of the gradients of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al. More... | |
void | mw_buildTableMatrix_calculateGradRatios (MultiDiracDetMultiWalkerResource &mw_res, int ref, int iat, int dx, int getNumDets, const OffloadVector< ValueType > &det0_grad_list, const RefVector< OffloadMatrix< ValueType >> &psiinv_list, const RefVector< OffloadMatrix< ValueType >> &psi_list, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, const RefVector< OffloadVector< ValueType >> &WorkSpace_list, const RefVector< OffloadMatrix< ValueType >> &table_matrix_list, UnpinnedOffloadMatrix< ValueType > &mw_grads) |
Function to calculate the ratio of the gradients of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al. More... | |
void | buildTableMatrix_calculateRatiosValueMatrixOneParticle (int ref, const OffloadMatrix< ValueType > &psiinv, const OffloadMatrix< ValueType > &psi, const OffloadVector< int > &data, const VectorSoaContainer< int, 2, OffloadPinnedAllocator< int >> &pairs, const OffloadVector< RealType > &sign, OffloadMatrix< ValueType > &table_matrix, int iat, Matrix< ValueType > &ratios) |
void | resize () |
reset the size: with the number of particles More... | |
Private Attributes | |
const std::unique_ptr< SPOSet > | Phi |
a set of single-particle orbitals used to fill in the values of the matrix More... | |
const int | NumOrbitals |
number of single-particle orbitals which belong to this Dirac determinant More... | |
const int | FirstIndex |
index of the first particle with respect to the particle set More... | |
const int | NumPtcls |
number of particles which belong to this Dirac determinant More... | |
const int | LastIndex |
index of the last particle with respect to the particle set More... | |
std::shared_ptr< std::vector< ci_configuration2 > > | ciConfigList |
use shared_ptr More... | |
std::shared_ptr< OffloadVector< size_t > > | refdet_occup |
reference determinant occupation More... | |
const bool | is_spinor_ |
OffloadMatrix< ValueType > | psiM |
psiM(i,j) ![]() ![]() | |
OffloadMatrix< ValueType > | TpsiM |
OffloadMatrix< ValueType > | psiMinv |
inverse Dirac determinant matrix of the reference det More... | |
OffloadMatrix< ValueType > | psiMinv_temp |
OffloadMatrix< GradType > | dpsiM |
dpsiM(i,j) ![]() | |
OffloadMatrix< ValueType > | dpsiMinv |
OffloadMatrix< ValueType > | d2psiM |
d2psiM(i,j) ![]() | |
ValueMatrix | dspin_psiM |
OffloadVector< ValueType > | psiV |
value of single-particle orbital for particle-by-particle update More... | |
OffloadVector< ValueType > | psiV_temp |
OffloadVector< GradType > | dpsiV |
OffloadVector< ValueType > | d2psiV |
OffloadVector< ValueType > | workV1 |
OffloadVector< ValueType > | workV2 |
ValueVector | dspin_psiV |
OffloadMatrix< ValueType > | table_matrix |
OffloadVector< ValueType > | WorkSpace |
Vector< IndexType > | Pivot |
ValueType * | FirstAddressOfGrads |
ValueType * | LastAddressOfGrads |
ValueType * | FirstAddressOfdpsiM |
ValueType * | LastAddressOfdpsiM |
OffloadVector< ValueType > | ratios_to_ref_ |
determinant ratios with respect to the reference determinant More... | |
OffloadVector< ValueType > | new_ratios_to_ref_ |
new determinant ratios with respect to the updated reference determinant upon a proposed move More... | |
ValueType | curRatio |
new value of the reference determinant over the old value upon a proposed move More... | |
LogValue | log_value_ref_det_ |
log value of the reference determinant More... | |
Matrix< GradType > | grads |
store determinant grads (old and new) More... | |
Matrix< GradType > | new_grads |
Matrix< ValueType > | lapls |
store determinant lapls (old and new) More... | |
Matrix< ValueType > | new_lapls |
Matrix< ValueType > | spingrads |
Matrix< ValueType > | new_spingrads |
std::shared_ptr< OffloadVector< int > > | detData |
std::shared_ptr< VectorSoaContainer< int, 2, OffloadPinnedAllocator< int > > > | uniquePairs |
std::shared_ptr< OffloadVector< RealType > > | DetSigns |
std::shared_ptr< std::vector< int > > | ndets_per_excitation_level_ |
number of unique determinants at each excitation level (relative to reference) {1, n_singles, n_doubles, n_triples, ...} More... | |
SmallMatrixDetCalculator< ValueType > | det_calculator_ |
ResourceHandle< MultiDiracDetMultiWalkerResource > | mw_res_handle_ |
Static Private Attributes | |
static constexpr int | ReferenceDeterminant = 0 |
all the unique determinants are sorted, the id of the reference det id is always 0 More... | |
static constexpr size_t | MaxSmallDet = 5 |
for matrices with leading dimensions <= MaxSmallDet, compute determinant with direct expansion. More... | |
Additional Inherited Members | |
![]() | |
const std::string | my_name_ |
Name of the object It is required to be different for objects of the same derived type like multiple J1. More... | |
LogValue | log_value_ |
Current ![]() | |
Definition at line 33 of file MultiDiracDeterminant.h.
using OffloadMatrix = Matrix<DT, OffloadPinnedAllocator<DT> > |
Definition at line 50 of file MultiDiracDeterminant.h.
using OffloadVector = Vector<DT, OffloadPinnedAllocator<DT> > |
Definition at line 46 of file MultiDiracDeterminant.h.
using UnpinnedOffloadMatrix = Matrix<DT, OffloadAllocator<DT> > |
Definition at line 52 of file MultiDiracDeterminant.h.
using UnpinnedOffloadVector = Vector<DT, OffloadAllocator<DT> > |
Definition at line 48 of file MultiDiracDeterminant.h.
using ValueMatrix = SPOSet::ValueMatrix |
Definition at line 55 of file MultiDiracDeterminant.h.
using ValueVector = SPOSet::ValueVector |
Definition at line 54 of file MultiDiracDeterminant.h.
MultiDiracDeterminant | ( | std::unique_ptr< SPOSet > && | spos, |
bool | spinor, | ||
int | first, | ||
int | nel | ||
) |
constructor
spos | the single-particle orbital set |
first | index of the first particle |
spos | the single-particle orbital set |
first | index of the first particle |
spinor | flag to determinane if spin arrays need to be resized and used |
Definition at line 589 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::ndets_per_excitation_level_, MultiDiracDeterminant::refdet_occup, and MultiDiracDeterminant::uniquePairs.
|
overridedefault |
default destructor
MultiDiracDeterminant | ( | const MultiDiracDeterminant & | s | ) |
copy constructor
s | existing DiracDeterminant |
This constructor makes a shallow copy of Phi. Other data members are allocated properly.
Definition at line 541 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::resize().
|
overridevirtual |
move was accepted, update the real container
Implements WaveFunctionComponent.
Definition at line 411 of file MultiDiracDeterminant.cpp.
References Matrix< T, Alloc >::begin(), qmcplusplus::convertValueToLog(), copy(), MultiDiracDeterminant::curRatio, MultiDiracDeterminant::d2psiM, MultiDiracDeterminant::d2psiV, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiV, MultiDiracDeterminant::dspin_psiM, MultiDiracDeterminant::dspin_psiV, Matrix< T, Alloc >::end(), MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::grads, MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::lapls, MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::log_value_ref_det_, MultiDiracDeterminant::new_grads, MultiDiracDeterminant::new_lapls, MultiDiracDeterminant::new_ratios_to_ref_, MultiDiracDeterminant::new_spingrads, MultiDiracDeterminant::NumOrbitals, WaveFunctionComponent::ORB_PBYP_PARTIAL, WaveFunctionComponent::ORB_PBYP_RATIO, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV, MultiDiracDeterminant::ratios_to_ref_, MultiDiracDeterminant::spingrads, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::transferH2D_timer, and WaveFunctionComponent::UpdateMode.
void acquireResource | ( | ResourceCollection & | collection, |
const RefVectorWithLeader< MultiDiracDeterminant > & | wfc_list | ||
) | const |
Definition at line 655 of file MultiDiracDeterminant.cpp.
References qmcplusplus::det(), MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::dpsiM_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::dpsiMinv_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::dpsiV_deviceptr_list, RefVectorWithLeader< T >::getCastedElement(), RefVectorWithLeader< T >::getCastedLeader(), ResourceCollection::lendResource(), MultiDiracDeterminant::mw_res_handle_, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiM_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiMinv_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiMinv_temp_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiV_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiV_temp_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::resizeConstants(), MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::TpsiM_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::workV1_deviceptr_list, and MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::workV2_deviceptr_list.
int build_occ_vec | ( | const OffloadVector< int > & | data, |
const size_t | nel, | ||
const size_t | nmo, | ||
std::vector< int > & | occ_vec | ||
) |
helper function to buildOptVariables
Definition at line 834 of file MultiDiracDeterminant.cpp.
References Vector< T, Alloc >::size().
Referenced by MultiDiracDeterminant::buildOptVariables().
void buildOptVariables | ( | std::vector< size_t > & | C2node | ) |
create optimizable orbital rotation parameters
Definition at line 771 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::build_occ_vec(), RotatedSPOs::buildOptVariables(), MultiDiracDeterminant::detData, MultiDiracDeterminant::isOptimizable(), MultiDiracDeterminant::lookup_tbl, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, and MultiDiracDeterminant::Phi.
|
private |
Function to calculate the ratio of the gradients of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al.
JCP 135(24), 244105
ref | ID of the reference determinant |
psiinv | |
psi | |
data | (Shared by all determinants) |
pairs | is the number of unique determinants (std::pair[Nb_unique_alpha][Nb_unique_beta]) (Shared by all determinants) |
sign | (Shared by all determinants) |
det0_grad | gradient value taking RatioGrad/curRatio |
table_matrix | stores all the dot products between 2 determinants (I,J) |
dx | dimension (OHMMS_DIM) |
iat | atom ID |
grads | returned computed gradients |
Definition at line 248 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), MultiDiracDeterminant::calculateGradRatios_timer, MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::grads, sign(), MultiDiracDeterminant::table_matrix, and MultiDiracDeterminant::WorkSpace.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), and MultiDiracDeterminant::evaluateGradsWithSpin().
|
private |
compute the ratio of the excited determinants to the reference determinant
ratios | the output. |
Definition at line 211 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), MultiDiracDeterminant::calculateRatios_timer, Vector< T, Alloc >::data(), sign(), and MultiDiracDeterminant::table_matrix.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), and MultiDiracDeterminant::evaluateForWalkerMoveWithSpin().
|
private |
Function to calculate the ratio of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al.
shared function used by buildTableMatrix_calculateRatios
JCP 135(24), 244105
ref | ID of the reference determinant |
det0 | take ValueType(1) for the value or RatioGrad/curRatio for the gradients |
ratios | returned computed ratios |
psiinv | |
psi | |
table_matrix | stores all the dot products between 2 determinants (I,J) |
data | (Shared by all determinants) |
pairs | is the number of unique determinants (std::pair[Nb_unique_alpha][Nb_unique_beta]) (Shared by all determinants) |
sign | (Shared by all determinants) |
Definition at line 29 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTable_timer, qmcplusplus::calcSmallDeterminant(), Vector< T, Alloc >::data(), MultiDiracDeterminant::det_calculator_, qmcplusplus::simd::dot(), SmallMatrixDetCalculator< T >::evaluate(), Matrix< T, Alloc >::extent(), I, qmcplusplus::Units::energy::J, MultiDiracDeterminant::MaxSmallDet, qmcplusplus::n, qmcplusplus::Units::second, sign(), MultiDiracDeterminant::table2ratios_timer, and MultiDiracDeterminant::table_matrix.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), and MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle().
|
private |
Definition at line 303 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), qmcplusplus::simd::dot(), MultiDiracDeterminant::getNumDets(), qmcplusplus::n, sign(), MultiDiracDeterminant::table_matrix, and MultiDiracDeterminant::WorkSpace.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), and MultiDiracDeterminant::evaluateGradsWithSpin().
|
inlineoverridevirtual |
check out variational optimizable variables
active | a super set of optimizable variables |
Reimplemented from WaveFunctionComponent.
Definition at line 157 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::Phi.
std::unique_ptr< SPOSet > clonePhi | ( | ) | const |
return a clone of Phi
Definition at line 576 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::Phi.
|
overridevirtual |
For particle-by-particle move.
Copy data or attach memory from a walker buffer to the objects of this class. The log value, P.G and P.L contribution from the objects of this class are also added.
P | particle set |
buf | Anonymous storage |
Implements WaveFunctionComponent.
Definition at line 384 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::d2psiM, MultiDiracDeterminant::dspin_psiM, Matrix< T, Alloc >::first_address(), MultiDiracDeterminant::FirstAddressOfdpsiM, MultiDiracDeterminant::FirstAddressOfGrads, PooledMemory< T_scalar, Alloc >::get(), MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::lapls, Matrix< T, Alloc >::last_address(), MultiDiracDeterminant::LastAddressOfdpsiM, MultiDiracDeterminant::LastAddressOfGrads, MultiDiracDeterminant::log_value_ref_det_, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::ratios_to_ref_, MultiDiracDeterminant::spingrads, and MultiDiracDeterminant::TpsiM.
void createDetData | ( | const int | ref_det_id, |
const std::vector< ci_configuration2 > & | configlist_unsorted, | ||
const std::vector< size_t > & | C2nodes_unsorted, | ||
std::vector< size_t > & | C2nodes_sorted | ||
) |
create necessary structures related to unique determinants sort configlist_unsorted by excitation level abd store the results in ciConfigList (class member) ciConfigList shouldn't change during a simulation after it is sorted here
ref_det_id | id of the reference determinant before sorting |
configlist_unsorted | config list to be loaded. |
C2nodes_unsorted | mapping from overall det index to unique det (configlist_unsorted) index |
C2nodes_sorted | mapping from overall det index to unique det (ciConfigList) index |
Definition at line 36 of file MultiDiracDeterminant.cpp.
References qmcplusplus::app_log(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::ndets_per_excitation_level_, MultiDiracDeterminant::NumPtcls, MultiDiracDeterminant::refdet_occup, MultiDiracDeterminant::resize(), qmcplusplus::Units::second, sign(), MultiDiracDeterminant::transferH2D_timer, and MultiDiracDeterminant::uniquePairs.
|
overridevirtual |
initialize a shared resource and hand it to a collection
Reimplemented from WaveFunctionComponent.
Definition at line 650 of file MultiDiracDeterminant.cpp.
References ResourceCollection::addResource().
|
inlineoverridevirtual |
return the current gradient for the iat-th particle
P | quantum particle set |
iat | particle index |
Reimplemented from WaveFunctionComponent.
Definition at line 231 of file MultiDiracDeterminant.h.
References APP_ABORT.
|
inline |
Definition at line 251 of file MultiDiracDeterminant.h.
References APP_ABORT.
|
inlineoverride |
Definition at line 168 of file MultiDiracDeterminant.h.
void evaluateDerivatives | ( | ParticleSet & | P, |
const opt_variables_type & | optvars, | ||
Vector< ValueType > & | dlogpsi, | ||
Vector< ValueType > & | dhpsioverpsi, | ||
const MultiDiracDeterminant & | pseudo_dn, | ||
const ValueType & | psiCurrent, | ||
const std::vector< ValueType > & | Coeff, | ||
const std::vector< size_t > & | C2node_up, | ||
const std::vector< size_t > & | C2node_dn | ||
) |
Definition at line 865 of file MultiDiracDeterminant.cpp.
References Matrix< T, Alloc >::cols(), MultiDiracDeterminant::d2psiM, Matrix< T, Alloc >::data(), Vector< T, Alloc >::data(), MultiDiracDeterminant::detData, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::getRatiosToRefDet(), MultiDiracDeterminant::grads, MultiDiracDeterminant::isOptimizable(), MultiDiracDeterminant::lapls, MultiDiracDeterminant::lookup_tbl, MultiDiracDeterminant::NumPtcls, MultiDiracDeterminant::Phi, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, Matrix< T, Alloc >::rows(), and Vector< T, Alloc >::size().
void evaluateDerivativesWF | ( | ParticleSet & | P, |
const opt_variables_type & | optvars, | ||
Vector< ValueType > & | dlogpsi, | ||
const MultiDiracDeterminant & | pseudo_dn, | ||
const PsiValue & | psiCurrent, | ||
const std::vector< ValueType > & | Coeff, | ||
const std::vector< size_t > & | C2node_up, | ||
const std::vector< size_t > & | C2node_dn | ||
) |
Definition at line 914 of file MultiDiracDeterminant.cpp.
References Matrix< T, Alloc >::cols(), Matrix< T, Alloc >::data(), Vector< T, Alloc >::data(), MultiDiracDeterminant::detData, MultiDiracDeterminant::getRatiosToRefDet(), MultiDiracDeterminant::isOptimizable(), MultiDiracDeterminant::lookup_tbl, MultiDiracDeterminant::Phi, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, Matrix< T, Alloc >::rows(), and Vector< T, Alloc >::size().
void evaluateDetsAndGradsForPtclMove | ( | const ParticleSet & | P, |
int | iat | ||
) |
evaluate the value and gradients of all the unique determinants with one electron moved. Used by the table method
Definition at line 530 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::curRatio, MultiDiracDeterminant::d2psiV, MultiDiracDeterminant::detData, qmcplusplus::DetRatioByColumn(), MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::dpsiV, MultiDiracDeterminant::evalOrbVGL_timer, MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove_timer, MultiDiracDeterminant::FirstIndex, qmcplusplus::inverse(), qmcplusplus::InverseUpdateByColumn(), MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::new_grads, MultiDiracDeterminant::new_ratios_to_ref_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, WaveFunctionComponent::ORB_PBYP_PARTIAL, MultiDiracDeterminant::Phi, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::updateInverse_timer, WaveFunctionComponent::UpdateMode, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
void evaluateDetsAndGradsForPtclMoveWithSpin | ( | const ParticleSet & | P, |
int | iat | ||
) |
evaluate the value and gradients of all the unique determinants with one electron moved. Used by the table method. Includes Spin Gradient data
Definition at line 587 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::curRatio, MultiDiracDeterminant::d2psiV, MultiDiracDeterminant::detData, qmcplusplus::DetRatioByColumn(), MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::dpsiV, MultiDiracDeterminant::dspin_psiV, MultiDiracDeterminant::evalOrbVGL_timer, MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove_timer, MultiDiracDeterminant::FirstIndex, qmcplusplus::inverse(), qmcplusplus::InverseUpdateByColumn(), MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::new_grads, MultiDiracDeterminant::new_ratios_to_ref_, MultiDiracDeterminant::new_spingrads, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, WaveFunctionComponent::ORB_PBYP_PARTIAL, MultiDiracDeterminant::Phi, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::updateInverse_timer, WaveFunctionComponent::UpdateMode, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
void evaluateDetsForPtclMove | ( | const ParticleSet & | P, |
int | iat, | ||
int | refPtcl = -1 |
||
) |
evaluate the value of all the unique determinants with one electron moved.
Used by the table method
P | particle set which provides the positions |
iat | the index of the moved electron |
refPtcl | if given, the id of the reference particle in virtual moves |
Definition at line 492 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::curRatio, MultiDiracDeterminant::detData, qmcplusplus::DetRatioByColumn(), MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::evalOrbValue_timer, MultiDiracDeterminant::evaluateDetsForPtclMove_timer, MultiDiracDeterminant::FirstIndex, qmcplusplus::inverse(), qmcplusplus::InverseUpdateByColumn(), MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::new_ratios_to_ref_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, WaveFunctionComponent::ORB_PBYP_RATIO, MultiDiracDeterminant::Phi, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::updateInverse_timer, WaveFunctionComponent::UpdateMode, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
void evaluateForWalkerMove | ( | const ParticleSet & | P, |
bool | fromScratch = true |
||
) |
Force host view as no implementation of evaluate_notranspose
Pinning ratios_to_ref_ to the device.
Definition at line 161 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::d2psiM, Vector< T, Alloc >::data(), MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::evalWalker_timer, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::grads, MultiDiracDeterminant::inverse_timer, qmcplusplus::InverseUpdateByColumn(), qmcplusplus::InvertWithLog(), MultiDiracDeterminant::lapls, MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::log_value_ref_det_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, MultiDiracDeterminant::Phi, MultiDiracDeterminant::Pivot, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ratios_to_ref_, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::transferH2D_timer, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::WorkSpace, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
Referenced by MultiDiracDeterminant::updateBuffer().
void evaluateForWalkerMoveWithSpin | ( | const ParticleSet & | P, |
bool | fromScratch = true |
||
) |
Force host view as no implementation of evaluate_notranspose
Stop inverse_timerScop
Definition at line 255 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::d2psiM, Vector< T, Alloc >::data(), MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::dspin_psiM, MultiDiracDeterminant::evalWalker_timer, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::grads, MultiDiracDeterminant::inverse_timer, qmcplusplus::InverseUpdateByColumn(), qmcplusplus::InvertWithLog(), MultiDiracDeterminant::lapls, MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::log_value_ref_det_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, MultiDiracDeterminant::Phi, MultiDiracDeterminant::Pivot, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ratios_to_ref_, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::spingrads, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::transferH2D_timer, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::WorkSpace, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
Referenced by MultiDiracDeterminant::updateBuffer().
void evaluateGrads | ( | ParticleSet & | P, |
int | iat | ||
) |
evaluate the gradients of all the unique determinants with one electron moved. Used by the table method
Definition at line 894 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::grads, qmcplusplus::InverseUpdateByColumn(), MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
void evaluateGradsWithSpin | ( | ParticleSet & | P, |
int | iat | ||
) |
evaluate the gradients of all the unique determinants with one electron moved. Used by the table method. Includes Spin Gradient data
Definition at line 923 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::ciConfigList, MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::dspin_psiM, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::grads, qmcplusplus::InverseUpdateByColumn(), MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::spingrads, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::uniquePairs, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
|
inlineoverridevirtual |
evaluate the value of the WaveFunctionComponent from scratch
[in] | P | active ParticleSet |
[out] | G | Gradients, ![]() |
[out] | L | Laplacians, ![]() |
Mainly for walker-by-walker move. The initial stage of particle-by-particle move also uses this. causes complete state update in WFC's
Implements WaveFunctionComponent.
Definition at line 243 of file MultiDiracDeterminant.h.
References APP_ABORT.
|
inlinefinalvirtual |
extract underlying OptimizableObject references
opt_obj_refs | aggregated list of optimizable object references |
Reimplemented from WaveFunctionComponent.
Definition at line 152 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::Phi.
|
inlineoverridevirtual |
return class name
Implements WaveFunctionComponent.
Definition at line 147 of file MultiDiracDeterminant.h.
|
inline |
Definition at line 316 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::FirstIndex.
Definition at line 320 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::grads.
Definition at line 322 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::lapls.
|
inline |
Definition at line 328 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::log_value_ref_det_.
Definition at line 321 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::new_grads.
Definition at line 323 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::new_lapls.
|
inline |
Definition at line 319 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::new_ratios_to_ref_.
Definition at line 325 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::new_spingrads.
|
inline |
Definition at line 314 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::ciConfigList.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::mw_buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateGrads(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::resize().
|
inline |
Definition at line 315 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::NumPtcls.
|
inline |
Definition at line 145 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::Phi.
Referenced by MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), and MultiDiracDeterminant::mw_evaluateDetsForPtclMove().
|
inline |
Definition at line 318 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::ratios_to_ref_.
Referenced by MultiDiracDeterminant::evaluateDerivatives(), and MultiDiracDeterminant::evaluateDerivativesWF().
|
inline |
Definition at line 327 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::curRatio.
Definition at line 324 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::spingrads.
|
inlinefinalvirtual |
true, if this component is fermionic
Reimplemented from WaveFunctionComponent.
Definition at line 149 of file MultiDiracDeterminant.h.
|
inlinefinalvirtual |
if true, this contains optimizable components
Reimplemented from WaveFunctionComponent.
Definition at line 150 of file MultiDiracDeterminant.h.
References MultiDiracDeterminant::Phi.
Referenced by MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::evaluateDerivatives(), and MultiDiracDeterminant::evaluateDerivativesWF().
|
overridevirtual |
make clone
tqp | target Quantum ParticleSet |
deepcopy | if true, make a decopy |
If not true, return a proxy class
Reimplemented from WaveFunctionComponent.
Definition at line 578 of file MultiDiracDeterminant.cpp.
References APP_ABORT.
|
static |
Definition at line 527 of file MultiDiracDeterminant.cpp.
|
private |
Function to calculate the ratio of the gradients of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al.
JCP 135(24), 244105
nw | Number of walkers in the batch |
ref | ID of the reference determinant |
iat | atom ID |
dx | dimension (OHMMS_DIM) |
getNumDets | Number of determinants |
psiinv_list | |
psi_list | |
data | (Shared by all determinants) |
pairs | is the number of unique determinants (std::pair[Nb_unique_alpha][Nb_unique_beta]) (Shared by all determinants) |
sign | (Shared by all determinants) |
WorkSpace_list | list refering to det.WorkSpace |
table_matrix_list | stores all the dot products between 2 determinants (I,J) |
ratios_list | returned computed list of gradients |
Definition at line 267 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::calculateGradRatios_timer, Matrix< T, Alloc >::cols(), Matrix< T, Alloc >::data(), Vector< T, Alloc >::data(), Vector< T, Alloc >::device_data(), MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl(), and sign().
Referenced by MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
private |
Definition at line 225 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::calculateRatios_timer, MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl(), sign(), and MultiDiracDeterminant::transferD2H_timer.
Referenced by MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), and MultiDiracDeterminant::mw_evaluateDetsForPtclMove().
|
private |
Function to calculate the ratio of the excited determinant to the reference determinant in CustomizedMatrixDet following the paper by Clark et al.
JCP 135(24), 244105
nw | Number of walkers in the batch |
ref | ID of the reference determinant |
det0_list | takes lists of ValueType(1) for the value or RatioGrad/curRatio for the gradients |
psiinv_list | |
psi_list | |
data | (Shared by all determinants) |
pairs | is the number of unique determinants (std::pair[Nb_unique_alpha][Nb_unique_beta]) (Shared by all determinants) |
sign | (Shared by all determinants) |
table_matrix_list | stores all the dot products between 2 determinants (I,J) |
ratio_list | returned computed ratios |
Definition at line 75 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::buildTable_timer, MultiDiracDeterminant::det_calculator_, I, qmcplusplus::Units::energy::J, MultiDiracDeterminant::mw_updateRatios_det0(), MultiDiracDeterminant::mw_updateRatios_generic(), MultiDiracDeterminant::ndets_per_excitation_level_, MultiDiracDeterminant::offload_timer, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psi_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::psiinv_deviceptr_list, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::ratios_deviceptr_list, qmcplusplus::Units::second, sign(), MultiDiracDeterminant::table2ratios_timer, and MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::table_matrix_deviceptr_list.
Referenced by MultiDiracDeterminant::mw_buildTableMatrix_calculateGradRatios(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios().
|
static |
multi walker version of mw_evaluateDetsAndGradsForPtclMove
This is needed by Host in acceptMove. Eventually acceptMove will need to become mw_acceptMove.
Definition at line 662 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::ciConfigList, qmcplusplus::ompBLAS::copy_batched(), qmcplusplus::ompBLAS::copy_batched_offset(), qmcplusplus::det(), MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::evalOrbVGL_timer, MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove_timer, MultiDiracDeterminant::FirstIndex, RefVectorWithLeader< T >::getLeader(), MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::getPhi(), qmcplusplus::Units::energy::J, MultiDiracDeterminant::mw_buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios(), MultiDiracDeterminant::mw_InverseUpdateByColumn(), MultiDiracDeterminant::mw_res_handle_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, WaveFunctionComponent::ORB_PBYP_PARTIAL, MultiDiracDeterminant::refdet_occup, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::transferD2H_timer, MultiDiracDeterminant::transferH2D_timer, MultiDiracDeterminant::uniquePairs, and WaveFunctionComponent::UpdateMode.
|
static |
multi walker version of evaluateDetsForPtclMove
Transfer of data from host to Device
This is needed by acceptMove. Eventually acceptMove will need to become mw_acceptMove.
Definition at line 346 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::ciConfigList, qmcplusplus::ompBLAS::copy_batched(), qmcplusplus::ompBLAS::copy_batched_offset(), qmcplusplus::det(), MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::evalOrbValue_timer, MultiDiracDeterminant::evaluateDetsForPtclMove_timer, MultiDiracDeterminant::FirstIndex, RefVectorWithLeader< T >::getLeader(), MultiDiracDeterminant::getPhi(), qmcplusplus::Units::energy::J, MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios(), MultiDiracDeterminant::mw_InverseUpdateByColumn(), MultiDiracDeterminant::mw_res_handle_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, WaveFunctionComponent::ORB_PBYP_PARTIAL, WaveFunctionComponent::ORB_PBYP_RATIO, MultiDiracDeterminant::refdet_occup, MultiDiracDeterminant::ReferenceDeterminant, MultiDiracDeterminant::transferD2H_timer, MultiDiracDeterminant::uniquePairs, and WaveFunctionComponent::UpdateMode.
|
static |
multi walker version of mw_evaluateGrads
Definition at line 971 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::ciConfigList, qmcplusplus::ompBLAS::copy_batched(), qmcplusplus::det(), MultiDiracDeterminant::detData, MultiDiracDeterminant::DetSigns, MultiDiracDeterminant::evaluateGrads_timer, MultiDiracDeterminant::FirstIndex, RefVectorWithLeader< T >::getLeader(), MultiDiracDeterminant::getNumDets(), qmcplusplus::Units::energy::J, MultiDiracDeterminant::mw_buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::mw_InverseUpdateByColumn(), MultiDiracDeterminant::mw_res_handle_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, OHMMS_DIM, MultiDiracDeterminant::refdet_occup, MultiDiracDeterminant::ReferenceDeterminant, and MultiDiracDeterminant::uniquePairs.
|
private |
Definition at line 1168 of file MultiDiracDeterminant.2.cpp.
References MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::cminus_one_vec, BLAS::cone, qmcplusplus::ompBLAS::copy_batched_offset(), MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::czero_vec, Vector< T, Alloc >::device_data(), qmcplusplus::ompBLAS::gemv_batched(), qmcplusplus::ompBLAS::ger_batched(), Vector< T, Alloc >::size(), MultiDiracDeterminant::updateInverse_timer, MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::workV1_deviceptr_list, and MultiDiracDeterminant::MultiDiracDetMultiWalkerResource::workV2_deviceptr_list.
Referenced by MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
private |
update ratios with respect to the reference deteriminant for a given excitation level
det_offset | offset of the determinant id |
data_offset | offset of the "data" structure |
sign | of determinants |
table_matrix_list | list of table_matrix |
this is intended to be customized based on EXT_LEVEL
Definition at line 1137 of file MultiDiracDeterminant.2.cpp.
References Vector< T, Alloc >::data(), qmcplusplus::evaluate(), sign(), Vector< T, Alloc >::size(), and MultiDiracDeterminant::updateRatios_timer.
|
private |
update ratios of the reference deteriminant
det0_list | list of reference det value |
Definition at line 1122 of file MultiDiracDeterminant.2.cpp.
References Vector< T, Alloc >::data(), Vector< T, Alloc >::size(), and MultiDiracDeterminant::updateRatios_timer.
Referenced by MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
|
private |
update ratios with respect to the reference deteriminant for a given excitation level
ext_level | excitation level |
det_offset | offset of the determinant id |
data_offset | offset of the "data" structure |
sign | of determinants |
table_matrix_list | list of table_matrix |
this is a general implementation. Support abitrary excitation level
Definition at line 1102 of file MultiDiracDeterminant.2.cpp.
References Vector< T, Alloc >::data(), SmallMatrixDetCalculator< T >::evaluate(), and sign().
Referenced by MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
|
delete |
|
inlineoverridevirtual |
evaluate the ratio of the new to old WaveFunctionComponent value
P | the active ParticleSet |
iat | the index of a particle |
Specialized for particle-by-particle move
Implements WaveFunctionComponent.
Definition at line 225 of file MultiDiracDeterminant.h.
References APP_ABORT.
|
inlineoverridevirtual |
evaluate the ratio of the new to old WaveFunctionComponent value and the new gradient
P | the active ParticleSet |
iat | the index of a particle |
grad_iat | Gradient for the active particle |
Reimplemented from WaveFunctionComponent.
Definition at line 237 of file MultiDiracDeterminant.h.
References APP_ABORT.
|
overridevirtual |
For particle-by-particle move.
Requests space in the buffer based on the data type sizes of the objects in this class.
P | particle set |
buf | Anonymous storage |
Implements WaveFunctionComponent.
Definition at line 624 of file MultiDiracDeterminant.cpp.
References PooledMemory< T_scalar, Alloc >::add(), MultiDiracDeterminant::d2psiM, QMCTraits::DIM, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dspin_psiM, Matrix< T, Alloc >::first_address(), MultiDiracDeterminant::FirstAddressOfdpsiM, MultiDiracDeterminant::FirstAddressOfGrads, MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::grads, MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::lapls, Matrix< T, Alloc >::last_address(), MultiDiracDeterminant::LastAddressOfdpsiM, MultiDiracDeterminant::LastAddressOfGrads, MultiDiracDeterminant::log_value_ref_det_, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::ratios_to_ref_, and MultiDiracDeterminant::spingrads.
void releaseResource | ( | ResourceCollection & | collection, |
const RefVectorWithLeader< MultiDiracDeterminant > & | wfc_list | ||
) | const |
Definition at line 722 of file MultiDiracDeterminant.cpp.
References RefVectorWithLeader< T >::getCastedLeader(), and ResourceCollection::takebackResource().
|
private |
reset the size: with the number of particles
reset the size: with the number of particles and number of orbtials
Definition at line 730 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::d2psiM, MultiDiracDeterminant::d2psiV, MultiDiracDeterminant::det_calculator_, MultiDiracDeterminant::dpsiM, MultiDiracDeterminant::dpsiMinv, MultiDiracDeterminant::dpsiV, MultiDiracDeterminant::dspin_psiM, MultiDiracDeterminant::dspin_psiV, MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::grads, MultiDiracDeterminant::is_spinor_, MultiDiracDeterminant::lapls, MultiDiracDeterminant::new_grads, MultiDiracDeterminant::new_lapls, MultiDiracDeterminant::new_ratios_to_ref_, MultiDiracDeterminant::new_spingrads, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::NumPtcls, MultiDiracDeterminant::Pivot, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::psiV, MultiDiracDeterminant::psiV_temp, MultiDiracDeterminant::ratios_to_ref_, SmallMatrixDetCalculator< T >::resize(), Matrix< T, Alloc >::resize(), Vector< T, Alloc >::resize(), MultiDiracDeterminant::spingrads, MultiDiracDeterminant::table_matrix, MultiDiracDeterminant::TpsiM, MultiDiracDeterminant::WorkSpace, MultiDiracDeterminant::workV1, and MultiDiracDeterminant::workV2.
Referenced by MultiDiracDeterminant::createDetData(), and MultiDiracDeterminant::MultiDiracDeterminant().
|
overridevirtual |
move was rejected.
copy the real container to the temporary to move on
Implements WaveFunctionComponent.
Definition at line 496 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::curRatio, MultiDiracDeterminant::FirstIndex, MultiDiracDeterminant::LastIndex, MultiDiracDeterminant::NumOrbitals, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, MultiDiracDeterminant::psiMinv_temp, MultiDiracDeterminant::TpsiM, and MultiDiracDeterminant::transferH2D_timer.
|
overridevirtual |
For particle-by-particle move.
Put the objects of this class in the walker buffer or forward the memory cursor.
P | particle set |
buf | Anonymous storage |
fromscratch | request recomputing the precision critical pieces of wavefunction from scratch |
Implements WaveFunctionComponent.
Definition at line 361 of file MultiDiracDeterminant.cpp.
References MultiDiracDeterminant::d2psiM, MultiDiracDeterminant::dspin_psiM, MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), Matrix< T, Alloc >::first_address(), MultiDiracDeterminant::FirstAddressOfdpsiM, MultiDiracDeterminant::FirstAddressOfGrads, MultiDiracDeterminant::is_spinor_, ParticleSet::isSpinor(), MultiDiracDeterminant::lapls, Matrix< T, Alloc >::last_address(), MultiDiracDeterminant::LastAddressOfdpsiM, MultiDiracDeterminant::LastAddressOfGrads, MultiDiracDeterminant::log_value_ref_det_, WaveFunctionComponent::ORB_PBYP_RATIO, MultiDiracDeterminant::psiM, MultiDiracDeterminant::psiMinv, PooledMemory< T_scalar, Alloc >::put(), MultiDiracDeterminant::ratios_to_ref_, MultiDiracDeterminant::spingrads, and WaveFunctionComponent::UpdateMode.
NewTimer & buildTable_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
NewTimer & calculateGradRatios_timer |
Definition at line 38 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateGradRatios().
NewTimer & calculateRatios_timer |
Definition at line 38 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateRatios(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios().
|
private |
use shared_ptr
Definition at line 526 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::getNumDets(), MultiDiracDeterminant::MultiDiracDeterminant(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
private |
new value of the reference determinant over the old value upon a proposed move
Definition at line 574 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::getRefDetRatio(), and MultiDiracDeterminant::restore().
|
private |
d2psiM(i,j)
Definition at line 544 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 554 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 600 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 593 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDerivativesWF(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::MultiDiracDeterminant(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
private |
Definition at line 595 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::MultiDiracDeterminant(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
private |
dpsiM(i,j)
Definition at line 540 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 542 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 553 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 548 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 557 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), and MultiDiracDeterminant::resize().
NewTimer & evalOrbValue_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateDetsForPtclMove().
NewTimer & evalOrbVGL_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), and MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove().
NewTimer & evaluateDetsAndGradsForPtclMove_timer |
Definition at line 39 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), and MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove().
NewTimer& evaluateDetsForPtclMove_timer |
Definition at line 39 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateDetsForPtclMove().
NewTimer & evaluateGrads_timer |
Definition at line 39 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::mw_evaluateGrads().
NewTimer & evalWalker_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateForWalkerMove(), and MultiDiracDeterminant::evaluateForWalkerMoveWithSpin().
|
private |
Definition at line 566 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 564 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::updateBuffer().
|
private |
index of the first particle with respect to the particle set
Definition at line 520 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::getFirstIndex(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), MultiDiracDeterminant::mw_evaluateGrads(), and MultiDiracDeterminant::restore().
store determinant grads (old and new)
Definition at line 578 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::getGrads(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::resize().
NewTimer& inverse_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateForWalkerMove(), and MultiDiracDeterminant::evaluateForWalkerMoveWithSpin().
|
private |
Definition at line 532 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
store determinant lapls (old and new)
Definition at line 580 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::getLapls(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 567 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 565 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::updateBuffer().
|
private |
index of the last particle with respect to the particle set
Definition at line 524 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::restore().
|
private |
log value of the reference determinant
Definition at line 576 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::getLogValueRefDet(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::updateBuffer().
std::vector<std::vector<int> > lookup_tbl |
Definition at line 120 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::evaluateDerivatives(), and MultiDiracDeterminant::evaluateDerivativesWF().
|
staticprivate |
for matrices with leading dimensions <= MaxSmallDet, compute determinant with direct expansion.
Definition at line 603 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl().
|
private |
Definition at line 605 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acquireResource(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
opt_variables_type myVars |
Definition at line 43 of file MultiDiracDeterminant.h.
|
private |
number of unique determinants at each excitation level (relative to reference) {1, n_singles, n_doubles, n_triples, ...}
Definition at line 599 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::MultiDiracDeterminant(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
Definition at line 578 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::getNewGrads(), and MultiDiracDeterminant::resize().
Definition at line 580 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::getNewLapls(), and MultiDiracDeterminant::resize().
|
private |
new determinant ratios with respect to the updated reference determinant upon a proposed move
Definition at line 572 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::getNewRatiosToRefDet(), and MultiDiracDeterminant::resize().
Definition at line 582 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::getNewSpinGrads(), and MultiDiracDeterminant::resize().
|
private |
number of single-particle orbitals which belong to this Dirac determinant
Definition at line 518 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), MultiDiracDeterminant::mw_evaluateGrads(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::restore().
|
private |
number of particles which belong to this Dirac determinant
Definition at line 522 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::getNumPtcls(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), MultiDiracDeterminant::mw_evaluateGrads(), MultiDiracDeterminant::registerData(), and MultiDiracDeterminant::resize().
NewTimer& offload_timer |
Definition at line 40 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
|
private |
a set of single-particle orbitals used to fill in the values of the matrix
Definition at line 516 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildOptVariables(), MultiDiracDeterminant::checkOutVariables(), MultiDiracDeterminant::clonePhi(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDerivativesWF(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::extractOptimizableObjectRefs(), MultiDiracDeterminant::getPhi(), and MultiDiracDeterminant::isOptimizable().
Definition at line 562 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), and MultiDiracDeterminant::resize().
|
private |
psiM(i,j) TpsiM(i,j)
Definition at line 536 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDerivativesWF(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), MultiDiracDeterminant::restore(), and MultiDiracDeterminant::updateBuffer().
|
private |
inverse Dirac determinant matrix of the reference det
Definition at line 538 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDerivatives(), MultiDiracDeterminant::evaluateDerivativesWF(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), MultiDiracDeterminant::restore(), and MultiDiracDeterminant::updateBuffer().
|
private |
Definition at line 538 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::restore().
|
private |
value of single-particle orbital for particle-by-particle update
Definition at line 552 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 552 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::resize().
|
private |
determinant ratios with respect to the reference determinant
Definition at line 570 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::getRatiosToRefDet(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
|
private |
reference determinant occupation
Definition at line 530 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::MultiDiracDeterminant(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
|
staticprivate |
all the unique determinants are sorted, the id of the reference det id is always 0
Definition at line 528 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
Definition at line 582 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::getSpinGrads(), MultiDiracDeterminant::registerData(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::updateBuffer().
NewTimer & table2ratios_timer |
Definition at line 36 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), and MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios_impl().
|
private |
Definition at line 559 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatios_impl(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 536 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::copyFromBuffer(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::resize(), and MultiDiracDeterminant::restore().
NewTimer & transferD2H_timer |
Definition at line 40 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::mw_buildTableMatrix_calculateRatios(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), and MultiDiracDeterminant::mw_evaluateDetsForPtclMove().
NewTimer & transferH2D_timer |
Definition at line 40 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::acceptMove(), MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), and MultiDiracDeterminant::restore().
|
private |
Definition at line 594 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::createDetData(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), MultiDiracDeterminant::MultiDiracDeterminant(), MultiDiracDeterminant::mw_evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::mw_evaluateDetsForPtclMove(), and MultiDiracDeterminant::mw_evaluateGrads().
NewTimer& updateInverse_timer |
NewTimer & updateRatios_timer |
Definition at line 38 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::mw_updateRatios(), and MultiDiracDeterminant::mw_updateRatios_det0().
|
private |
Definition at line 561 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::buildTableMatrix_calculateGradRatios(), MultiDiracDeterminant::buildTableMatrix_calculateRatiosValueMatrixOneParticle(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 555 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::resize().
|
private |
Definition at line 555 of file MultiDiracDeterminant.h.
Referenced by MultiDiracDeterminant::evaluateDetsAndGradsForPtclMove(), MultiDiracDeterminant::evaluateDetsAndGradsForPtclMoveWithSpin(), MultiDiracDeterminant::evaluateDetsForPtclMove(), MultiDiracDeterminant::evaluateForWalkerMove(), MultiDiracDeterminant::evaluateForWalkerMoveWithSpin(), MultiDiracDeterminant::evaluateGrads(), MultiDiracDeterminant::evaluateGradsWithSpin(), and MultiDiracDeterminant::resize().