MPQC  3.0.0-alpha
nbwfn.h
1 //
2 // nbwfn.h
3 //
4 // Copyright (C) 2012 Edward Valeev
5 //
6 // Author: Edward Valeev <evaleev@vt.edu>
7 // Maintainer: EV
8 //
9 // This file is part of the SC Toolkit.
10 //
11 // The SC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The SC Toolkit is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifdef __GNUG__
29 //#pragma interface // LLVM, Intel also define __GNUG__
30 #endif
31 
32 #ifndef _mpqc_src_lib_chemistry_qc_nbody_nbwfn_h
33 #define _mpqc_src_lib_chemistry_qc_nbody_nbwfn_h
34 
35 #include <chemistry/qc/nbody/ref.h>
36 
37 namespace sc {
38 
41 
47  public:
70  virtual ~ManyBodyWavefunction();
72 
73  const Ref<WavefunctionWorld>& world() const { return world_; }
74  const Ref<RefWavefunction>& refwfn() const { return refwfn_; }
75 
76  double ref_energy() { return refwfn_->energy(); }
77  double corr_energy() {
78  return energy() - ref_energy();
79  }
80 
81  void print(std::ostream& o=ExEnv::out0()) const;
82 
84  void purge();
85  void obsolete();
86 
87  void symmetry_changed();
88  void set_desired_value_accuracy(double acc);
89 
92  static double ref_to_corr_acc() {
93  return 0.01; // reference need to compute 100 times more precisely than this object. totally empirical.
94  }
95 
96  private:
97  static ClassDesc class_desc_;
98 
100  Ref<RefWavefunction> refwfn_;
101  };
102 
104  // end of addtogroup ChemistryElectronicStructureNBody
105 
106 } // end of namespace sc
107 
108 #endif // end of header guard
109 
110 
111 // Local Variables:
112 // mode: c++
113 // c-file-style: "CLJ-CONDENSED"
114 // End:
sc::ManyBodyWavefunction
ManyBodyWavefunction is a Wavefunction obtained from a reference OneBodyWavefunction (its orbitals or...
Definition: nbwfn.h:46
sc::ManyBodyWavefunction::obsolete
void obsolete()
Marks all results as being out of date.
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::Wavefunction
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:52
sc::ManyBodyWavefunction::print
void print(std::ostream &o=ExEnv::out0()) const
Print information about the object.
sc::ManyBodyWavefunction::symmetry_changed
void symmetry_changed()
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnerg...
sc::StateIn
Definition: statein.h:79
sc::ClassDesc
This class is used to contain information about classes.
Definition: class.h:147
sc::ManyBodyWavefunction::set_desired_value_accuracy
void set_desired_value_accuracy(double acc)
Set the accuracy to which the value is to be computed.
sc::MolecularEnergy::energy
virtual double energy()
A wrapper around value();.
sc::ManyBodyWavefunction::save_data_state
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
sc::StateOut
Definition: stateout.h:71
sc::ManyBodyWavefunction::ManyBodyWavefunction
ManyBodyWavefunction(const Ref< KeyVal > &kv)
A KeyVal constructor is used to generate a ManyBodyWavefunction object from a KeyVal object.
sc::ManyBodyWavefunction::purge
void purge()
overloads MolecularEnergy::purge()
sc::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc::ManyBodyWavefunction::ref_to_corr_acc
static double ref_to_corr_acc()
specifies the ratio of the desired accuracy of RefWavefunction to the desired accuracy of this object
Definition: nbwfn.h:92
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:23:59 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.