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 program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program 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 General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License along
22  * with this program; if not, write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24  *
25  * @END LICENSE
26  */
27 
28 #ifndef FROZENNO_H
29 #define FROZENNO_H
30 #include "psi4/psi4-dec.h"
32 
33 namespace psi{namespace fnocc{
34 
35 // base class
36 class FrozenNO : public Wavefunction {
37  public:
38  FrozenNO(std::shared_ptr<Wavefunction>wfn,Options&options);
39  ~FrozenNO();
40 
41  double compute_energy();
43 
44  protected:
45 
46  // mp2 energy in full basis
47  double emp2;
49 
50  void common_init();
51 };
52 
53 class DFFrozenNO : public FrozenNO {
54  public:
55  DFFrozenNO(std::shared_ptr<Wavefunction>wfn,Options&options);
56  ~DFFrozenNO();
57 
58  double compute_energy();
59 
62 
64  void ThreeIndexIntegrals();
65 
67  void FourIndexIntegrals();
68 
69  protected:
70 
71  void ModifyCa(double*Dab);
72  void ModifyCa_occ(double*Dij);
73  void BuildFock(long int nQ,double*Qso,double*F);
74  void TransformQ(long int nQ,double*Qso);
75 
76 };
77 
78 }}
79 
80 #endif
~DFFrozenNO()
Definition: frozen_natural_orbitals.cc:516
void ThreeIndexIntegrals()
generates 3-index integrals and writes them to disk
Definition: frozen_natural_orbitals.cc:526
Options & options() const
Definition: wavefunction.cc:400
long int nfzv
Definition: frozen_natural_orbitals.h:48
void FourIndexIntegrals()
generates 4-index eri&#39;s from 3-index integrals
Definition: frozen_natural_orbitals.cc:657
Definition: frozen_natural_orbitals.h:53
void common_init()
Definition: frozen_natural_orbitals.cc:73
void ModifyCa_occ(double *Dij)
Definition: frozen_natural_orbitals.cc:969
void BuildFock(long int nQ, double *Qso, double *F)
Definition: frozen_natural_orbitals.cc:1032
FrozenNO(std::shared_ptr< Wavefunction >wfn, Options &options)
Definition: frozen_natural_orbitals.cc:61
void ComputeNaturalOrbitals()
computes MP2 natural orbitals
Definition: frozen_natural_orbitals.cc:725
long int ndoccact
Definition: frozen_natural_orbitals.h:48
long int nfzc
Definition: frozen_natural_orbitals.h:48
void TransformQ(long int nQ, double *Qso)
Definition: frozen_natural_orbitals.cc:998
long int nvirt
Definition: frozen_natural_orbitals.h:48
double emp2
Definition: frozen_natural_orbitals.h:47
~FrozenNO()
Definition: frozen_natural_orbitals.cc:69
long int ndocc
Definition: frozen_natural_orbitals.h:48
SharedWavefunction fnocc(SharedWavefunction, Options &)
Definition: fnocc.cc:36
DFFrozenNO(std::shared_ptr< Wavefunction >wfn, Options &options)
Definition: frozen_natural_orbitals.cc:512
Definition: frozen_natural_orbitals.h:36
Definition: liboptions.h:359
double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: frozen_natural_orbitals.cc:522
long int nvirt_no
Definition: frozen_natural_orbitals.h:48
void ModifyCa(double *Dab)
Definition: frozen_natural_orbitals.cc:941
int nso() const
Returns the number of SOs.
Definition: wavefunction.h:354
std::shared_ptr< Wavefunction > wfn
Definition: dx_write.cc:59
Simple wavefunction base class.
Definition: wavefunction.h:85
void ComputeNaturalOrbitals()
Definition: frozen_natural_orbitals.cc:104
int nmo() const
Returns the number of MOs.
Definition: wavefunction.h:356
double compute_energy()
Compute energy. Subclasses override this function to compute its energy.
Definition: frozen_natural_orbitals.cc:97