00001
00002
00003
00004
00005
00006
00007
00008
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
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