QMCPACK
GridExternalPotential.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) 2020 QMCPACK developers.
6 //
7 // File developed by: Jaron T. Krogel, krogeljt@ornl.gov, Oak Ridge National Laboratory
8 // Kevin Ryczko, kryczko@uottawa.ca, University of Ottawa
9 // Mark Dewing, mdewing@anl.gov, Argonne National Laboratory
10 //
11 // File created by: Mark Dewing, mdewing@anl.gov, Argonne National Laboratory
12 //////////////////////////////////////////////////////////////////////////////////////
13 
14 
15 #ifndef QMCPLUSPLUS_GRID_EXTERNAL_POTENTIAL_H
16 #define QMCPLUSPLUS_GRID_EXTERNAL_POTENTIAL_H
17 
18 #include <memory>
20 #include "einspline/bspline.h"
21 
22 
23 namespace qmcplusplus
24 {
25 /** This class allows one to read in an arbitrary external potential
26  */
28 {
29 public:
31 
32  std::string getClassName() const override { return "GridExternalPotential"; }
33 
34  void resetTargetParticleSet(ParticleSet& P) override {}
35 
36  //standard interface functions
37  bool put(xmlNodePtr cur) override;
38  bool get(std::ostream& os) const override;
39  std::unique_ptr<OperatorBase> makeClone(ParticleSet& P, TrialWaveFunction& psi) final;
40 
41  //functions for physical (hamiltonian component) estimator
42  Return_t evaluate(ParticleSet& P) override;
43  Return_t evaluate(ParticleSet& P, std::vector<NonLocalData>& Txy);
44 
45 #if !defined(REMOVE_TRACEMANAGER)
46  //traces interface
47  void contributeParticleQuantities() override;
48 
49  void checkoutParticleQuantities(TraceManager& tm) override;
50 
51  void deleteParticleQuantities() override;
52 
53 private:
55 #endif
56 
57 private:
58  const ParticleSet& ps_;
59 
60  std::shared_ptr<UBspline_3d_d> spline_data_;
61 
62 #if !defined(REMOVE_TRACEMANAGER)
63  ///single particle trace sample array
65 #endif
66 };
67 } // namespace qmcplusplus
68 #endif
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
Return_t evaluate(ParticleSet &P) override
Evaluate the local energy contribution of this component.
Array< TraceReal, 1 > * v_sample_
single particle trace sample array
Declaration of OperatorBase.
Specialized paritlce class for atomistic simulations.
Definition: ParticleSet.h:55
std::unique_ptr< OperatorBase > makeClone(ParticleSet &P, TrialWaveFunction &psi) final
void checkoutParticleQuantities(TraceManager &tm) override
This class allows one to read in an arbitrary external potential.
An abstract class for Local Energy operators.
Definition: OperatorBase.h:59
bool put(xmlNodePtr cur) override
Read the input parameter.
Class to represent a many-body trial wave function.
std::string getClassName() const override
return class name
void resetTargetParticleSet(ParticleSet &P) override
Reset the data with the target ParticleSet.
std::shared_ptr< UBspline_3d_d > spline_data_
BareKineticEnergy::Return_t Return_t