MPQC  2.3.1
psiwfn.h
1 
2 #ifdef __GNUC__
3 #pragma interface
4 #endif
5 
6 #ifndef _chemistry_qc_psi_psiwfn_h
7 #define _chemistry_qc_psi_psiwfn_h
8 
9 #include <chemistry/qc/wfn/wfn.h>
10 #include <chemistry/qc/psi/psiexenv.h>
11 
12 namespace sc {
13 
15 
21 
22  Ref<PsiExEnv> exenv_;
23 
24  int* read_occ(const Ref<KeyVal> &keyval, const char *name, int nirrep);
25 
26  protected:
27  int nirrep_;
28  int *docc_;
29  int *socc_;
30  int *frozen_docc_;
31  int *frozen_uocc_;
32  int multp_;
33  int charge_;
34  char *memory_;
36  virtual void write_input(int conv) =0;
37 
38  public:
55  ~PsiWavefunction();
56 
58 
61  virtual void write_basic_input(int conv);
62  void compute();
63  void print(std::ostream&o=ExEnv::out0()) const;
65  int nelectron();
66 
68  Ref<PsiExEnv> get_psi_exenv() const { return exenv_; };
70  Ref<PsiInput> get_psi_input() const { return exenv_->get_psi_input(); };
71 };
72 
75 
76 class PsiSCF: public PsiWavefunction {
77  public:
78  PsiSCF(const Ref<KeyVal>&);
79  PsiSCF(StateIn&);
80  ~PsiSCF();
82 
83  enum RefType {rhf, hsoshf, uhf};
85  virtual PsiSCF::RefType reftype() const =0;
86 };
87 
90 
91 class PsiCLHF: public PsiSCF {
92  protected:
93  void write_input(int conv);
94  public:
95  PsiCLHF(const Ref<KeyVal>&);
96  PsiCLHF(StateIn&);
97  ~PsiCLHF();
98 
99  void write_basic_input(int conv);
100  int spin_polarized() { return 0;};
101  int gradient_implemented() const { return 1;};
102  PsiSCF::RefType reftype() const { return rhf;};
103 };
104 
107 
108 class PsiHSOSHF: public PsiSCF {
109  protected:
110  void write_input(int conv);
111  public:
112  PsiHSOSHF(const Ref<KeyVal>&);
113  PsiHSOSHF(StateIn&);
114  ~PsiHSOSHF();
115 
116  void write_basic_input(int conv);
117  int spin_polarized() { return 0;};
118  int gradient_implemented() const { return 1;};
119  PsiSCF::RefType reftype() const { return hsoshf;};
120 };
121 
124 
125 class PsiUHF: public PsiSCF {
126  protected:
127  void write_input(int conv);
128  public:
129  PsiUHF(const Ref<KeyVal>&);
130  PsiUHF(StateIn&);
131  ~PsiUHF();
132 
133  void write_basic_input(int conv);
134  int spin_polarized() { return 1;};
135  int gradient_implemented() const { return 1;};
136  PsiSCF::RefType reftype() const { return uhf;};
137 };
138 
141 
142 class PsiCCSD: public PsiWavefunction {
143  Ref<PsiSCF> reference_;
144  protected:
145  void write_input(int conv);
146  public:
147  PsiCCSD(const Ref<KeyVal>&);
148  PsiCCSD(StateIn&);
149  ~PsiCCSD();
150  void save_data_state(StateOut&);
151  int spin_polarized() { return reference_->spin_polarized();};
152  int gradient_implemented() const;
153 };
154 
157 
158 class PsiCCSD_T: public PsiWavefunction {
159  Ref<PsiSCF> reference_;
160  protected:
161  void write_input(int conv);
162  public:
163  PsiCCSD_T(const Ref<KeyVal>&);
164  PsiCCSD_T(StateIn&);
165  ~PsiCCSD_T();
166 
167  void save_data_state(StateOut&);
168  int spin_polarized() { return reference_->spin_polarized();};
169  int gradient_implemented() const;
170 };
171 
172 }
173 
174 #endif
sc::PsiCLHF::write_basic_input
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
sc::PsiUHF::spin_polarized
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:134
sc::PsiCCSD
PsiCCSD is a concrete implementation of Psi CCSD wave function.
Definition: psiwfn.h:142
sc::PsiHSOSHF::write_input
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
sc::PsiWavefunction::PsiWavefunction
PsiWavefunction(const Ref< KeyVal > &)
The KeyVal constructor.
sc::PsiSCF::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::RefSymmSCMatrix
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:261
sc::PsiCLHF::spin_polarized
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:100
sc::Ref
A template class that maintains references counts.
Definition: ref.h:332
sc::PsiUHF::write_input
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
sc::PsiUHF::reftype
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:136
sc::PsiWavefunction
PsiWavefunction is an abstract base for all Psi wave functions.
Definition: psiwfn.h:20
sc::PsiCCSD_T::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::PsiCCSD::write_input
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
sc::Wavefunction
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:48
sc::PsiHSOSHF
PsiHSOSHF is a concrete implementation of Psi ROHF wave function.
Definition: psiwfn.h:108
sc::PsiCCSD_T
PsiCCSD_T is a concrete implementation of Psi CCSD(T) wave function.
Definition: psiwfn.h:158
sc::StateIn
Restores objects that derive from SavableState.
Definition: statein.h:70
sc::PsiCCSD_T::write_input
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
sc::PsiWavefunction::nelectron
int nelectron()
Returns the number of electrons.
sc::PsiUHF
PsiUHF is a concrete implementation of Psi UHF wave function.
Definition: psiwfn.h:125
sc::PsiSCF
PsiSCF is an abstract base for all Psi SCF wave functions.
Definition: psiwfn.h:76
sc::PsiCCSD::spin_polarized
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:151
sc::PsiWavefunction::print
void print(std::ostream &o=ExEnv::out0()) const
Print information about the object.
sc::PsiHSOSHF::reftype
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:119
sc::PsiUHF::write_basic_input
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
sc::StateOut
Serializes objects that derive from SavableState.
Definition: stateout.h:61
sc::PsiCLHF::reftype
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:102
sc::PsiWavefunction::write_basic_input
virtual void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
sc::PsiHSOSHF::spin_polarized
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:117
sc::PsiWavefunction::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::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc::PsiCCSD_T::spin_polarized
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:168
sc::PsiCLHF
PsiCLHF is a concrete implementation of Psi RHF wave function.
Definition: psiwfn.h:91
sc::PsiHSOSHF::write_basic_input
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
sc::PsiWavefunction::compute
void compute()
Recompute at least the results that have compute true and are not already computed.
sc::PsiWavefunction::get_psi_input
Ref< PsiInput > get_psi_input() const
Return an associated PsiInput object.
Definition: psiwfn.h:70
sc::PsiCCSD::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::PsiWavefunction::density
RefSymmSCMatrix density()
Returns the SO density.
sc::PsiCLHF::write_input
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
sc::PsiWavefunction::get_psi_exenv
Ref< PsiExEnv > get_psi_exenv() const
Return an associated PsiExEnv object.
Definition: psiwfn.h:68
sc::PsiSCF::reftype
virtual PsiSCF::RefType reftype() const =0
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
sc::PsiWavefunction::write_input
virtual void write_input(int conv)=0
Prepares a complete Psi input file. The input file is assumed to have been opened.

Generated at Sun Jan 26 2020 23:33:04 for MPQC 2.3.1 using the documentation package Doxygen 1.8.16.