QMCPACK
StressPBC Struct Reference
+ Inheritance diagram for StressPBC:
+ Collaboration diagram for StressPBC:

Public Types

using LRHandlerType = LRCoulombSingleton::LRHandlerType
 
- Public Types inherited from OperatorBase
enum  EnergyDomains { KINETIC = 0, POTENTIAL, NO_ENERGY_DOMAIN }
 enum to denote energy domain of operators More...
 
enum  QuantumDomains {
  NO_QUANTUM_DOMAIN = 0, CLASSICAL, QUANTUM, CLASSICAL_CLASSICAL,
  QUANTUM_CLASSICAL, QUANTUM_QUANTUM
}
 
enum  {
  PRIMARY = 0, OPTIMIZABLE = 1, RATIOUPDATE = 2, PHYSICAL = 3,
  COLLECTABLE = 4, NONLOCAL = 5
}
 enum for update_mode More...
 
using Return_t = FullPrecRealType
 type of return value of evaluate More...
 
using ValueMatrix = SPOSet::ValueMatrix
 For fast derivative evaluation. More...
 
using GradMatrix = SPOSet::GradMatrix
 
using BufferType = ParticleSet::Buffer_t
 typedef for the serialized buffer More...
 
using Walker_t = ParticleSet::Walker_t
 typedef for the walker More...
 
using ParticleScalar = ParticleSet::Scalar_t
 typedef for the ParticleScalar More...
 
using SPOMap = SPOSet::SPOMap
 typedef for SPOMap More...
 
- Public Types inherited from QMCTraits
enum  { DIM = OHMMS_DIM, DIM_VGL = OHMMS_DIM + 2 }
 
using QTBase = QMCTypes< OHMMS_PRECISION, DIM >
 
using QTFull = QMCTypes< OHMMS_PRECISION_FULL, DIM >
 
using RealType = QTBase::RealType
 
using ComplexType = QTBase::ComplexType
 
using ValueType = QTBase::ValueType
 
using PosType = QTBase::PosType
 
using GradType = QTBase::GradType
 
using TensorType = QTBase::TensorType
 
using IndexType = OHMMS_INDEXTYPE
 define other types More...
 
using FullPrecRealType = QTFull::RealType
 
using FullPrecValueType = QTFull::ValueType
 
using PropertySetType = RecordNamedProperty< FullPrecRealType >
 define PropertyList_t More...
 
using PtclGrpIndexes = std::vector< std::pair< int, int > >
 
- Public Types inherited from ForceBase
using Real = QMCTraits::RealType
 cheat, need to use virtual inheriance to clean up More...
 

Public Member Functions

 StressPBC (ParticleSet &ions, ParticleSet &elns, TrialWaveFunction &Psi)
 
std::string getClassName () const override
 return class name More...
 
Return_t evaluate (ParticleSet &P) override
 Evaluate the local energy contribution of this component. More...
 
void initBreakup (ParticleSet &P)
 
SymTensor< RealType, OHMMS_DIMevaluateLR_AB (ParticleSet &P)
 
SymTensor< RealType, OHMMS_DIMevaluateSR_AB (ParticleSet &P_target)
 
SymTensor< RealType, OHMMS_DIMevaluateSR_AA (ParticleSet &P, int itabSelf)
 
SymTensor< RealType, OHMMS_DIMevaluateLR_AA (ParticleSet &P)
 
SymTensor< RealType, OHMMS_DIMevalConsts_AB ()
 
SymTensor< RealType, OHMMS_DIMevalConsts_AA (ParticleSet &P)
 
SymTensor< RealType, OHMMS_DIMevaluateKineticSymTensor (ParticleSet &P)
 
void registerObservables (std::vector< ObservableHelper > &h5list, hdf_archive &file) const override
 add to observable descriptor for hdf5 The default implementation is to register a scalar for this->value_ More...
 
void addObservables (PropertySetType &plist, BufferType &collectables) override
 named values to the property list Default implementaton uses addValue(plist_) More...
 
void setObservables (PropertySetType &plist) override
 Set the values evaluated by this object to plist Default implementation is to assign Value which is updated by evaluate function using my_index_. More...
 
void resetTargetParticleSet (ParticleSet &P) override
 Reset the data with the target ParticleSet. More...
 
void setParticlePropertyList (PropertySetType &plist, int offset) override
 
std::unique_ptr< OperatorBasemakeClone (ParticleSet &qp, TrialWaveFunction &psi) final
 
bool put (xmlNodePtr cur) override
 Read the input parameter. More...
 
bool get (std::ostream &os) const override
 write about the class More...
 
void CalculateIonIonStress ()
 
- Public Member Functions inherited from OperatorBase
 OperatorBase ()
 Construct a new Operator Base object Default and unique empty constructor. More...
 
virtual ~OperatorBase ()=default
 
virtual bool dependsOnWaveFunction () const
 return true if this operator depends on a wavefunction More...
 
std::bitset< 8 > & getUpdateMode () noexcept
 get update_mode_ reference More...
 
Return_t getValue () const noexcept
 get a copy of value_ More...
 
std::string getName () const noexcept
 getter a copy of my_name_, rvalue small string optimization More...
 
void setName (const std::string name) noexcept
 Set my_name member, uses small string optimization (pass by value) More...
 
TraceRequestgetRequest () noexcept
 Get request_ member. More...
 
virtual void registerCollectables (std::vector< ObservableHelper > &h5desc, hdf_archive &file) const
 
virtual void setHistories (Walker_t &ThisWalker)
 
virtual Return_t evaluateDeterministic (ParticleSet &P)
 Evaluate the local energy contribution of this component, deterministically based on current state. More...
 
virtual void mw_evaluate (const RefVectorWithLeader< OperatorBase > &o_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list) const
 Evaluate the contribution of this component of multiple walkers. More...
 
virtual void mw_evaluatePerParticle (const RefVectorWithLeader< OperatorBase > &o_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list, const std::vector< ListenerVector< RealType >> &listeners, const std::vector< ListenerVector< RealType >> &listeners_ions) const
 Evaluate the contribution of this component of multiple walkers per particle and report to registerd listeners from objects in Estimators. More...
 
virtual void mw_evaluateWithParameterDerivatives (const RefVectorWithLeader< OperatorBase > &o_list, const RefVectorWithLeader< ParticleSet > &p_list, const opt_variables_type &optvars, const RecordArray< ValueType > &dlogpsi, RecordArray< ValueType > &dhpsioverpsi) const
 TODO: add docs. More...
 
virtual Return_t rejectedMove (ParticleSet &P)
 TODO: add docs. More...
 
