Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

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_PSI_INPUT_H
00017 #define _CHEMISTRY_QC_PSI_PSI_INPUT_H
00018 
00019 #include<chemistry/molecule/molecule.h>
00020 #include<chemistry/qc/basis/basis.h>
00021 
00022 class CorrelationTable;
00023 
00024 class PSI_Input {
00025 
00026    private:
00027       int indentation;
00028       int memory; // the memory in megabytes
00029       char * opentype;
00030       int nirrep;
00031       int * docc;
00032       int * socc;
00033       int * frozen_docc;
00034       int * frozen_uocc;
00035       int ex_lvl;
00036       char * label;
00037       char * name;
00038       int nunit;
00039       char **unit;
00040       int *nvolume;
00041       char ***volumes;
00042       int _test;
00043 
00044    protected:
00045       Ref<PointGroup> _origpg;
00046       Ref<Molecule> _mol;
00047       Ref<GaussianBasisSet> _gbs;
00048       FILE *fp;
00049 
00050    public:
00051       void begin_section(const char * s);
00052       void end_section();
00053       void write_indent();
00054       int write_keyword(const char *, const char *);
00055       int write_keyword(const char *, int);
00056       int write_keyword(const char *, double);
00057       int write_keyword(const char *, int, int *);
00058       int write_keyword(const char *, int, double *);
00059       int write_geom();
00060       void write_string(const char *);
00061 //      int write_basis(Ref<GaussianBasisSet>&);
00062       int write_basis(void);
00063       int write_defaults(const char *, const char *);
00064       void write_input();
00065       int write_key_wq(const char *, const char *);
00066       void write_orbvec(const CorrelationTable &corrtab,
00067                         const char *orbvec_name,
00068                         const int *orbvec);
00069 
00070    public:
00071       PSI_Input(const Ref<KeyVal>&);
00072       PSI_Input();
00073       virtual ~PSI_Input();
00074       void print(std::ostream&);
00075       virtual void write_input_file(const char *,const char *,
00076                const int convergence = 0, const char *s = "input.dat");
00077       int test() { return _test; }
00078 
00079       void open(const char*filename);
00080       void close();
00081 };
00082 
00083 #endif

Generated at Thu Oct 4 18:08:46 2001 for MPQC 2.0.0 using the documentation package Doxygen 1.2.5.