Psi4
frozen_natural_orbitals.h
Go to the documentation of this file.
1 /*
2  * @BEGIN LICENSE
3  *
4  * Psi4: an open-source quantum chemistry software package
5  *
6  * Copyright (c) 2007-2017 The Psi4 Developers.
7  *
8  * The copyrights for code used from other parties are included in
9  * the corresponding files.
10  *
11  * This file is part of Psi4.
12  *
13  * Psi4 is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU Lesser General Public License as published by
15  * the Free Software Foundation, version 3.
16  *
17  * Psi4 is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public License along
23  * with Psi4; if not, write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25  *
26  * @END LICENSE
27  */
28 
29 #ifndef FROZENNO_H
30 #define FROZENNO_H
31 #include "psi4/psi4-dec.h"
33 
34 namespace psi{namespace fnocc{
35 
36 // base class
37 class FrozenNO : public Wavefunction {
38  public:
39  FrozenNO(std::shared_ptr<Wavefunction>wfn,Options&options);
40  ~FrozenNO();
41 
42  double compute_energy();
44 
45  protected:
46 
47  // mp2 energy in full basis
48  double emp2;
50 
51  void common_init();
52 };
53 
54 class DFFrozenNO : public FrozenNO {
55  public:
56  DFFrozenNO(std::shared_ptr<Wavefunction>wfn,Options&options);
57  ~DFFrozenNO();
58 
59  double compute_energy();
60 
63 
65  void ThreeIndexIntegrals();
66 
68  void FourIndexIntegrals();
69 
70  protected:
71 
72  void ModifyCa(double*Dab);
73  void ModifyCa_occ(double*Dij);
74  void BuildFock(long int nQ,double*Qso,double*F);
75  void TransformQ(long int nQ,double*Qso);
76 
77 };
78 
79 }}
80 
81 #endif
~DFFrozenNO()
Definition: frozen_natural_orbitals.cc:517
void ThreeIndexIntegrals()
generates 3-index integrals and writes them to disk
Definition: frozen_natural_orbitals.cc:527
Options & options() const
Definition: wavefunction.cc:396
long int nfzv
Definition: frozen_natural_orbitals.h:49
void FourIndexIntegrals()
generates 4-index eri&#39;s from 3-index integrals
Definition: frozen_natural_orbitals.cc:658
Definition: frozen_natural_orbitals.h:54
void common_init()
Definition: frozen_natural_orbitals.cc:74
void ModifyCa_occ(double *Dij)
Definition: frozen_natural_orbitals.cc:970
void BuildFock(long int nQ, double *Qso, double *F)
Definition: frozen_natural_orbitals.cc:1033
FrozenNO(std::shared_ptr< Wavefunction >wfn, Options &options)
Definition: frozen_natural_orbitals.cc:62
void ComputeNaturalOrbitals()
computes MP2 natural orbitals
Definition: frozen_natural_orbitals.cc:726
long int ndoccact
Definition: frozen_natural_orbitals.h:49
long int nfzc
Definition: frozen_natural_orbitals.h:49
void TransformQ(long int nQ, double *Qso)
Definition: frozen_natural_orbitals.cc:999
long int nvirt
Definition: frozen_natural_orbitals.h:49
double emp2
Definition: frozen_natural_orbitals.h:48
~FrozenNO()
Definition: frozen_natural_orbitals.cc:70
long int ndocc
Definition: frozen_natural_orbitals.h:49
SharedWavefunction fnocc(SharedWavefunction, Options &)
Definition: fnocc.cc:37
DFFrozenNO(std::shared_ptr< Wavefunction >wfn, Options &options)
Definition: frozen_natural_orbitals.cc:513
Definition: frozen_natural_orbitals.h:37
Definition: liboptions.h:360
double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: frozen_natural_orbitals.cc:523
long int nvirt_no
Definition: frozen_natural_orbitals.h:49
void ModifyCa(double *Dab)
Definition: frozen_natural_orbitals.cc:942
int nso() const
Returns the number of SOs.
Definition: wavefunction.h:353
std::shared_ptr< Wavefunction > wfn
Definition: dx_write.cc:60
Simple wavefunction base class.
Definition: wavefunction.h:84
void ComputeNaturalOrbitals()
Definition: frozen_natural_orbitals.cc:105
int nmo() const
Returns the number of MOs.
Definition: wavefunction.h:355
double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: frozen_natural_orbitals.cc:98