MPQC 2.3.1

- Main Page
- Related Pages
- Classes
- Files

- File List

psiinput.h
1 /*
2 ** PSI Input Class
3 **
4 ** This helper class will set up input decks for the PSI suite of
5 ** ab initio quantum chemistry programs.
6 **
7 ** David Sherrill & Justin Fermann
8 ** Center for Computational Quantum Chemistry, University of Georgia
9 **
10 */
11
12 #ifdef __GNUG__
13 #pragma interface
14 #endif
15
16 #ifndef _chemistry_qc_psi_input_h
17 #define _chemistry_qc_psi_input_h
18
19 using namespace std;
20
21 #include <fstream>
22 #include <string>
23 #include<util/ref/ref.h>
24 #include<chemistry/molecule/molecule.h>
25 #include<chemistry/qc/basis/basis.h>
26
27 namespace sc {
28
29 class PsiExEnv;
30 class CorrelationTable;
31
34
35 class PsiInput: public RefCount {
36
37 string filename_;
38 std::ofstream file_;
39
40 int indentation_;
41
42 // No default constructor
43 PsiInput() {};
44
45 public:
46 PsiInput(const string& name);
47 ~PsiInput();
48 void open();
49 void close();
50 void print(std::ostream&);
51
52 void begin_section(const char * s);
53 void end_section();
54 void write_indent();
55 void incindent(int);
56 void decindent(int);
57 void write_comment(const char *);
58 void write_keyword(const char *, const char *);
59 void write_keyword(const char *, int);
60 void write_keyword(const char *, double);
61 void write_keyword_array(const char *, int, int *);
62 void write_keyword_array(const char *, int, double *);
63 void write_string(const char *);
64 void write_key_wq(const char *, const char *);
65
67 void write_basis(const Ref<GaussianBasisSet>&);
69 void write_basis_sets(const Ref<GaussianBasisSet>&);
70 void write_geom(const Ref<Molecule>&);
71
72 void write_defaults(const Ref<PsiExEnv>&, const char *dertype);
73 };
74
75 }
76
77 #endif