MPQC  3.0.0-alpha
extern_pt2r12.h
1 //
2 // extern_pt2r12.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_mbptr12_externpt2r12_h
29 #define _mpqc_src_lib_chemistry_qc_mbptr12_externpt2r12_h
30 
31 #include <chemistry/qc/mbptr12/pt2r12.h>
32 #include <chemistry/qc/extern/moinfo.h>
33 
34 namespace sc {
35 
37  class ExternPT2R12 : public Wavefunction {
38  public:
59  ExternPT2R12(const Ref<KeyVal>& kv);
60  ~ExternPT2R12();
61 
62  void compute();
63  int nelectron();
65  double magnetic_moment() const;
66  int value_implemented() const { return 1; }
67  void set_desired_value_accuracy(double acc);
68  void print(std::ostream& os=ExEnv::out0()) const;
69  void initialize();
70 
71  void obsolete();
72 
73  private:
74  static ClassDesc class_desc_;
75  static const unsigned int debug_print_ = 0; // set to 1 to print out some debugging info
76 
77  // need to initialize with initialize()
78  Ref<PT2R12> pt2r12_;
79 
80 
81  protected:
82  // provided by the user
84  Ref<ExternMOInfo> orbs_info_;
85  Ref<SpinFreeRDM<Two> > rdm2_;
86 
87  std::string cabs_name_;
88  std::string obs_name_;
89  std::string dfbs_name_;
90  std::string f12exp_str_;
91  std::string r12_str_;
92 
93  #if defined(MPQC_NEW_FEATURES)
94  std::string singles_str_;
95  std::string partition_str_;
96  std::string cabs_singles_name_;
97  #endif
98 
99  bool cabs_contraction_;
100 
101  };
102 
103 
104 } // end of namespace sc
105 
106 #endif // end of header guard
107 
108 
109 // Local Variables:
110 // mode: c++
111 // c-file-style: "CLJ-CONDENSED"
112 // End:
sc::ExternPT2R12::magnetic_moment
double magnetic_moment() const
Computes the S (or J) magnetic moment of the target state(s), in units of .
sc::RefSymmSCMatrix
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:265
sc::ExternPT2R12::set_desired_value_accuracy
void set_desired_value_accuracy(double acc)
Set the accuracy to which the value is to be computed.
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::ExternPT2R12::nelectron
int nelectron()
Returns the number of electrons.
sc::ExternPT2R12::ExternPT2R12
ExternPT2R12(const Ref< KeyVal > &kv)
A KeyVal constructor is used to generate a ExternPT2R12 object from the input.
sc::Wavefunction
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:52
sc::ExternPT2R12::obsolete
void obsolete()
Marks all results as being out of date.
sc::ClassDesc
This class is used to contain information about classes.
Definition: class.h:147
sc::ExternPT2R12::density
RefSymmSCMatrix density()
Returns the SO density.
sc::ExternPT2R12
ExternPT2R12 is a PT2R12 wave function computed from external MO info and 2-RDM.
Definition: extern_pt2r12.h:37
sc::ExternPT2R12::value_implemented
int value_implemented() const
Definition: extern_pt2r12.h:66
sc::ExternPT2R12::print
void print(std::ostream &os=ExEnv::out0()) const
Print information about the object.
sc::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc::ExternPT2R12::compute
void compute()
Recompute at least the results that have compute true and are not already computed.
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

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