CheMPS2
Cumulant.h
1 /*
2  CheMPS2: a spin-adapted implementation of DMRG for ab initio quantum chemistry
3  Copyright (C) 2013-2016 Sebastian Wouters
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 #ifndef CUMULANT_CHEMPS2_H
21 #define CUMULANT_CHEMPS2_H
22 
23 #include "ThreeDM.h"
24 #include "TwoDM.h"
25 
26 namespace CheMPS2{
120  class Cumulant{
121 
122  public:
123 
125 
137  static double gamma4_ham(const Problem * prob, const ThreeDM * the3DM, const TwoDM * the2DM, const int i, const int j, const int k, const int l, const int p, const int q, const int r, const int s);
138 
140 
145  static void gamma4_fock_contract_ham(const Problem * prob, const ThreeDM * the3DM, const TwoDM * the2DM, double * fock, double * result);
146 
147  private:
148 
149  // Get the second order cumulant \f$ \Lambda^2_{ijpq} \f$, using HAM indices
150  static double lambda2_ham(const TwoDM * the2DM, const int i, const int j, const int p, const int q);
151 
152  };
153 }
154 
155 #endif
Definition: CASPT2.h:42
static void gamma4_fock_contract_ham(const Problem *prob, const ThreeDM *the3DM, const TwoDM *the2DM, double *fock, double *result)
Contract the CASPT2 Fock operator with the cumulant approximation of in time, using HAM indices...
Definition: Cumulant.cpp:84
static double gamma4_ham(const Problem *prob, const ThreeDM *the3DM, const TwoDM *the2DM, const int i, const int j, const int k, const int l, const int p, const int q, const int r, const int s)
Get the cumulant approximation of , using HAM indices.
Definition: Cumulant.cpp:381