- Main Page
- Related Pages
- Classes
- Files

- File List

# psiinput.h

    00001 /*
    00002 ** PSI Input Class
    00003 **
    00004 ** This helper class will set up input decks for the PSI suite of
    00005 ** ab initio quantum chemistry programs.
    00006 **
    00007 ** David Sherrill & Justin Fermann
    00008 ** Center for Computational Quantum Chemistry, University of Georgia
    00009 **
    00010 */
    00011
    00012 #ifdef __GNUG__
    00013 #pragma interface
    00014 #endif
    00015
    00016 #ifndef _chemistry_qc_psi_input_h
    00017 #define _chemistry_qc_psi_input_h
    00018
    00019 using namespace std;
    00020
    00021 #include <fstream>
    00022 #include <string>
    00023 #include<util/ref/ref.h>
    00024 #include<chemistry/molecule/molecule.h>
    00025 #include<chemistry/qc/basis/basis.h>
    00026
    00027 namespace sc {
    00028
    00029 class PsiExEnv;
    00030 class CorrelationTable;
    00031
    00034
    00035 class PsiInput: public RefCount {
    00036
    00037   string filename_;
    00038   std::ofstream file_;
    00039
    00040   int indentation_;
    00041
    00042   // No default constructor
    00043   PsiInput() {};
    00044
    00045   public:
    00046     PsiInput(const string& name);
    00047     ~PsiInput();
    00048     void open();
    00049     void close();
    00050     void print(std::ostream&);
    00051
    00052     void begin_section(const char * s);
    00053     void end_section();
    00054     void write_indent();
    00055     void incindent(int);
    00056     void decindent(int);
    00057     void write_comment(const char *);
    00058     void write_keyword(const char *, const char *);
    00059     void write_keyword(const char *, int);
    00060     void write_keyword(const char *, double);
    00061     void write_keyword_array(const char *, int, int *);
    00062     void write_keyword_array(const char *, int, double *);
    00063     void write_string(const char *);
    00064     void write_key_wq(const char *, const char *);
    00065
    00067     void write_basis(const Ref<GaussianBasisSet>&);
    00069     void write_basis_sets(const Ref<GaussianBasisSet>&);
    00070     void write_geom(const Ref<Molecule>&);
    00071
    00072     void write_defaults(const Ref<PsiExEnv>&, const char *dertype);
    00073 };
    00074
    00075 }
    00076
    00077 #endif