virtual Return_t evaluateWithToperator (ParticleSet &P)
 Evaluate the local energy contribution of this component with Toperators updated if requested. More...
 
virtual void mw_evaluateWithToperator (const RefVectorWithLeader< OperatorBase > &o_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list) const
 Evaluate the contribution of this component of multiple walkers. More...
 
virtual void mw_evaluatePerParticleWithToperator (const RefVectorWithLeader< OperatorBase > &o_list, const RefVectorWithLeader< TrialWaveFunction > &wf_list, const RefVectorWithLeader< ParticleSet > &p_list, const std::vector< ListenerVector< RealType >> &listeners, const std::vector< ListenerVector< RealType >> &listeners_ions) const
 Evaluate the contribution of this component of multiple walkers per particle and report to registerd listeners from objects in Estimators. More...
 
virtual Return_t evaluateValueAndDerivatives (ParticleSet &P, const opt_variables_type &optvars, const Vector< ValueType > &dlogpsi, Vector< ValueType > &dhpsioverpsi)
 Evaluate value and derivatives wrt the optimizables. More...
 
virtual Return_t evaluateWithIonDerivs (ParticleSet &P, ParticleSet &ions, TrialWaveFunction &psi, ParticleSet::ParticlePos &hf_term, ParticleSet::ParticlePos &pulay_term)
 Evaluate contribution to local energy and derivatives w.r.t ionic coordinates from OperatorBase. More...
 
virtual Return_t evaluateWithIonDerivsDeterministic (ParticleSet &P, ParticleSet &ions, TrialWaveFunction &psi, ParticleSet::ParticlePos &hf_term, ParticleSet::ParticlePos &pulay_term)
 Evaluate contribution to local energy and derivatives w.r.t ionic coordinates from OperatorBase. More...
 
virtual void evaluateOneBodyOpMatrix (ParticleSet &P, const TWFFastDerivWrapper &psi, std::vector< ValueMatrix > &B)
 Evaluate "B" matrix for observable. More...
 
virtual void evaluateOneBodyOpMatrixForceDeriv (ParticleSet &P, ParticleSet &source, const TWFFastDerivWrapper &psi, const int iat, std::vector< std::vector< ValueMatrix >> &Bforce)
 Evaluate "dB/dR" matrices for observable. More...
 
virtual void updateSource (ParticleSet &s)
 Update data associated with a particleset. More...
 
virtual Return_t getEnsembleAverage ()
 Return an average value by collective operation. More...
 
virtual void createResource (ResourceCollection &collection) const
 Initialize a shared resource and hand it to a collection. More...
 
virtual void acquireResource (ResourceCollection &collection, const RefVectorWithLeader< OperatorBase > &o_list) const
 Acquire a shared resource from a collection. More...
 
virtual void releaseResource (ResourceCollection &collection, const RefVectorWithLeader< OperatorBase > &o_list) const
 Return a shared resource to a collection. More...
 
virtual void setRandomGenerator (RandomBase< FullPrecRealType > *rng)
 Set the Random Generator object TODO: add docs. More...
 
virtual void add2Hamiltonian (ParticleSet &qp, TrialWaveFunction &psi, QMCHamiltonian &targetH)
 TODO: add docs. More...
 
virtual void getRequiredTraces (TraceManager &tm)
 TODO: add docs. More...
 
virtual void informOfPerParticleListener ()
 
bool isClassical () const noexcept
 
bool isQuantum () const noexcept
 
bool isClassicalClassical () const noexcept
 
bool isQuantumClassical () const noexcept
 
bool isQuantumQuantum () const noexcept
 
bool getMode (const int i) const noexcept
 Return the mode i. More...
 
bool isNonLocal () const noexcept
 TODO: add docs. More...
 
bool hasListener () const noexcept
 
void contributeTraceQuantities ()
 Make trace quantities available. More...
 
void checkoutTraceQuantities (TraceManager &tm)
 Checkout trace arrays Derived classes must guard individual checkouts using request info. More...
 
void collectScalarTraces ()
 Collect scalar trace data. More...
 
void deleteTraceQuantities ()
 delete trace arrays More...
 
- Public Member Functions inherited from ForceBase
Real g (Real r)
 
void initVarReduction (Real rcut, int m, int numFuncs)
 
 ForceBase (ParticleSet &ions, ParticleSet &elns)
 
virtual ~ForceBase ()
 
void registerObservablesF (std::vector< ObservableHelper > &h5list, hdf_archive &file) const
 
void addObservablesF (QMCTraits::PropertySetType &plist)
 
void addObservablesStress (QMCTraits::PropertySetType &plist)
 
void setObservablesF (QMCTraits::PropertySetType &plist)
 
void setObservablesStress (QMCTraits::PropertySetType &plist)
 
void setParticleSetF (QMCTraits::PropertySetType &plist, int offset)
 
void setParticleSetStress (QMCTraits::PropertySetType &plist, int offset)
 
bool getAddIonIon () const noexcept
 
void setAddIonIon (bool val) noexcept
 
const ParticleSet::ParticlePosgetForces () const noexcept
 
void setForces (const ParticleSet::ParticlePos &forces)
 
void setForces (Real val)
 
const ParticleSet::ParticlePosgetForcesIonIon () const noexcept
 
void setForcesIonIon (const ParticleSet::ParticlePos &forces_ion_ion)
 
const SymTensor< Real, OHMMS_DIM > & getStressIonIon () const noexcept
 
const SymTensor< Real, OHMMS_DIM > & getStressEE () const noexcept
 
const SymTensor< Real, OHMMS_DIM > & getStressEI () const noexcept
 
const SymTensor< Real, OHMMS_DIM > & getStressKin () const noexcept
 
const SymTensor< Real, OHMMS_DIM > & getStress () const noexcept
 

Public Attributes

SymTensor< RealType, OHMMS_DIMstress_ee_const
 
SymTensor< RealType, OHMMS_DIMstress_eI_const
 
TrialWaveFunctionPsi
 
ParticleSetPtclTarg
 source particle set More...
 
ParticleSetPtclA
 
std::unique_ptr< LRHandlerTypeAA
 long-range Handler More...
 
const int ei_table_index
 locator of the distance table More...
 
const int ee_table_index
 e-e table ID More...
 
const int ii_table_index
 
int NumSpeciesA
 number of species of A particle set More...
 
int NumSpeciesB
 number of species of B particle set More...
 
int NptclA
 number of particles of A (classical, e.g. ions) More...
 
int NptclB
 number of particles of B (quantum, e.g. electrons) More...
 
