[0b990d] | 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 |
|
---|
| 32 | ///////////////////////////////////////////////////
|
---|
| 33 | /// PsiInput is a Psi input file
|
---|
| 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 |
|
---|
| 66 | /// Construct the "basis" keyword for input
|
---|
| 67 | void write_basis(const Ref<GaussianBasisSet>&);
|
---|
| 68 | /// Write basis sets explicitly
|
---|
| 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
|
---|