00001 #ifndef MOLPRO_H
00002 #define MOLPRO_H
00003
00004
00005 #include <iostream>
00006 #include <fstream>
00007 #include <stdio.h>
00008
00009 #include "stringtools.h"
00010 #include "utils.h"
00011
00012 class Molpro
00013 {
00014
00015 private:
00016
00017 string infile;
00018 string outfile;
00019 string scratchname;
00020
00021 int nhf_lines;
00022 string* hf_lines;
00023
00024 string basis;
00025
00026 int nclosed;
00027 int nocc;
00028 int nelec;
00029
00030 int nstates;
00031 int natoms;
00032
00033 int tstate;
00034
00035 string* anames;
00036 double* E;
00037 double* xyz;
00038 double* grad;
00039 double* dvec;
00040
00041 int read_E();
00042
00043 int NPROCS;
00044
00045 public:
00046
00047 void init(int nstates0, int nclosed0, int nocc0, int nelec0, int natoms0, string* anames0, double* xyz0, int NPROCS0, string basis0);
00048 void init_hf(int nhf_lines1, string* hf_lines1);
00049 void reset(double* xyz);
00050 void runname(string name);
00051 int seed();
00052 int run(int n, int m);
00053 double getE(int n);
00054 int getGrad(double* grads);
00055 int getDVec(double* D);
00056 void clean_scratch();
00057
00058 void freemem();
00059
00060 int nrun;
00061
00062 };
00063
00064
00065 #endif