MPQC  3.0.0-alpha
taclscf.hpp
1 //
2 // taclscf.hpp
3 //
4 // Copyright (C) 2013 Drew Lewis
5 //
6 // Authors: Drew Lewis
7 // Maintainer: Drew Lewis 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 #ifndef _MPQC_CHEMISTRY_QC_SCF_TACLSCF_HPP_
29 #define _MPQC_CHEMISTRY_QC_SCF_TACLSCF_HPP_
30 
31 #include <chemistry/qc/scf/tascf.hpp>
32 
33 namespace mpqc{
34 namespace TA {
35 
39  class CLSCF : public SCF {
40  public :
41  typedef SCF::TAMatrix TAMatrix;
42 
44  CLSCF(const sc::Ref<sc::KeyVal> &kval);
45  virtual ~CLSCF();
46 
47  virtual void compute() override;
48 
50  virtual const TAMatrix& rdm1() override final;
51 
53  virtual double scf_energy() override final;
54 
55  virtual const TAMatrix& rdm1(sc::SpinCase1 s);
56 
57  protected:
58 
59  // Will call Wavefunction::ao_density() and check for initialization
60  // if not initialized it will use SOAD guess to initialize
61  virtual TAMatrix& ao_density() final;
62 
63  // Computes the energy of a given scf iteration
64  double iter_energy();
65 
66  TAMatrix Coeff_; // Coefficients for density matrix
67 
68  private:
69  static sc::ClassDesc class_desc_;
70  }; // Class CLSCF
71 
72 } // namespace TA
73 } // namespace mpqc
74 
75 #endif /* _MPQC_CHEMISTRY_QC_SCF_TACLSCF_HPP_ */
mpqc
Contains new MPQC code since version 3.
Definition: integralenginepool.hpp:37
mpqc::TA::CLSCF::scf_energy
virtual double scf_energy() override final
Return the scf enengy computed to the desired accuracy level.
sc::Ref< sc::KeyVal >
mpqc::TA::CLSCF::rdm1
virtual const TAMatrix & rdm1() override final
Return the computed AO density.
mpqc::TA::CLSCF::compute
virtual void compute() override
Recompute at least the results that have compute true and are not already computed.
sc::ClassDesc
This class is used to contain information about classes.
Definition: class.h:147
mpqc::TA::CLSCF
The taclscf class is the base class for implementing self-consistent proceedure for closed-shell mole...
Definition: taclscf.hpp:39
mpqc::TA::CLSCF::ao_density
virtual TAMatrix & ao_density() final
Returns reference to rdm1_.result_noupdate(), but guarantees nothing about its computed status.
mpqc::TA::CLSCF::CLSCF
CLSCF(const sc::Ref< sc::KeyVal > &kval)
Key Value constructor .
mpqc::TA::SCF
Definition: tascf.hpp:39

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