QMCPACK
BackflowBuilder.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: Miguel Morales, moralessilva2@llnl.gov, Lawrence Livermore National Laboratory
8 // Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
9 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
10 //
11 // File created by: Miguel Morales, moralessilva2@llnl.gov, Lawrence Livermore National Laboratory
12 //////////////////////////////////////////////////////////////////////////////////////
13 
14 
15 #ifndef QMCPLUSPLUS_BACKFLOW_BUILDER_H
16 #define QMCPLUSPLUS_BACKFLOW_BUILDER_H
17 
18 #include <map>
19 #include <cmath>
20 #include "Configuration.h"
24 
25 namespace qmcplusplus
26 {
27 class BackflowTransformation;
28 class Backflow_ee_kSpace;
29 template<class T>
31 template<class FT>
32 class Backflow_ee;
33 
35 {
39  using PSetMap = std::map<std::string, const std::unique_ptr<ParticleSet>>;
40 
41 public:
42  BackflowBuilder(ParticleSet& p, const PSetMap& pool);
43 
44  std::unique_ptr<BackflowTransformation> buildBackflowTransformation(xmlNodePtr cur);
45 
47 
48 private:
50  const PSetMap& ptclPool;
51  bool IgnoreSpin;
55  bool OneBody;
56  bool TwoBody;
57 
59 
60  std::unique_ptr<BackflowFunctionBase> addOneBody(xmlNodePtr cur);
61 
62  std::unique_ptr<BackflowFunctionBase> addTwoBody(xmlNodePtr cur);
63 
64  std::unique_ptr<BackflowFunctionBase> addRPA(xmlNodePtr cur);
65 
67 
68  void makeLongRange_oneBody();
69 
70  void makeShortRange_twoBody(xmlNodePtr cur, Backflow_ee<BsplineFunctor<RealType>>* tbf, std::vector<int>& offsets);
71 
72  void makeLongRange_twoBody(xmlNodePtr cur, Backflow_ee_kSpace* tbf, std::vector<int>& offsets);
73 };
74 
75 } // namespace qmcplusplus
76 
77 #endif
BackflowFunctionBase::RealType RealType
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
BsplineFunctor class for the Jastrows REAL is the real type used by offload target, it is the correct type for the mw data pointers and is also used to coerce/implicitly convert the Real type inherited OptimizableFunctorBase into that buffer if offload is off this happens too but is just an implementation quirk.
std::unique_ptr< BackflowFunctionBase > addOneBody(xmlNodePtr cur)
std::unique_ptr< BackflowFunctionBase > addTwoBody(xmlNodePtr cur)
Decalaration of One-Dimesional grids.
std::map< std::string, const std::unique_ptr< ParticleSet > > PSetMap
Specialized paritlce class for atomistic simulations.
Definition: ParticleSet.h:55
std::unique_ptr< BackflowFunctionBase > addRPA(xmlNodePtr cur)
void makeShortRange_twoBody(xmlNodePtr cur, Backflow_ee< BsplineFunctor< RealType >> *tbf, std::vector< int > &offsets)
void makeLongRange_twoBody(xmlNodePtr cur, Backflow_ee_kSpace *tbf, std::vector< int > &offsets)
std::unique_ptr< BackflowTransformation > buildBackflowTransformation(xmlNodePtr cur)
BackflowBuilder(ParticleSet &p, const PSetMap &pool)
base class for LRHandlerTemp<FUNC,BASIS> and DummyLRHanlder<typename Func>
Definition: LRHandlerBase.h:30
Define LRHandlerBase and DummyLRHandler<typename Func>