MPQC  3.0.0-alpha
molcas_pt2r12.h
1 //
2 // molcas_pt2r12.h
3 //
4 // Copyright (C) 2014 Chong Peng
5 //
6 // Authors: Chong Peng
7 // Maintainer: Chong Peng and Edward Valeev
8 //
9 // This file is part of the MPQC Toolkit.
10 //
11 // The MPQC 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 MPQC 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 MPQC 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 
29 #ifndef _mpqc_src_lib_chemistry_qc_mbptr12_molcas_pt2r12_h
30 #define _mpqc_src_lib_chemistry_qc_mbptr12_molcas_pt2r12_h
31 
32 #include <chemistry/qc/mbptr12/extern_pt2r12.h>
33 
34 namespace sc{
35  // //////////////////////////////////////////////////////////////////////
36 
96  class MolcasPT2R12 : public MolecularEnergy {
97  public:
98 
167  MolcasPT2R12(const Ref<KeyVal>& kv);
168  ~MolcasPT2R12();
169 
170  void compute();
171 
173  void initialize();
174 
175  // run molcas input file
176  void run_molcas();
177 
179  void read_energy();
180 
183  void convert_c1_symmetry();
184 
186  void restore_molcas_input();
187 
189  void purge();
190 
192  void obsolete();
193 
195  int value_implemented() const { return 1; }
196 
198  void print(std::ostream& os=ExEnv::out0()) const;
199 
200  private:
202  std::string prefix_;
204  std::string xyz_file_;
206  std::string molcas_;
208  std::string molcas_input_;
210  std::string molcas_options_;
212  std::vector<int> inactive_;
214  std::vector<int> active_;
216  std::vector<int> active_electron_;
218  std::string symmetry_;
219 
220  double rasscf_energy_;
221  double caspt2_energy_;
222 
224  Ref<ExternPT2R12> extern_pt2r12_;
226  Ref<AssignedKeyVal> extern_pt2r12_akv_;
227 
228  static ClassDesc class_desc_;
229  };
230 } // end of namespace sc
231 
232 #endif //end of header guard
sc::MolcasPT2R12::read_energy
void read_energy()
read molcas log file and get the energy needed
sc::MolcasPT2R12::compute
void compute()
Recompute at least the results that have compute true and are not already computed.
sc::MolcasPT2R12
The MolcasPT2R12 class is a interface between Molcas and MPQC to perform CASPT2F12 calculations.
Definition: molcas_pt2r12.h:96
sc::MolcasPT2R12::purge
void purge()
purge
sc::MolcasPT2R12::restore_molcas_input
void restore_molcas_input()
restore the original input file after change of symmetry
sc::MolcasPT2R12::convert_c1_symmetry
void convert_c1_symmetry()
convert input to c1 symmetry when the symmetry from MPQC is different than original symmetry
sc::Ref
A template class that maintains references counts.
Definition: ref.h:361
sc::MolcasPT2R12::MolcasPT2R12
MolcasPT2R12(const Ref< KeyVal > &kv)
The KeyVal constructor reads the following keywords:
sc::MolcasPT2R12::obsolete
void obsolete()
obsolete
sc::ClassDesc
This class is used to contain information about classes.
Definition: class.h:147
sc::MolecularEnergy
The MolecularEnergy abstract class inherits from the Function class.
Definition: energy.h:50
sc::MolcasPT2R12::value_implemented
int value_implemented() const
set value implemented
Definition: molcas_pt2r12.h:195
sc::MolcasPT2R12::initialize
void initialize()
initialize values needed for ExternPT2R12
sc::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
sc::MolcasPT2R12::print
void print(std::ostream &os=ExEnv::out0()) const
print function

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