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