std::vector< int > NofSpeciesA
 number of particles per species of A More...
 
std::vector< int > NofSpeciesB
 number of particles per species of B More...
 
std::vector< RealTypeZat
 Zat[iat] charge for the iat-th particle of A. More...
 
std::vector< RealTypeQat
 Qat[iat] charge for the iat-th particle of B. More...
 
std::vector< RealTypeZspec
 Zspec[spec] charge for the spec-th species of A. More...
 
std::vector< RealTypeQspec
 Qspec[spec] charge for the spec-th species of B. More...
 
bool firstTimeStress
 

Additional Inherited Members

- Protected Member Functions inherited from OperatorBase
virtual void contributeScalarQuantities ()
 
virtual void checkoutScalarQuantities (TraceManager &tm)
 
virtual void collectScalarQuantities ()
 
virtual void deleteScalarQuantities ()
 
virtual void contributeParticleQuantities ()
 
virtual void checkoutParticleQuantities (TraceManager &tm)
 
virtual void deleteParticleQuantities ()
 
virtual void setComputeForces (bool compute)
 
void setEnergyDomain (EnergyDomains edomain)
 Set the Energy Domain. More...
 
void setQuantumDomain (QuantumDomains qdomain)
 set quantum domain More...
 
void oneBodyQuantumDomain (const ParticleSet &P)
 set quantum domain for one-body operator More...
 
void twoBodyQuantumDomain (const ParticleSet &P)
 set quantum domain for two-body operator More...
 
void twoBodyQuantumDomain (const ParticleSet &P1, const ParticleSet &P2)
 set quantum domain for two-body operator More...
 
void addValue (PropertySetType &plist)
 named values to the property list More...
 
- Protected Attributes inherited from OperatorBase
std::bitset< 8 > update_mode_
 set the current update mode More...
 
Return_t value_
 current value More...
 
std::string name_
 name of this object More...
 
TraceRequest request_
 whether traces are being collected More...
 
int my_index_
 starting index of this object More...
 
Return_t new_value_
 a new value for a proposed move More...
 
Walker_tt_walker_
 reference to the current walker More...
 
bool streaming_particles_
 
bool have_required_traces_
 
- Protected Attributes inherited from ForceBase
int first_force_index_
 
int n_nuc_
 
int n_el_
 
int tries_
 
bool first_time_
 
bool add_ion_ion_
 Determines if ion-ion force will be added to electron-ion force in derived force estimators. If false, forces_ion_ion_=0.0. More...
 
ParticleSetions_
 
ParticleSet::ParticlePos forces_
 
ParticleSet::ParticlePos forces_ion_ion_
 
SymTensor< Real, OHMMS_DIMstress_ion_ion_
 
SymTensor< Real, OHMMS_DIMstress_ee_
 
SymTensor< Real, OHMMS_DIMstress_ei_
 
SymTensor< Real, OHMMS_DIMstress_kin_
 
SymTensor< Real, OHMMS_DIMstress_
 
std::string prefix_
 
std::string pair_name_
 
Real rcut_
 
int m_
 
std::vector< Realck_
 

Detailed Description

Definition at line 24 of file StressPBC.h.

Member Typedef Documentation

◆ LRHandlerType

Definition at line 26 of file StressPBC.h.

Constructor & Destructor Documentation

◆ StressPBC()

StressPBC ( ParticleSet ions,
ParticleSet elns,
TrialWaveFunction Psi 
)

Definition at line 28 of file StressPBC.cpp.

References qmcplusplus::app_log(), StressPBC::CalculateIonIonStress(), StressPBC::firstTimeStress, ParticleSet::getLattice(), StressPBC::initBreakup(), OperatorBase::name_, ForceBase::prefix_, StressPBC::PtclTarg, StressPBC::stress_ee_const, StressPBC::stress_eI_const, and ForceBase::stress_ion_ion_.

29  : ForceBase(ions, elns),
30  Psi(Psi0),
31  PtclTarg(elns),
32  PtclA(ions),
33  ei_table_index(elns.addTable(ions)),
34  ee_table_index(elns.addTable(elns)),
35  ii_table_index(ions.addTable(ions)),
36  firstTimeStress(true)
37 {
38  ReportEngine PRE("StressPBC", "StressPBC");
39  name_ = "StressPBC";
40  prefix_ = "StressPBC";
41  //This sets up the long range breakups.
43  stress_eI_const = 0.0;
44  stress_ee_const = 0.0;
45  if (firstTimeStress)
46  { // calculate constants
48  firstTimeStress = false;
49  }
50  RealType vinv = -1. / PtclTarg.getLattice().Volume;
51  app_log() << "\n====ion-ion stress ====\n" << stress_ion_ion_ * vinv << std::endl;
52  app_log() << "\n e-e const = " << stress_ee_const * vinv << std::endl;
53  app_log() << "\n e-I const = " << stress_eI_const * vinv << std::endl;
54 }
std::ostream & app_log()
Definition: OutputManager.h:65
SymTensor< RealType, OHMMS_DIM > stress_eI_const
Definition: StressPBC.h:29
ForceBase(ParticleSet &ions, ParticleSet &elns)
Definition: ForceBase.cpp:28
std::string prefix_
Definition: ForceBase.h:96
SymTensor< RealType, OHMMS_DIM > stress_ee_const
Definition: StressPBC.h:28
std::string name_
name of this object
Definition: OperatorBase.h:527
const int ii_table_index
Definition: StressPBC.h:43
ParticleSet & PtclA
Definition: StressPBC.h:36
ParticleSet & PtclTarg
source particle set
Definition: StressPBC.h:35
TrialWaveFunction & Psi
Definition: StressPBC.h:32
void initBreakup(ParticleSet &P)
Definition: StressPBC.cpp:56
QMCTraits::RealType RealType
SymTensor< Real, OHMMS_DIM > stress_ion_ion_
Definition: ForceBase.h:90
const auto & getLattice() const
Definition: ParticleSet.h:251
void CalculateIonIonStress()
Definition: StressPBC.h:105
const int ee_table_index
e-e table ID
Definition: StressPBC.h:42
const int ei_table_index
locator of the distance table
Definition: StressPBC.h:40

Member Function Documentation

◆ addObservables()

void addObservables ( PropertySetType plist,
BufferType collectables 
)
inlineoverridevirtual

named values to the property list Default implementaton uses addValue(plist_)

Parameters
plistRecordNameProperty
collectablesObservables that are accumulated by evaluate

Reimplemented from OperatorBase.

Definition at line 89 of file StressPBC.h.

References ForceBase::addObservablesStress().

