MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
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
37namespace 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
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:
This class is used to contain information about classes.
Definition class.h:147
static std::ostream & out0()
Return an ostream that writes from node 0.
ManyBodyWavefunction is a Wavefunction obtained from a reference OneBodyWavefunction (its orbitals or...
Definition nbwfn.h:46
void print(std::ostream &o=ExEnv::out0()) const
Print information about the object.
void set_desired_value_accuracy(double acc)
Set the accuracy to which the value is to be computed.
void purge()
overloads MolecularEnergy::purge()
void obsolete()
Marks all results as being out of date.
ManyBodyWavefunction(const Ref< KeyVal > &kv)
A KeyVal constructor is used to generate a ManyBodyWavefunction object from a KeyVal object.
void symmetry_changed()
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnerg...
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
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual double energy()
A wrapper around value();.
A template class that maintains references counts.
Definition ref.h:361
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition wfn.h:52
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

Generated at Wed Sep 25 2024 02:45:30 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.