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
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
PsiWavefunction is an abstract base for all Psi wave functions.
Definition: psiwfn.h:20
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
PsiCCSD_T is a concrete implementation of Psi CCSD(T) wave function.
Definition: psiwfn.h:158
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:134
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:136
Serializes objects that derive from SavableState.
Definition: stateout.h:61
PsiWavefunction(const Ref< KeyVal > &)
The KeyVal constructor.
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:100
RefSymmSCMatrix density()
Returns the SO density.
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:151
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
PsiHSOSHF is a concrete implementation of Psi ROHF wave function.
Definition: psiwfn.h:108
PsiCLHF is a concrete implementation of Psi RHF wave function.
Definition: psiwfn.h:91
A template class that maintains references counts.
Definition: ref.h:332
virtual PsiSCF::RefType reftype() const =0
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:117
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization. ...
Definition: matrix.h:261
int spin_polarized()
Return 1 if the alpha density is not equal to the beta density.
Definition: psiwfn.h:168
void print(std::ostream &o=ExEnv::out0()) const
Print information about the object.
virtual void write_input(int conv)=0
Prepares a complete Psi input file. The input file is assumed to have been opened.
void compute()
Recompute at least the results that have compute true and are not already computed.
Restores objects that derive from SavableState.
Definition: statein.h:70
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
Ref< PsiInput > get_psi_input() const
Return an associated PsiInput object.
Definition: psiwfn.h:70
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
int nelectron()
Returns the number of electrons.
static std::ostream & out0()
Return an ostream that writes from node 0.
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:48
PsiCCSD is a concrete implementation of Psi CCSD wave function.
Definition: psiwfn.h:142
void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
PsiUHF is a concrete implementation of Psi UHF wave function.
Definition: psiwfn.h:125
PsiSCF is an abstract base for all Psi SCF wave functions.
Definition: psiwfn.h:76
virtual void write_basic_input(int conv)
Writes out Psi input file entries specific to this PsiWavefunction.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:119
Ref< PsiExEnv > get_psi_exenv() const
Return an associated PsiExEnv object.
Definition: psiwfn.h:68
void write_input(int conv)
Prepares a complete Psi input file. The input file is assumed to have been opened.
PsiSCF::RefType reftype() const
Returns the PsiSCF::RefType of this particular Psi SCF wave function.
Definition: psiwfn.h:102
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...

Generated at Sat Sep 13 2014 21:22:34 for MPQC 2.3.1 using the documentation package Doxygen 1.8.7.