89 { addObservablesStress(plist); }
void addObservablesStress(QMCTraits::PropertySetType &plist)
Definition: ForceBase.cpp:62

◆ CalculateIonIonStress()

void CalculateIonIonStress ( )
inline

Definition at line 105 of file StressPBC.h.

References StressPBC::evalConsts_AA(), StressPBC::evalConsts_AB(), StressPBC::evaluateLR_AA(), StressPBC::evaluateSR_AA(), StressPBC::ii_table_index, StressPBC::PtclA, StressPBC::PtclTarg, StressPBC::stress_ee_const, StressPBC::stress_eI_const, and ForceBase::stress_ion_ion_.

Referenced by StressPBC::StressPBC().

106  {
110  }
SymTensor< RealType, OHMMS_DIM > stress_eI_const
Definition: StressPBC.h:29
SymTensor< RealType, OHMMS_DIM > stress_ee_const
Definition: StressPBC.h:28
const int ii_table_index
Definition: StressPBC.h:43
ParticleSet & PtclA
Definition: StressPBC.h:36
ParticleSet & PtclTarg
source particle set
Definition: StressPBC.h:35
SymTensor< RealType, OHMMS_DIM > evaluateSR_AA(ParticleSet &P, int itabSelf)
Definition: StressPBC.cpp:131
SymTensor< RealType, OHMMS_DIM > evalConsts_AB()
Definition: StressPBC.cpp:187
SymTensor< Real, OHMMS_DIM > stress_ion_ion_
Definition: ForceBase.h:90
SymTensor< RealType, OHMMS_DIM > evaluateLR_AA(ParticleSet &P)
Definition: StressPBC.cpp:151
SymTensor< RealType, OHMMS_DIM > evalConsts_AA(ParticleSet &P)
Definition: StressPBC.cpp:215

◆ evalConsts_AA()

SymTensor< StressPBC::RealType, OHMMS_DIM > evalConsts_AA ( ParticleSet P)

Definition at line 215 of file StressPBC.cpp.

References StressPBC::AA, qmcplusplus::app_log(), SpeciesSet::getAttribute(), ParticleSet::getSpeciesSet(), ParticleSet::getTotalNum(), ParticleSet::groupsize(), SpeciesSet::TotalNum, and ParticleSet::Z.

Referenced by StressPBC::CalculateIonIonStress().

216 {
217  SymTensor<RealType, OHMMS_DIM> tmpconsts = 0.0; // constant term
218 
219  int NumSpecies = P.getSpeciesSet().TotalNum;
220  int NumCenters = P.getTotalNum();
221  RealType v1; //single particle energy
222 
223  int ChargeAttribIndx = P.getSpeciesSet().getAttribute("charge");
224 
225  std::vector<int> NofSpecies;
226  std::vector<int> Zmyspec;
227  NofSpecies.resize(NumSpecies);
228  Zmyspec.resize(NumSpecies);
229 
230  for (int spec = 0; spec < NumSpecies; spec++)
231  {
232  Zmyspec[spec] = P.getSpeciesSet()(ChargeAttribIndx, spec);
233  NofSpecies[spec] = P.groupsize(spec);
234  }
235 
236  SymTensor<RealType, OHMMS_DIM> vl_r0 = AA->evaluateLR_r0_dstrain();
237  for (int ipart = 0; ipart < NumCenters; ipart++)
238  {
239  tmpconsts += -.5 * P.Z[ipart] * P.Z[ipart] * vl_r0;
240  }
241  // if(report)
242  app_log() << " PBCAA self-interaction term \n" << tmpconsts << std::endl;
243  //Compute Madelung constant: this is not correct for general cases
244  SymTensor<RealType, OHMMS_DIM> MC0 = 0;
245  for (int ks = 0; ks < AA->Fk.size(); ks++)
246  MC0 += AA->dFk_dstrain[ks];
247  MC0 = 0.5 * (MC0 - vl_r0);
248  //Neutraling background term
249  SymTensor<RealType, OHMMS_DIM> vs_k0 = AA->evaluateSR_k0_dstrain(); //v_s(k=0)
250  for (int ipart = 0; ipart < NumCenters; ipart++)
251  {
252  v1 = 0.0;
253  for (int spec = 0; spec < NumSpecies; spec++)
254  v1 += -.5 * P.Z[ipart] * NofSpecies[spec] * Zmyspec[spec];
255  tmpconsts += v1 * vs_k0;
256  }
257  // if(report)
258  app_log() << " PBCAA total constant \n" << tmpconsts << std::endl;
259  return tmpconsts;
260 }
std::ostream & app_log()
Definition: OutputManager.h:65
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
QMCTraits::RealType RealType

◆ evalConsts_AB()

SymTensor< StressPBC::RealType, OHMMS_DIM > evalConsts_AB ( )

Definition at line 187 of file StressPBC.cpp.

References StressPBC::AA, ParticleSet::getTotalNum(), StressPBC::NofSpeciesA, StressPBC::NofSpeciesB, StressPBC::NumSpeciesA, StressPBC::NumSpeciesB, StressPBC::PtclA, StressPBC::PtclTarg, StressPBC::Qat, StressPBC::Qspec, qmcplusplus::Units::time::s, StressPBC::Zat, and StressPBC::Zspec.

Referenced by StressPBC::CalculateIonIonStress().

188 {
189  int nelns = PtclTarg.getTotalNum();
190  int nions = PtclA.getTotalNum();
191 
193 
194  SymTensor<mRealType, OHMMS_DIM> Consts = 0.0;
195  SymTensor<mRealType, OHMMS_DIM> vs_k0 = AA->evaluateSR_k0_dstrain();
196  mRealType v1; //single particle energy
197  for (int i = 0; i < nelns; ++i)
198  {
199  v1 = 0.0;
200  for (int s = 0; s < NumSpeciesA; s++)
201  v1 += NofSpeciesA[s] * Zspec[s];
202  Consts += -.5 * Qat[i] * vs_k0 * v1;
203  }
204  for (int i = 0; i < nions; ++i)
205  {
206  v1 = 0.0;
207  for (int s = 0; s < NumSpeciesB; s++)
208  v1 += NofSpeciesB[s] * Qspec[s];
209  Consts += -.5 * Zat[i] * vs_k0 * v1;
210  }
211 
212  return SymTensor<RealType, OHMMS_DIM>(Consts);
213 }
int NumSpeciesB
number of species of B particle set
Definition: StressPBC.h:47
size_t getTotalNum() const
Definition: ParticleSet.h:493
EwaldHandler3D::mRealType mRealType
std::vector< int > NofSpeciesA
number of particles per species of A
Definition: StressPBC.h:54
int NumSpeciesA
number of species of A particle set
Definition: StressPBC.h:45
std::vector< RealType > Zat
Zat[iat] charge for the iat-th particle of A.
Definition: StressPBC.h:58
ParticleSet & PtclA
Definition: StressPBC.h:36
std::vector< RealType > Qat
Qat[iat] charge for the iat-th particle of B.
Definition: StressPBC.h:60
std::vector< RealType > Zspec
Zspec[spec] charge for the spec-th species of A.
Definition: StressPBC.h:62
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
ParticleSet & PtclTarg
source particle set
Definition: StressPBC.h:35
std::vector< RealType > Qspec
Qspec[spec] charge for the spec-th species of B.
Definition: StressPBC.h:64
std::vector< int > NofSpeciesB
number of particles per species of B
Definition: StressPBC.h:56

