QMCPACK
SkAllEstimator.h
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////
2 // (c) Copyright 2008- by Jeongnim Kim
3 //////////////////////////////////////////////////////////////////
4 //////////////////////////////////////////////////////////////////
5 // National Center for Supercomputing Applications &
6 // Materials Computation Center
7 // University of Illinois, Urbana-Champaign
8 // Urbana, IL 61801
9 // e-mail: jnkim@ncsa.uiuc.edu
10 //
11 // Supported by
12 // National Center for Supercomputing Applications, UIUC
13 // Materials Computation Center, UIUC
14 //////////////////////////////////////////////////////////////////
15 // -*- C++ -*-
16 /** @file SkAllEstimator.h
17  * @brief Declare SkAllEstimator
18  */
19 #ifndef QMCPLUSPLUS_SK_ALL_ESTIMATOR_H
20 #define QMCPLUSPLUS_SK_ALL_ESTIMATOR_H
22 #include <vector>
23 namespace qmcplusplus
24 {
25 /** SkAllEstimator evaluate the structure factor of the target particleset
26  *
27  * <estimator name="sk" type="sk" debug="no"/>
28  */
30 {
31 public:
33 
34  std::string getClassName() const override { return "SkAllEstimator"; }
35  void resetTargetParticleSet(ParticleSet& P) override;
36 
37  Return_t evaluate(ParticleSet& P) override;
38 
39  void evaluateIonIon();
40 
41  void addObservables(PropertySetType& plist);
42  void addObservables(PropertySetType& plist, BufferType& collectables) override;
43  void registerCollectables(std::vector<ObservableHelper>& h5desc, hdf_archive& file) const override;
44  void setObservables(PropertySetType& plist) override;
45  void setParticlePropertyList(PropertySetType& plist, int offset) override;
46  bool put(xmlNodePtr cur) override;
47  bool get(std::ostream& os) const override;
48  std::unique_ptr<OperatorBase> makeClone(ParticleSet& qp, TrialWaveFunction& psi) final;
49 
50 protected:
51  // ParticleSet *sourcePtcl;
54  /** number of species */
58  /** number of kpoints */
59  unsigned int NumK;
60  /** number of kshells */
61  int MaxKshell;
62  /** normalization factor */
64  /** kshell counters */
65  std::vector<int> Kshell;
66  /** instantaneous structure factor */
67  std::vector<RealType> Kmag;
68  /** 1.0/degenracy for a kshell */
69  std::vector<RealType> OneOverDnk;
70  /** \f$rho_k = \sum_{\alpha} \rho_k^{\alpha} \f$ for species index \f$\alpha\f$ */
73  /** resize the internal data
74  *
75  * The argument list is not completed
76  */
77  void resize();
78 
79  bool hdf5_out;
80 };
81 
82 } // namespace qmcplusplus
83 #endif
std::vector< RealType > Kmag
instantaneous structure factor
void setParticlePropertyList(PropertySetType &plist, int offset) override
void resetTargetParticleSet(ParticleSet &P) override
Reset the data with the target ParticleSet.
Return_t evaluate(ParticleSet &P) override
Evaluate the local energy contribution of this component.
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
Declaration of OperatorBase.
std::vector< RealType > OneOverDnk
1.0/degenracy for a kshell
class to handle hdf file
Definition: hdf_archive.h:51
bool put(xmlNodePtr cur) override
Read the input parameter.
Vector< RealType > RhokTot_i
std::vector< int > Kshell
kshell counters
std::unique_ptr< OperatorBase > makeClone(ParticleSet &qp, TrialWaveFunction &psi) final
Specialized paritlce class for atomistic simulations.
Definition: ParticleSet.h:55
ParticleSet::Buffer_t BufferType
typedef for the serialized buffer
Definition: OperatorBase.h:75
void resize()
resize the internal data
void addObservables(PropertySetType &plist)
Vector< RealType > values
Vector< RealType > RhokTot_r
for species index
unsigned int NumK
number of kpoints
An abstract class for Local Energy operators.
Definition: OperatorBase.h:59
void setObservables(PropertySetType &plist) override
Set the values evaluated by this object to plist Default implementation is to assign Value which is u...
Class to represent a many-body trial wave function.
SkAllEstimator evaluate the structure factor of the target particleset.
int MaxKshell
number of kshells
int NumSpecies
number of species
std::string getClassName() const override
return class name
void registerCollectables(std::vector< ObservableHelper > &h5desc, hdf_archive &file) const override
SkAllEstimator(ParticleSet &ions, ParticleSet &elns)
RealType OneOverN
normalization factor
BareKineticEnergy::Return_t Return_t
RecordNamedProperty< FullPrecRealType > PropertySetType
define PropertyList_t
Definition: Configuration.h:69