CheMPS2
DMRGSCFwtilde.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 DMRGSCFWTILDE_CHEMPS2_H
21 #define DMRGSCFWTILDE_CHEMPS2_H
22 
23 #include "DMRGSCFindices.h"
24 
25 namespace CheMPS2{
44 
45  public:
46 
48 
49  DMRGSCFwtilde(DMRGSCFindices * iHandler_in);
50 
52  virtual ~DMRGSCFwtilde();
53 
55  void clear();
56 
58 
65  void set(const int irrep_pq, const int irrep_rs, const int p, const int q, const int r, const int s, const double val);
66 
68 
75  double get(const int irrep_pq, const int irrep_rs, const int p, const int q, const int r, const int s) const;
76 
78 
83  double * getBlock(const int irrep_pq, const int irrep_rs, const int p, const int r);
84 
85  private:
86 
87  // The information on the occupied, active, and virtual spaces
88  DMRGSCFindices * iHandler;
89 
90  int * Nocc_dmrg;
91 
92  // The elements: w_tilde[ I_pq ][ I_rs ][ p + ( Nocc[I_pq] + Ndmrg[I_pq] ) * r ][ q + Ntotal[I_pq] * s ]
93  double **** wmattilde;
94 
95  };
96 }
97 
98 #endif
99 
Definition: CASPT2.h:42
virtual ~DMRGSCFwtilde()
Destructor.
DMRGSCFwtilde(DMRGSCFindices *iHandler_in)
Constructor.
double * getBlock(const int irrep_pq, const int irrep_rs, const int p, const int r)
Get the (pr) subblock of w_tilde_pqrs, which is stored as w_tilde[ I_pq ][ I_rs ][ p + ( Nocc[I_pq] +...