◆ evaluate()

StressPBC::Return_t evaluate ( ParticleSet P)
overridevirtual

Evaluate the local energy contribution of this component.

Parameters
Pinput configuration containing N particles
Returns
the value of the Hamiltonian component

Implements OperatorBase.

Definition at line 262 of file StressPBC.cpp.

References ForceBase::add_ion_ion_, StressPBC::ee_table_index, StressPBC::evaluateKineticSymTensor(), StressPBC::evaluateLR_AA(), StressPBC::evaluateLR_AB(), StressPBC::evaluateSR_AA(), StressPBC::evaluateSR_AB(), ParticleSet::getLattice(), StressPBC::PtclTarg, ForceBase::stress_, ForceBase::stress_ee_, StressPBC::stress_ee_const, ForceBase::stress_ei_, StressPBC::stress_eI_const, ForceBase::stress_ion_ion_, and ForceBase::stress_kin_.

Referenced by qmcplusplus::TEST_CASE().

263 {
264  const RealType vinv(-1.0 / P.getLattice().Volume);
265  stress_ = 0.0;
266  stress_ee_ = 0.0;
267  stress_ei_ = 0.0;
268  stress_kin_ = 0.0;
269 
270  stress_ei_ += vinv * evaluateLR_AB(PtclTarg);
271  stress_ei_ += vinv * evaluateSR_AB(PtclTarg);
272  stress_ei_ += vinv * stress_eI_const;
273 
274  stress_ee_ += vinv * evaluateLR_AA(PtclTarg);
276  stress_ee_ += vinv * stress_ee_const;
277 
278 
280 
282  if (add_ion_ion_)
283  stress_ += vinv * stress_ion_ion_;
284 
285  return 0.0;
286 }
SymTensor< Real, OHMMS_DIM > stress_ee_
Definition: ForceBase.h:91
SymTensor< RealType, OHMMS_DIM > evaluateSR_AB(ParticleSet &P_target)
Definition: StressPBC.cpp:113
SymTensor< RealType, OHMMS_DIM > evaluateKineticSymTensor(ParticleSet &P)
Definition: StressPBC.cpp:288
SymTensor< RealType, OHMMS_DIM > stress_eI_const
Definition: StressPBC.h:29
SymTensor< Real, OHMMS_DIM > stress_kin_
Definition: ForceBase.h:93
SymTensor< RealType, OHMMS_DIM > stress_ee_const
Definition: StressPBC.h:28
bool add_ion_ion_
Determines if ion-ion force will be added to electron-ion force in derived force estimators. If false, forces_ion_ion_=0.0.
Definition: ForceBase.h:84
ParticleSet & PtclTarg
source particle set
Definition: StressPBC.h:35
SymTensor< RealType, OHMMS_DIM > evaluateSR_AA(ParticleSet &P, int itabSelf)
Definition: StressPBC.cpp:131
SymTensor< RealType, OHMMS_DIM > evaluateLR_AB(ParticleSet &P)
Definition: StressPBC.cpp:93
QMCTraits::RealType RealType
SymTensor< Real, OHMMS_DIM > stress_ion_ion_
Definition: ForceBase.h:90
SymTensor< Real, OHMMS_DIM > stress_
Definition: ForceBase.h:94
SymTensor< RealType, OHMMS_DIM > evaluateLR_AA(ParticleSet &P)
Definition: StressPBC.cpp:151
SymTensor< Real, OHMMS_DIM > stress_ei_
Definition: ForceBase.h:92
const int ee_table_index
e-e table ID
Definition: StressPBC.h:42

◆ evaluateKineticSymTensor()

SymTensor< StressPBC::RealType, OHMMS_DIM > evaluateKineticSymTensor ( ParticleSet P)

Definition at line 288 of file StressPBC.cpp.

References TrialWaveFunction::evaluateHessian(), ParticleSet::G, ParticleSet::getTotalNum(), ParticleSet::Mass, OHMMS_DIM, qmcplusplus::outerProduct(), and StressPBC::Psi.

Referenced by StressPBC::evaluate().

289 {
290  WaveFunctionComponent::HessVector grad_grad_psi;
291  Psi.evaluateHessian(P, grad_grad_psi);
292  SymTensor<RealType, OHMMS_DIM> kinetic_tensor;
293  Tensor<ComplexType, OHMMS_DIM> complex_ktensor;
294 
295  for (int iat = 0; iat < P.getTotalNum(); iat++)
296  {
297  const RealType minv(1.0 / P.Mass[iat]);
298  complex_ktensor += outerProduct(P.G[iat], P.G[iat]) * static_cast<ParticleSet::SingleParticleValue>(minv);
299  complex_ktensor += grad_grad_psi[iat] * minv;
300  }
301 
302  for (int i = 0; i < OHMMS_DIM; i++)
303  for (int j = i; j < OHMMS_DIM; j++)
304  {
305  kinetic_tensor(i, j) = complex_ktensor(i, j).real();
306  }
307  return kinetic_tensor;
308 }
void evaluateHessian(ParticleSet &P, HessVector &all_grad_grad_psi)
evaluate the hessian w.r.t.
QTFull::ValueType SingleParticleValue
Definition: Configuration.h:97
#define OHMMS_DIM
Definition: config.h:64
Tensor< typename BinaryReturn< T1, T2, OpMultiply >::Type_t, D > outerProduct(const TinyVector< T1, D > &lhs, const TinyVector< T2, D > &rhs)
Definition: TinyVector.h:211
TrialWaveFunction & Psi
Definition: StressPBC.h:32
QMCTraits::RealType RealType
OrbitalSetTraits< ValueType >::HessVector HessVector

◆ evaluateLR_AA()

