QMCPACK
JastrowBuilder.h
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2016 Jeongnim Kim and QMCPACK developers.
6 //
7 // File developed by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
8 // Ken Esler, kpesler@gmail.com, University of Illinois at Urbana-Champaign
9 // Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
10 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
11 //
12 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
13 //////////////////////////////////////////////////////////////////////////////////////
14 
15 
16 #ifndef QMCPLUSPLUS_GENERALIZED_JASTROWBUILDER_H
17 #define QMCPLUSPLUS_GENERALIZED_JASTROWBUILDER_H
19 
20 namespace qmcplusplus
21 {
22 class OrbitalConstraintsBase;
23 
24 /** Jastrow Jastrow Builder with constraints
25  */
27 {
28 public:
30 
31  std::unique_ptr<WaveFunctionComponent> buildComponent(xmlNodePtr cur) override;
32 
33 private:
34  ///particleset pool to get ParticleSet other than the target
35  const PSetMap& ptclPool;
36  ///index for the jastrow type: 1, 2, 3
38  /// \xmla{jastrow,name}
39  std::string nameOpt;
40  /// \xmla{jastrow,type}
41  std::string typeOpt;
42  /// \xmla{jastrow,function}
43  std::string funcOpt;
44  /// \xmla{jastrow,spin}
45  std::string spinOpt;
46  /// \xmla{jastrow,transform}
47  std::string transformOpt;
48  /// \xmla{jastrow,source}
49  std::string sourceOpt;
50  ///reset the options
51  void resetOptions();
52  /// build one-body term
53  std::unique_ptr<WaveFunctionComponent> buildOneBody(xmlNodePtr cur);
54  /// build two-body term
55  std::unique_ptr<WaveFunctionComponent> buildTwoBody(xmlNodePtr cur);
56  /// build electron-electron ion term
57  std::unique_ptr<WaveFunctionComponent> build_eeI(xmlNodePtr cur);
58  /// build k-Space term
59  std::unique_ptr<WaveFunctionComponent> buildkSpace(xmlNodePtr cur);
60  /// build number-counting term
61  std::unique_ptr<WaveFunctionComponent> buildCounting(xmlNodePtr cur);
62 };
63 
64 } // namespace qmcplusplus
65 #endif
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
An abstract class for wave function builders.
std::unique_ptr< WaveFunctionComponent > buildCounting(xmlNodePtr cur)
build number-counting term
Jastrow Jastrow Builder with constraints.
std::map< std::string, const std::unique_ptr< ParticleSet > > PSetMap
Wrapping information on parallelism.
Definition: Communicate.h:68
std::string spinOpt
<jastrow spin="...">
Specialized paritlce class for atomistic simulations.
Definition: ParticleSet.h:55
std::unique_ptr< WaveFunctionComponent > build_eeI(xmlNodePtr cur)
build electron-electron ion term
std::unique_ptr< WaveFunctionComponent > buildTwoBody(xmlNodePtr cur)
build two-body term
std::string sourceOpt
<jastrow source="...">
std::unique_ptr< WaveFunctionComponent > buildOneBody(xmlNodePtr cur)
build one-body term
std::unique_ptr< WaveFunctionComponent > buildComponent(xmlNodePtr cur) override
process a xml node at cur
void resetOptions()
reset the options
std::string funcOpt
<jastrow function="...">
const PSetMap & ptclPool
particleset pool to get ParticleSet other than the target
std::string transformOpt
<jastrow transform="...">
int JastrowType
index for the jastrow type: 1, 2, 3
declaration of the base class for many-body wavefunction.
std::unique_ptr< WaveFunctionComponent > buildkSpace(xmlNodePtr cur)
build k-Space term
std::string typeOpt
<jastrow type="...">
std::string nameOpt
<jastrow name="...">
JastrowBuilder(Communicate *comm, ParticleSet &p, const PSetMap &psets)