QMCPACK
PotentialBase.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: Paul R. C. Kent, kentpr@ornl.gov, Oak Ridge National Laboratory
8 //
9 // File created by: Paul R. C. Kent, kentpr@ornl.gov, Oak Ridge National Laboratory
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 // http://pathintegrals.info //
14 /////////////////////////////////////////////////////////////
15 
16 #ifndef POTENTIAL_BASE_H
17 #define POTENTIAL_BASE_H
18 
19 #include "IO.h"
20 using namespace IO;
21 
22 class Potential
23 {
24 public:
25  virtual ~Potential() = default;
26  // Optional member functions -- if you're not a pseudoHamiltonian,
27  // you do not need to define these
28  virtual bool IsPH();
29  virtual bool IsNonlocal() { return false; }
30  // Nonlocal version of functions
31  virtual double V(int l, double r);
32  virtual double dVdr(int l, double r);
33  virtual double d2Vdr2(int l, double r);
34  virtual bool NeedsRel();
35  virtual double GetCoreRadius() { return 0.0; }
36  virtual double A(double r) { return 1.0; }
37  virtual double B(double r) { return 1.0; }
38  virtual double dAdr(double r) { return 0.0; }
39  virtual double d2Adr2(double r) { return 0.0; }
40 
41  // Required member functions
42  virtual double V(double r) = 0;
43  virtual double dVdr(double r) = 0;
44  virtual double d2Vdr2(double r) = 0;
45  virtual void Write(IOSectionClass& out) = 0;
46  virtual void Read(IOSectionClass& in) = 0;
47  virtual double X_k(double rcut, double k) { return 0.0; }
48 };
49 
51 
52 #endif
virtual double B(double r)
Definition: PotentialBase.h:37
virtual double X_k(double rcut, double k)
Definition: PotentialBase.h:47
Definition: IO.h:24
virtual double A(double r)
Definition: PotentialBase.h:36
Potential * ReadPotential(IOSectionClass &in)
virtual double dAdr(double r)
Definition: PotentialBase.h:38
Wrapper class for IOTreeClass that gives a nearly identical interface as the OutputSectionClass.
Definition: IO.h:110
virtual double d2Adr2(double r)
Definition: PotentialBase.h:39
virtual bool IsNonlocal()
Definition: PotentialBase.h:29
virtual double GetCoreRadius()
Definition: PotentialBase.h:35