SymTensor< StressPBC::RealType, OHMMS_DIM > evaluateLR_AA ( ParticleSet P)

Definition at line 151 of file StressPBC.cpp.

References StressPBC::AA, SpeciesSet::getAttribute(), ParticleSet::getSimulationCell(), ParticleSet::getSK(), ParticleSet::getSpeciesSet(), ParticleSet::groupsize(), and SpeciesSet::TotalNum.

Referenced by StressPBC::CalculateIonIonStress(), and StressPBC::evaluate().

152 {
153  int NumSpecies = P.getSpeciesSet().TotalNum;
154  SymTensor<RealType, OHMMS_DIM> stress_aa;
155  const StructFact& PtclRhoK(P.getSK());
156  int ChargeAttribIndx = P.getSpeciesSet().getAttribute("charge");
157 
158  std::vector<int> NofSpecies;
159  std::vector<int> Zmyspec;
160  NofSpecies.resize(NumSpecies);
161  Zmyspec.resize(NumSpecies);
162 
163  for (int spec = 0; spec < NumSpecies; spec++)
164  {
165  Zmyspec[spec] = P.getSpeciesSet()(ChargeAttribIndx, spec);
166  NofSpecies[spec] = P.groupsize(spec);
167  }
168 
169  SymTensor<RealType, OHMMS_DIM> temp;
170  for (int spec1 = 0; spec1 < NumSpecies; spec1++)
171  {
172  RealType Z1 = Zmyspec[spec1];
173  for (int spec2 = spec1; spec2 < NumSpecies; spec2++)
174  {
175  SymTensor<RealType, OHMMS_DIM> temp =
176  AA->evaluateStress(P.getSimulationCell().getKLists().kshell, PtclRhoK.rhok_r[spec1], PtclRhoK.rhok_i[spec1],
177  PtclRhoK.rhok_r[spec2], PtclRhoK.rhok_i[spec2]);
178  if (spec2 == spec1)
179  temp *= 0.5;
180  stress_aa += Z1 * Zmyspec[spec2] * temp;
181  } //spec2
182  } //spec1
183 
184  return stress_aa;
185 }
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
QMCTraits::RealType RealType

◆ evaluateLR_AB()

SymTensor< StressPBC::RealType, OHMMS_DIM > evaluateLR_AB ( ParticleSet P)

Definition at line 93 of file StressPBC.cpp.

References StressPBC::AA, ParticleSet::getSimulationCell(), ParticleSet::getSK(), StressPBC::NumSpeciesA, StressPBC::NumSpeciesB, StressPBC::PtclA, StressPBC::Qspec, and StressPBC::Zspec.

Referenced by StressPBC::evaluate().

94 {
95  SymTensor<RealType, OHMMS_DIM> res = 0.0;
96  const StructFact& RhoKA(PtclA.getSK());
97  const StructFact& RhoKB(P.getSK());
98 
99  for (int i = 0; i < NumSpeciesA; i++)
100  {
101  SymTensor<RealType, OHMMS_DIM> esum;
102  esum = 0.0;
103  for (int j = 0; j < NumSpeciesB; j++)
104  esum += Qspec[j] *
105  AA->evaluateStress(P.getSimulationCell().getKLists().kshell, RhoKA.rhok_r[i], RhoKA.rhok_i[i],
106  RhoKB.rhok_r[j], RhoKB.rhok_i[j]);
107  res += Zspec[i] * esum;
108  }
109 
110  return res;
111 }
int NumSpeciesB
number of species of B particle set
Definition: StressPBC.h:47
int NumSpeciesA
number of species of A particle set
Definition: StressPBC.h:45
ParticleSet & PtclA
Definition: StressPBC.h:36
std::vector< RealType > Zspec
Zspec[spec] charge for the spec-th species of A.
Definition: StressPBC.h:62
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
const StructFact & getSK() const
return Structure Factor
Definition: ParticleSet.h:216
std::vector< RealType > Qspec
Qspec[spec] charge for the spec-th species of B.
Definition: StressPBC.h:64

◆ evaluateSR_AA()

SymTensor< StressPBC::RealType, OHMMS_DIM > evaluateSR_AA ( ParticleSet P,
int  itabSelf 
)

Definition at line 131 of file StressPBC.cpp.

References StressPBC::AA, ParticleSet::getDistTableAA(), StressPBC::NptclB, and ParticleSet::Z.

Referenced by StressPBC::CalculateIonIonStress(), and StressPBC::evaluate().

132 {
133  const auto& d_aa = P.getDistTableAA(itabSelf);
134 
135  SymTensor<RealType, OHMMS_DIM> stress_aa;
136  for (int ipart = 0; ipart < NptclB; ipart++)
137  {
138  SymTensor<RealType, OHMMS_DIM> esum = 0.0;
139  const auto& drijs = d_aa.getDisplRow(ipart);
140  const auto& rijs = d_aa.getDistRow(ipart);
141  for (int jpart = 0; jpart < ipart; jpart++)
142  {
143  esum += P.Z[jpart] * AA->evaluateSR_dstrain(drijs[jpart], rijs[jpart]);
144  }
145  stress_aa += P.Z[ipart] * esum;
146  }
147 
148  return stress_aa;
149 }
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
int NptclB
number of particles of B (quantum, e.g. electrons)
Definition: StressPBC.h:51

◆ evaluateSR_AB()

SymTensor< StressPBC::RealType, OHMMS_DIM > evaluateSR_AB ( ParticleSet P_target)

Definition at line 113 of file StressPBC.cpp.

References StressPBC::AA, qmcplusplus::Units::charge::e, StressPBC::ei_table_index, ParticleSet::getDistTableAB(), StressPBC::NptclA, StressPBC::NptclB, StressPBC::Qat, and StressPBC::Zat.

Referenced by StressPBC::evaluate().

114 {
115  const auto& d_ab = P.getDistTableAB(ei_table_index);
116  SymTensor<RealType, OHMMS_DIM> res = 0.0;
117  //Loop over distinct eln-ion pairs
118  for (int jpart = 0; jpart < NptclB; jpart++)
119  {
120  const auto& drijs = d_ab.getDisplRow(jpart);
121  const auto& rijs = d_ab.getDistRow(jpart);
122  const RealType e = Qat[jpart];
123  for (int iat = 0; iat < NptclA; iat++)
124  {
125  res += Zat[iat] * e * AA->evaluateSR_dstrain(drijs[iat], rijs[iat]);
126  }
127  }
128  return res;
129 }
int NptclA
number of particles of A (classical, e.g. ions)
Definition: StressPBC.h:49
std::vector< RealType > Zat
Zat[iat] charge for the iat-th particle of A.
Definition: StressPBC.h:58
std::vector< RealType > Qat
Qat[iat] charge for the iat-th particle of B.
Definition: StressPBC.h:60
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
QMCTraits::RealType RealType
int NptclB
number of particles of B (quantum, e.g. electrons)
Definition: StressPBC.h:51
const int ei_table_index
locator of the distance table
Definition: StressPBC.h:40

