MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
psiinput.h
1//
2// psiinput.h
3//
4// Copyright (C) 2002 Edward Valeev
5//
6// Author: Edward Valeev <evaleev@vt.edu>
7// Maintainer: EV
8//
9// This file is part of the SC Toolkit.
10//
11// The SC Toolkit is free software; you can redistribute it and/or modify
12// it under the terms of the GNU Library General Public License as published by
13// the Free Software Foundation; either version 2, or (at your option)
14// any later version.
15//
16// The SC Toolkit is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU Library General Public License for more details.
20//
21// You should have received a copy of the GNU Library General Public License
22// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24//
25// The U.S. Government is granted a limited license as per AL 91-7.
26//
27
28#ifndef _chemistry_qc_psi_input_h
29#define _chemistry_qc_psi_input_h
30
31#include <fstream>
32#include <string>
33#include<util/ref/ref.h>
34#include<chemistry/molecule/molecule.h>
35#include<chemistry/qc/basis/basis.h>
36
37namespace sc {
38
39class PsiExEnv;
40class CorrelationTable;
41
44
45class PsiInput: public RefCount {
46
47 std::string filename_;
48 std::ofstream file_;
49 int me_; // task id
50
51 int indentation_;
52
53 // No default constructor
54 PsiInput() {};
55
56 // can run on me_?
57 bool can_run_on_me() { return me_ == 0; }
58
59 public:
60 PsiInput(const std::string& name);
61 ~PsiInput();
62 void open();
63 void close();
64 void print(std::ostream&o=ExEnv::out0());
65
66 void begin_section(const char * s);
67 void end_section();
68 void write_indent();
69 void incindent(int);
70 void decindent(int);
71 void write_comment(const char *);
72 void write_keyword(const char *, const char *);
73 void write_keyword(const char *, const std::string&);
74 void write_keyword(const char *, bool);
75 void write_keyword(const char *, int);
76 void write_keyword(const char *, double);
77 template <typename T> void write_keyword_array(const char *, const std::vector<T>&);
78 void write_keyword_array(const char *, int, int *);
79 void write_keyword_array(const char *, int, double *);
80 void write_string(const char *);
81 void write_string(const std::string&);
82 void write_key_wq(const char *, const char *);
83
88 void write_geom(const Ref<Molecule>&);
89
90 void write_defaults(const Ref<PsiExEnv>&, const char *dertype);
91};
92
93}
94
95#include <chemistry/qc/psi/psiinput.timpl.h>
96
97#endif
static std::ostream & out0()
Return an ostream that writes from node 0.
PsiInput is a Psi input file.
Definition psiinput.h:45
void write_basis(const Ref< GaussianBasisSet > &)
Construct the "basis" keyword for input. All functions with angular momentum >= 1 must be Cartesian o...
void write_basis_sets(const Ref< GaussianBasisSet > &)
Write basis sets explicitly.
The base class for all reference counted objects.
Definition ref.h:192
A template class that maintains references counts.
Definition ref.h:361
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

Generated at Wed Sep 25 2024 02:45:30 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.