MPQC  3.0.0-alpha
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 
40 namespace sc {
41 
45 class ETraIn: public Function, public Runnable {
46 
47  public:
84  ETraIn(const Ref<KeyVal>&);
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
97  Ref<OneBodyWavefunction> obwfn12_;
98  // Monomer wave functions
100  Ref<OneBodyWavefunction> obwfn2_;
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:
sc::ETraIn::compute
void compute(void)
Recompute at least the results that have compute true and are not already computed.
sc::ETraIn::ETraIn
ETraIn(const Ref< KeyVal > &)
A KeyVal constructor is used to generate a name object from the input.
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::Function
The Function class is an abstract base class that, given a set of coordinates, will compute a value a...
Definition: function.h:44
sc::ETraIn::obsolete
void obsolete(void)
Marks all results as being out of date.
sc::ETraIn::run
void run()
Executes an action as specified in the derived class.
sc::ETraIn
Class ETraIn evaluates transfer and overlap matrix in the basis of monomer SCF wave functions.
Definition: etrain.h:45
sc::Runnable
The Runnable class is a DescribedClass with a pure virtual run member.
Definition: runnable.h:36
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:23:57 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.