◆ get()

bool get ( std::ostream &  os) const
inlineoverridevirtual

write about the class

Implements OperatorBase.

Definition at line 99 of file StressPBC.h.

References ForceBase::pair_name_.

100  {
101  os << "Ceperley Force Estimator Hamiltonian: " << pair_name_;
102  return true;
103  }
std::string pair_name_
Definition: ForceBase.h:97

◆ getClassName()

std::string getClassName ( ) const
inlineoverridevirtual

return class name

Implements OperatorBase.

Definition at line 69 of file StressPBC.h.

69 { return "StressPBC"; }

◆ initBreakup()

void initBreakup ( ParticleSet P)

Definition at line 56 of file StressPBC.cpp.

References StressPBC::AA, SpeciesSet::addAttribute(), qmcplusplus::for(), LRCoulombSingleton::getDerivHandler(), ParticleSet::getSpeciesSet(), ParticleSet::getTotalNum(), ParticleSet::GroupID, ParticleSet::groupsize(), StressPBC::NofSpeciesA, StressPBC::NofSpeciesB, StressPBC::NptclA, StressPBC::NptclB, StressPBC::NumSpeciesA, StressPBC::NumSpeciesB, StressPBC::PtclA, StressPBC::Qat, StressPBC::Qspec, StressPBC::Zat, and StressPBC::Zspec.

Referenced by StressPBC::StressPBC().

57 {
58  SpeciesSet& tspeciesA(PtclA.getSpeciesSet());
59  SpeciesSet& tspeciesB(P.getSpeciesSet());
60  int ChargeAttribIndxA = tspeciesA.addAttribute("charge");
61  int ChargeAttribIndxB = tspeciesB.addAttribute("charge");
63  NptclB = P.getTotalNum();
64  NumSpeciesA = tspeciesA.TotalNum;
65  NumSpeciesB = tspeciesB.TotalNum;
66  //Store information about charges and number of each species
67  Zat.resize(NptclA);
68  Zspec.resize(NumSpeciesA);
69  Qat.resize(NptclB);
70  Qspec.resize(NumSpeciesB);
71  NofSpeciesA.resize(NumSpeciesA);
72  NofSpeciesB.resize(NumSpeciesB);
73  for (int spec = 0; spec < NumSpeciesA; spec++)
74  {
75  Zspec[spec] = tspeciesA(ChargeAttribIndxA, spec);
76  NofSpeciesA[spec] = PtclA.groupsize(spec);
77  }
78  for (int spec = 0; spec < NumSpeciesB; spec++)
79  {
80  Qspec[spec] = tspeciesB(ChargeAttribIndxB, spec);
81  NofSpeciesB[spec] = P.groupsize(spec);
82  }
83 
84  for (int spec = 0; spec < NumSpeciesA; spec++) {}
85  for (int iat = 0; iat < NptclA; iat++)
86  Zat[iat] = Zspec[PtclA.GroupID[iat]];
87  for (int iat = 0; iat < NptclB; iat++)
88  Qat[iat] = Qspec[P.GroupID[iat]];
89 
91 }
static std::unique_ptr< LRHandlerType > getDerivHandler(ParticleSet &ref)
This returns a force/stress optimized LR handler. If non existent, it creates one.
int NumSpeciesB
number of species of B particle set
Definition: StressPBC.h:47
size_t getTotalNum() const
Definition: ParticleSet.h:493
std::vector< int > NofSpeciesA
number of particles per species of A
Definition: StressPBC.h:54
int NptclA
number of particles of A (classical, e.g. ions)
Definition: StressPBC.h:49
ParticleIndex GroupID
Species ID.
Definition: ParticleSet.h:77
for(int i=0;i< size_test;++i) CHECK(Approx(gauss_random_vals[offset_for_rs+i])
int NumSpeciesA
number of species of A particle set
Definition: StressPBC.h:45
std::vector< RealType > Zat
Zat[iat] charge for the iat-th particle of A.
Definition: StressPBC.h:58
ParticleSet & PtclA
Definition: StressPBC.h:36
std::vector< RealType > Qat
Qat[iat] charge for the iat-th particle of B.
Definition: StressPBC.h:60
std::vector< RealType > Zspec
Zspec[spec] charge for the spec-th species of A.
Definition: StressPBC.h:62
std::unique_ptr< LRHandlerType > AA
long-range Handler
Definition: StressPBC.h:38
int groupsize(int igroup) const
return the size of a group
Definition: ParticleSet.h:527
std::vector< RealType > Qspec
Qspec[spec] charge for the spec-th species of B.
Definition: StressPBC.h:64
std::vector< int > NofSpeciesB
number of particles per species of B
Definition: StressPBC.h:56
SpeciesSet & getSpeciesSet()
retrun the SpeciesSet of this particle set
Definition: ParticleSet.h:231
int NptclB
number of particles of B (quantum, e.g. electrons)
Definition: StressPBC.h:51

◆ makeClone()

std::unique_ptr< OperatorBase > makeClone ( ParticleSet qp,
TrialWaveFunction psi 
)
finalvirtual

Implements OperatorBase.

Definition at line 322 of file StressPBC.cpp.

References ForceBase::add_ion_ion_, StressPBC::firstTimeStress, StressPBC::PtclA, StressPBC::stress_ee_const, StressPBC::stress_eI_const, and ForceBase::stress_ion_ion_.

323 {
324  std::unique_ptr<StressPBC> tmp = std::make_unique<StressPBC>(PtclA, qp, psi);
325  tmp->firstTimeStress = firstTimeStress;
326  tmp->stress_ion_ion_ = stress_ion_ion_;
327  tmp->stress_ee_const = stress_ee_const;
328  tmp->stress_eI_const = stress_eI_const;
329  tmp->add_ion_ion_ = add_ion_ion_;
330  return tmp;
331 }
SymTensor< RealType, OHMMS_DIM > stress_eI_const
Definition: StressPBC.h:29
SymTensor< RealType, OHMMS_DIM > stress_ee_const
Definition: StressPBC.h:28
bool add_ion_ion_
Determines if ion-ion force will be added to electron-ion force in derived force estimators. If false, forces_ion_ion_=0.0.
Definition: ForceBase.h:84
ParticleSet & PtclA
Definition: StressPBC.h:36
SymTensor< Real, OHMMS_DIM > stress_ion_ion_
Definition: ForceBase.h:90

◆ put()

bool put ( xmlNodePtr  cur)
overridevirtual

Read the input parameter.

Parameters
curxml node for a OperatorBase object

Implements OperatorBase.

Definition at line 310 of file StressPBC.cpp.

References OhmmsAttributeSet::add(), ForceBase::add_ion_ion_, qmcplusplus::app_log(), ForceBase::prefix_, and OhmmsAttributeSet::put().

311 {
312  std::string ionionforce("yes");
313  OhmmsAttributeSet attr;
314  attr.add(prefix_, "name");
315  attr.add(ionionforce, "add_ion_ion_");
316  attr.put(cur);
317  add_ion_ion_ = (ionionforce == "yes") || (ionionforce == "true");
318  app_log() << "add ion-ion stress = " << add_ion_ion_ << std::endl;
319  return true;
320 }
std::ostream & app_log()
Definition: OutputManager.h:65
bool put(xmlNodePtr cur)
assign attributes to the set
Definition: AttributeSet.h:55
std::string prefix_
Definition: ForceBase.h:96
bool add_ion_ion_
Determines if ion-ion force will be added to electron-ion force in derived force estimators. If false, forces_ion_ion_=0.0.
Definition: ForceBase.h:84
class to handle a set of attributes of an xmlNode
Definition: AttributeSet.h:24
void add(PDT &aparam, const std::string &aname, std::vector< PDT > candidate_values={}, TagStatus status=TagStatus::OPTIONAL)
add a new attribute
Definition: AttributeSet.h:42

◆ registerObservables()

void registerObservables ( std::vector< ObservableHelper > &  h5desc,
hdf_archive file 
) const
inlineoverridevirtual

add to observable descriptor for hdf5 The default implementation is to register a scalar for this->value_

Parameters
h5desccontains a set of hdf5 descriptors for a scalar observable
gidhdf5 group to which the observables belong

Reimplemented from OperatorBase.

Definition at line 84 of file StressPBC.h.

References ForceBase::registerObservablesF().

85  {
86  registerObservablesF(h5list, file);
87  }
void registerObservablesF(std::vector< ObservableHelper > &h5list, hdf_archive &file) const
Definition: ForceBase.cpp:75

◆ resetTargetParticleSet()

void resetTargetParticleSet ( ParticleSet P)
inlineoverridevirtual

Reset the data with the target ParticleSet.

Parameters
Pnew target ParticleSet

Implements OperatorBase.

Definition at line 93 of file StressPBC.h.

93 {}

◆ setObservables()

void setObservables ( PropertySetType plist)
inlineoverridevirtual

Set the values evaluated by this object to plist Default implementation is to assign Value which is updated by evaluate function using my_index_.

Parameters
plistRecordNameProperty

Reimplemented from OperatorBase.

Definition at line 91 of file StressPBC.h.

References ForceBase::setObservablesStress().

91 { setObservablesStress(plist); }
void setObservablesStress(QMCTraits::PropertySetType &plist)
Definition: ForceBase.cpp:99

◆ setParticlePropertyList()

void setParticlePropertyList ( PropertySetType plist,
int  offset 
)
inlineoverridevirtual

Reimplemented from OperatorBase.

Definition at line 95 of file StressPBC.h.

References ForceBase::setParticleSetStress().

95 { setParticleSetStress(plist, offset); }
void setParticleSetStress(QMCTraits::PropertySetType &plist, int offset)
Definition: ForceBase.cpp:126

Member Data Documentation

◆ AA

◆ ee_table_index

const int ee_table_index

e-e table ID

Definition at line 42 of file StressPBC.h.

Referenced by StressPBC::evaluate().

◆ ei_table_index

const int ei_table_index

locator of the distance table

Definition at line 40 of file StressPBC.h.

Referenced by StressPBC::evaluateSR_AB().

◆ firstTimeStress

bool firstTimeStress

Definition at line 66 of file StressPBC.h.

Referenced by StressPBC::makeClone(), and StressPBC::StressPBC().

◆ ii_table_index

const int ii_table_index

Definition at line 43 of file StressPBC.h.

Referenced by StressPBC::CalculateIonIonStress().

◆ NofSpeciesA

std::vector<int> NofSpeciesA

number of particles per species of A

Definition at line 54 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), and StressPBC::initBreakup().

