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: Mark Dewing, markdewing@gmail.com, University of Illinois at Urbana-Champaign
8 //
9 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
10 //////////////////////////////////////////////////////////////////////////////////////
11 
12 
13 #ifndef QMCPLUSPLUS_CONSTANTORBITAL_H
14 #define QMCPLUSPLUS_CONSTANTORBITAL_H
15 
16 #include "QMCWaveFunctions/WaveFunctionComponent.h"
17 
18 namespace qmcplusplus
19 {
20 class ConstantOrbital : public WaveFunctionComponent
21 {
22 public:
checkInVariables(opt_variables_type & active)23   virtual void checkInVariables(opt_variables_type& active) override {}
checkOutVariables(const opt_variables_type & active)24   virtual void checkOutVariables(const opt_variables_type& active) override {}
resetParameters(const opt_variables_type & active)25   virtual void resetParameters(const opt_variables_type& active) override {}
reportStatus(std::ostream & os)26   virtual void reportStatus(std::ostream& os) override {}
27 
28   PsiValueType FakeGradRatio;
29 
ConstantOrbital()30   ConstantOrbital() : WaveFunctionComponent("ConstantOrbital"), FakeGradRatio(1.0) {}
31 
evaluateLog(const ParticleSet & P,ParticleSet::ParticleGradient_t & G,ParticleSet::ParticleLaplacian_t & L)32   virtual LogValueType evaluateLog(const ParticleSet& P,
33                                    ParticleSet::ParticleGradient_t& G,
34                                    ParticleSet::ParticleLaplacian_t& L) override
35   {
36     G = 0.0;
37     L = 0.0;
38     return 0.0;
39   }
40 
41   virtual void acceptMove(ParticleSet& P, int iat, bool safe_to_delay = false) override {}
42 
restore(int iat)43   virtual void restore(int iat) override {}
44 
ratio(ParticleSet & P,int iat)45   virtual PsiValueType ratio(ParticleSet& P, int iat) override { return 1.0; }
46 
evalGrad(ParticleSet & P,int iat)47   virtual GradType evalGrad(ParticleSet& P, int iat) override { return GradType(0.0); }
48 
ratioGrad(ParticleSet & P,int iat,GradType & grad_iat)49   virtual PsiValueType ratioGrad(ParticleSet& P, int iat, GradType& grad_iat) override { return FakeGradRatio; }
50 
registerData(ParticleSet & P,WFBufferType & buf)51   virtual void registerData(ParticleSet& P, WFBufferType& buf) override {}
52 
53   virtual LogValueType updateBuffer(ParticleSet& P, WFBufferType& buf, bool fromscratch = false) override
54   {
55     return 0.0;
56   }
57 
copyFromBuffer(ParticleSet & P,WFBufferType & buf)58   virtual void copyFromBuffer(ParticleSet& P, WFBufferType& buf) override {}
59 
makeClone(ParticleSet & tpq)60   virtual WaveFunctionComponentPtr makeClone(ParticleSet& tpq) const override { return new ConstantOrbital(); }
61 };
62 
63 
64 } // namespace qmcplusplus
65 #endif
66