MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
etrain.h
1//
2// etrain.h
3//
4// Copyright (C) 2011 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 _mpqc_src_lib_chemistry_qc_etrain_etrain_h
29#define _mpqc_src_lib_chemistry_qc_etrain_etrain_h
30
31#include <util/misc/scexception.h>
32#include <util/misc/runnable.h>
33#include <math/mmisc/grid.h>
34#include <chemistry/qc/wfn/wfn.h>
35#include <chemistry/qc/scf/clscf.h>
36#include <chemistry/qc/basis/orthog.h>
37#include <chemistry/qc/wfn/eht.h>
38#include <chemistry/qc/wfn/orbitalspace.h>
39
40namespace sc {
41
45class ETraIn: public Function, public Runnable {
46
47 public:
85 // Only KeyVal constructor is provided. SavableState functionality will not be used
86
87 // Implementation of Runnable::run()
88 void run();
89 // Implementation of Compute::compute()
90 void compute(void);
91 // Overload of Function::obsolete()
92 void obsolete(void);
93
94 private:
95
96 // n-mer wave function
98 // Monomer wave functions
101 // because the computational frames for monomers may not coincide with that of the n-mer
102 // compute the atom maps from monomers to the n-mer
103 std::vector<unsigned int> atom_map1_;
104 std::vector<unsigned int> atom_map2_;
105
106 // Number of monomer HOMOs and LUMOs specifies the basis in which to compute transfer matrices
107 int nocc_, nuocc_;
108 // debug level
109 unsigned int debug_;
110 // grid
111 Ref<Grid> grid_;
112
113 typedef std::map<int,double> IPs;
114 IPs ip1_, ip2_;
115 Ref<OrbitalSpace> ip1_orbs_, ip2_orbs_;
116 void read_ip(const Ref<KeyVal>& kv, const std::string& ip_key, IPs& ip,
117 unsigned int nmos, Ref<OrbitalSpace>& ip_orbs);
118
119 // this function computes and prints out transfer integral (and overlap) matrix
120 void compute_train();
121
122};
123
124}; // end of namespace sc
125
126#endif // end of header guard
127
128
129// Local Variables:
130// mode: c++
131// c-file-style: "CLJ-CONDENSED"
132// End:
Class ETraIn evaluates transfer and overlap matrix in the basis of monomer SCF wave functions.
Definition etrain.h:45
void obsolete(void)
Marks all results as being out of date.
void compute(void)
Recompute at least the results that have compute true and are not already computed.
void run()
Executes an action as specified in the derived class.
ETraIn(const Ref< KeyVal > &)
A KeyVal constructor is used to generate a name object from the input.
The Function class is an abstract base class that, given a set of coordinates, will compute a value a...
Definition function.h:44
A template class that maintains references counts.
Definition ref.h:361
The Runnable class is a DescribedClass with a pure virtual run member.
Definition runnable.h:36
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

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