◆ NofSpeciesB

std::vector<int> NofSpeciesB

number of particles per species of B

Definition at line 56 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), and StressPBC::initBreakup().

◆ NptclA

int NptclA

number of particles of A (classical, e.g. ions)

Definition at line 49 of file StressPBC.h.

Referenced by StressPBC::evaluateSR_AB(), and StressPBC::initBreakup().

◆ NptclB

int NptclB

number of particles of B (quantum, e.g. electrons)

Definition at line 51 of file StressPBC.h.

Referenced by StressPBC::evaluateSR_AA(), StressPBC::evaluateSR_AB(), and StressPBC::initBreakup().

◆ NumSpeciesA

int NumSpeciesA

number of species of A particle set

Definition at line 45 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateLR_AB(), and StressPBC::initBreakup().

◆ NumSpeciesB

int NumSpeciesB

number of species of B particle set

Definition at line 47 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateLR_AB(), and StressPBC::initBreakup().

◆ Psi

Definition at line 32 of file StressPBC.h.

Referenced by StressPBC::evaluateKineticSymTensor().

◆ PtclA

◆ PtclTarg

ParticleSet& PtclTarg

◆ Qat

std::vector<RealType> Qat

Qat[iat] charge for the iat-th particle of B.

Definition at line 60 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateSR_AB(), and StressPBC::initBreakup().

◆ Qspec

std::vector<RealType> Qspec

Qspec[spec] charge for the spec-th species of B.

Definition at line 64 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateLR_AB(), and StressPBC::initBreakup().

◆ stress_ee_const

◆ stress_eI_const

◆ Zat

std::vector<RealType> Zat

Zat[iat] charge for the iat-th particle of A.

Definition at line 58 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateSR_AB(), and StressPBC::initBreakup().

◆ Zspec

std::vector<RealType> Zspec

Zspec[spec] charge for the spec-th species of A.

Definition at line 62 of file StressPBC.h.

Referenced by StressPBC::evalConsts_AB(), StressPBC::evaluateLR_AB(), and StressPBC::initBreakup().


The documentation for this struct was generated from the following files: