CheMPS2
DMRGSCFindices.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 DMRGSCFINDICES_CHEMPS2_H
21 #define DMRGSCFINDICES_CHEMPS2_H
22 
23 #include "Irreps.h"
24 
25 namespace CheMPS2{
33 
34  public:
35 
37 
42  DMRGSCFindices(const int L, const int Group, int * NOCCin, int * NDMRGin, int * NVIRTin);
43 
45  virtual ~DMRGSCFindices();
46 
48 
49  int getL() const;
50 
52 
53  int getGroupNumber() const;
54 
56 
57  int getNirreps() const;
58 
60 
62  int getNORB(const int irrep) const;
63 
65 
67  int getNOCC(const int irrep) const;
68 
70 
72  int getNDMRG(const int irrep) const;
73 
75 
77  int getNVIRT(const int irrep) const;
78 
80 
82  int getDMRGcumulative(const int irrep) const;
83 
85 
87  int getOrigNOCCstart(const int irrep) const;
88 
90 
92  int getOrigNDMRGstart(const int irrep) const;
93 
95 
97  int getOrigNVIRTstart(const int irrep) const;
98 
100 
102 
104 
106  int getOrbitalIrrep(const int index) const;
107 
109 
110  int getNOCCsum() const;
111 
113 
114  int getNORBmax() const;
115 
117 
118  int getROTparamsize() const;
119 
121  void Print() const;
122 
123 
124  private:
125 
126  //Number of orbitals
127  int L;
128 
129  //Irreps controller which contains the group number
130  Irreps SymmInfo;
131 
132  //Number of irreps (follows from Group number)
133  int Nirreps;
134 
135  //Number of orbitals per irrep
136  int * NORB;
137 
138  //Number of occupied orbitals per irrep
139  int * NOCC;
140 
141  //Number of active orbitals per irrep
142  int * NDMRG;
143 
144  //Number of virtual orbitals per irrep
145  int * NVIRT;
146 
147  //Cumulative number of orbitals per irrep
148  int * NORBcumulative;
149 
150  //Cumulative number of active orbitals per irrep
151  int * NDMRGcumulative;
152 
153  //Irrep of each DMRG orbital (to construct HamDMRG)
154  int * irrepOfEachDMRGorbital;
155 
156  //Irrep of each global orbital
157  int * irrepOfEachOrbital;
158 
159  };
160 }
161 
162 #endif
int getNORB(const int irrep) const
Get the number of orbitals for an irrep.
int getOrigNVIRTstart(const int irrep) const
Get in the original Hamiltonian index the start orbital for the virtual orbitals with a certain irrep...
int getNOCCsum() const
Get the total number of occupied orbitals.
int getROTparamsize() const
Get the orbital rotation parameter space size.
int getOrigNDMRGstart(const int irrep) const
Get in the original Hamiltonian index the start orbital for the active orbitals with a certain irrep...
DMRGSCFindices(const int L, const int Group, int *NOCCin, int *NDMRGin, int *NVIRTin)
Constructor.
int getGroupNumber() const
Get the group number.
Definition: CASPT2.h:42
int * getIrrepOfEachDMRGorbital()
Get an array with the irreps of each DMRG orbital.
virtual ~DMRGSCFindices()
Destructor.
int getDMRGcumulative(const int irrep) const
Get the cumulative number of active orbitals for an irrep.
int getNORBmax() const
Get the maximum NORB.
int getL() const
Get the number of orbitals.
void Print() const
Print my contents.
int getNDMRG(const int irrep) const
Get the number of active orbitals for an irrep.
int getNOCC(const int irrep) const
Get the number of occupied orbitals for an irrep.
int getNVIRT(const int irrep) const
Get the number of virtual orbitals for an irrep.
int getOrbitalIrrep(const int index) const
Get the irrep corresponding to a global orbital index.
int getOrigNOCCstart(const int irrep) const
Get in the original Hamiltonian index the start orbital for the occupied orbitals with a certain irre...
int getNirreps() const
Get the number of irreps.