CheMPS2
FILES.md
1 List of files in CheMPS2
2 ------------------------
3 
4 [CheMPS2/CASPT2.cpp](CheMPS2/CASPT2.cpp) contains an implementation of
5 internally contracted CASPT2. The user can specify an IPEA shift and/or
6 an imaginary level shift to mitigate possible intruder state problems.
7 The linear CASPT2 equations can be solved with either Davidson's
8 algorithm, or with the conjugate gradient method. Note that the overlap
9 matrix is always diagonalized, and that a cumulant approximation of the
10 4-RDM should therefore be avoided.
11 
12 [CheMPS2/CASSCF.cpp](CheMPS2/CASSCF.cpp) contains the functionality
13 to construct the active space Hamiltonian for DMRG-SCF.
14 
15 [CheMPS2/CASSCFdebug.cpp](CheMPS2/CASSCFdebug.cpp) contains two
16 functions: one for calculating the ROHF energy; and one for fetching FCI
17 coefficients to determine the point group symmetry of certain electronic
18 states of the iron dimer.
19 
20 [CheMPS2/CASSCFnewtonraphson.cpp](CheMPS2/CASSCFnewtonraphson.cpp)
21 contains all DMRG-SCF functions which are specific to the augmented Hessian
22 Newton-Raphson update scheme, including the functions to calculate the
23 gradient and Hessian.
24 
25 [CheMPS2/CASSCFpt2.cpp](CheMPS2/CASSCFpt2.cpp) provides the interface between
26 the CASSCF and CASPT2 classes. The routines for the 3-RDM and the Fock
27 operator contraction with the 4-RDM are called here.
28 
29 [CheMPS2/ConjugateGradient.cpp](CheMPS2/ConjugateGradient.cpp) is an
30 implementation of the conjugate gradient algorithm, in the style of the
31 Davidson class.
32 
33 [CheMPS2/ConvergenceScheme.cpp](CheMPS2/ConvergenceScheme.cpp) contains
34 all functions of the ConvergenceScheme class, which contains the instructions
35 for the subsequent DMRG sweeps.
36 
37 [CheMPS2/Correlations.cpp](CheMPS2/Correlations.cpp) contains all the
38 functionality to calculate the spin, density, and spin-flip correlation
39 functions as well as the two-orbital mutual information.
40 
41 [CheMPS2/Cumulant.cpp](CheMPS2/Cumulant.cpp) contains static member functions
42 to reconstruct the 4-RDM from lower order reduced density matrices. There is
43 also a fast contraction of the Fock operator with the cumulant-reconstructed
44 4-RDM.
45 
46 [CheMPS2/Davidson.cpp](CheMPS2/Davidson.cpp) is an implementation of
47 Davidson's algorithm, both for eigenvalue problems and linear equations.
48 
49 [CheMPS2/DIIS.cpp](CheMPS2/DIIS.cpp) contains a DIIS convergence
50 speed-up for DMRG-SCF.
51 
52 [CheMPS2/DMRG.cpp](CheMPS2/DMRG.cpp) contains the constructor and
53 destructor of the DMRG class, as well as the top-level sweep functions.
54 
55 [CheMPS2/DMRGfock.cpp](CheMPS2/DMRGfock.cpp) contains the functionality to
56 express a symmetry (spin, particle number, and point group) conserving
57 single-particle excitation on top of an MPS as a new MPS.
58 
59 [CheMPS2/DMRGmpsio.cpp](CheMPS2/DMRGmpsio.cpp) contains the store and
60 load functions for the DMRG checkpoint file (the MPS and the SyBookkeeper).
61 
62 [CheMPS2/DMRGoperators3RDM.cpp](CheMPS2/DMRGoperators3RDM.cpp) contains all
63 update functions for the renormalized operators specific for the ThreeDM and
64 the Correlations.
65 
66 [CheMPS2/DMRGoperators.cpp](CheMPS2/DMRGoperators.cpp) contains all
67 functions related to the DMRG renormalized operators: saving to disk,
68 loading from disk, and updating.
69 
70 [CheMPS2/DMRGSCFindices.cpp](CheMPS2/DMRGSCFindices.cpp) contains the
71 index conversions for the DMRG-SCF algorithm.
72 
73 [CheMPS2/DMRGSCFintegrals.cpp](CheMPS2/DMRGSCFintegrals.cpp) is a container
74 class for two-body matrix elements with at most two virtual indices.
75 
76 [CheMPS2/DMRGSCFmatrix.cpp](CheMPS2/DMRGSCFmatrix.cpp) is a container
77 class for orbital matrices which are blockdiagonal in the irreps.
78 
79 [CheMPS2/DMRGSCFoptions.cpp](CheMPS2/DMRGSCFoptions.cpp) is a container
80 class to pass the DMRG-SCF options to the augmented Hessian Newton-Raphson
81 and CASPT2 routines of the CASSCF class.
82 
83 [CheMPS2/DMRGSCFrotations.cpp](CheMPS2/DMRGSCFrotations.cpp)
84 contains static member functions for the two-body matrix element rotations
85 for the CASSCF and Edmiston-Ruedenberg classes.
86 
87 [CheMPS2/DMRGSCFunitary.cpp](CheMPS2/DMRGSCFunitary.cpp) contains the
88 storage and handling of the unitary matrix and its nonredundant
89 skew-symmetric parametrization required for the DMRG-SCF algorithm.
90 
91 [CheMPS2/DMRGSCFwtilde.cpp](CheMPS2/DMRGSCFwtilde.cpp) is a container
92 class to store an intermediate for the DMRG-SCF Hessian.
93 
94 [CheMPS2/DMRGtechnics.cpp](CheMPS2/DMRGtechnics.cpp) contains the
95 functions related to the RDM and excited-state calculations.
96 
97 [CheMPS2/EdmistonRuedenberg.cpp](CheMPS2/EdmistonRuedenberg.cpp) contains
98 an orbital localization function based on the Edmiston-Ruedenberg cost function
99 and an augmented Hessian Newton-Raphson optimizer. It also contains the
100 functionality to compute the Fiedler vector of the exchange matrix, to reorder
101 the active space orbitals in a black-box fashion.
102 
103 [CheMPS2/Excitation.cpp](CheMPS2/Excitation.cpp) contains matrix-vector
104 multiplication routines for spin-conserving single-particle excitations.
105 
106 [CheMPS2/FCI.cpp](CheMPS2/FCI.cpp) contains a fast determinant-based full
107 configuration interaction (FCI) solver. The eigenvalue problem is solved with
108 Davidson's algorithm. Green's functions can also be computed.
109 
110 [CheMPS2/FourIndex.cpp](CheMPS2/FourIndex.cpp) contains all functions of
111 the FourIndex container class for the two-body matrix elements.
112 
113 [CheMPS2/Hamiltonian.cpp](CheMPS2/Hamiltonian.cpp) contains all functions
114 of the Hamiltonian class, including functions to get or set specific variables,
115 as well as to save and load the Hamiltonian on disk.
116 
117 [CheMPS2/Heff.cpp](CheMPS2/Heff.cpp) contains top-level functions to perform
118 the DMRG effective Hamiltonian times vector multiplication for Davidson's
119 algorithm.
120 
121 [CheMPS2/HeffDiagonal.cpp](CheMPS2/HeffDiagonal.cpp) contains the
122 functions to calculate the diagonal elements of the effective Hamiltonian.
123 These are required as preconditioner in Davidson's algorithm.
124 
125 [CheMPS2/HeffDiagrams1.cpp](CheMPS2/HeffDiagrams1.cpp) contains a subset
126 of functions to perform the effective Hamiltonian times guess vector
127 multiplication.
128 
129 [CheMPS2/HeffDiagrams2.cpp](CheMPS2/HeffDiagrams2.cpp) contains a subset
130 of functions to perform the effective Hamiltonian times guess vector
131 multiplication.
132 
133 [CheMPS2/HeffDiagrams3.cpp](CheMPS2/HeffDiagrams3.cpp) contains a subset
134 of functions to perform the effective Hamiltonian times guess vector
135 multiplication.
136 
137 [CheMPS2/HeffDiagrams4.cpp](CheMPS2/HeffDiagrams4.cpp) contains a subset
138 of functions to perform the effective Hamiltonian times guess vector
139 multiplication.
140 
141 [CheMPS2/HeffDiagrams5.cpp](CheMPS2/HeffDiagrams5.cpp) contains a subset
142 of functions to perform the effective Hamiltonian times guess vector
143 multiplication.
144 
145 [CheMPS2/Initialize.cpp](CheMPS2/Initialize.cpp) sets the seed
146 of the random number generator and cout.precision (added for PyCheMPS2).
147 
148 [CheMPS2/Irreps.cpp](CheMPS2/Irreps.cpp) contains the psi4 symmetry
149 conventions.
150 
151 [CheMPS2/Molden.cpp](CheMPS2/Molden.cpp) contains the functionality to
152 rotate an R(O)HF molden file generated by molpro or psi4 to the new CAS space
153 defined by the DMRGSCFunitary HDF5 checkpoint file.
154 
155 [CheMPS2/PrintLicense.cpp](CheMPS2/PrintLicense.cpp) contains a function
156 which prints the license disclaimer.
157 
158 [CheMPS2/Problem.cpp](CheMPS2/Problem.cpp) contains all Problem class
159 functions. This wrapper class allows to set the desired symmetry sector for
160 the DMRG algorithm. It allows to compute fourfold permutation symmetric
161 Hamiltonians with DMRG (see tests 9 and 12).
162 
163 [CheMPS2/Sobject.cpp](CheMPS2/Sobject.cpp) contains all Sobject class
164 functions. This class constructs, stores, and decomposes the reduced two-site
165 object.
166 
167 [CheMPS2/SyBookkeeper.cpp](CheMPS2/SyBookkeeper.cpp) contains all
168 SyBookkeeper functions. This class keeps track of the FCI and DMRG virtual
169 dimensions of all symmetry sectors at all boundaries.
170 
171 [CheMPS2/Tensor3RDM.cpp](CheMPS2/Tensor3RDM.cpp) contains all
172 initialization functions for the spin-reduced renormalized
173 operators of three second quantized operators.
174 
175 [CheMPS2/TensorF0.cpp](CheMPS2/TensorF0.cpp) contains all TensorF0
176 functions. This class stores and handles the reduced spin-0 part of
177 two sandwiched second quantized operators, of which the particle
178 symmetry sectors are equal.
179 
180 [CheMPS2/TensorF1.cpp](CheMPS2/TensorF1.cpp) contains all TensorF1
181 functions. This class stores and handles the reduced spin-1 part of
182 two sandwiched second quantized operators, of which the particle
183 symmetry sectors are equal.
184 
185 [CheMPS2/TensorGYZ.cpp](CheMPS2/TensorGYZ.cpp) contains the contruct
186 and update functions for the G-, Y-, and Z-tensors. They are required
187 for the two-orbital mutual information.
188 
189 [CheMPS2/TensorKM.cpp](CheMPS2/TensorKM.cpp) contains the contruct and
190 update functions for the K- and M-tensors. It is required for the
191 two-orbital mutual information.
192 
193 [CheMPS2/TensorL.cpp](CheMPS2/TensorL.cpp) contains all TensorL functions.
194 This class stores and handles the reduced spin-1/2 part of a single
195 sandwiched second quantized operator. The class has been updated to allow
196 for a different bra and ket wavefunction, which is needed for
197 [CheMPS2/DMRGfock.cpp](CheMPS2/DMRGfock.cpp).
198 
199 [CheMPS2/TensorO.cpp](CheMPS2/TensorO.cpp) handles the tensors required
200 to calculate the overlap between two MPSs.
201 
202 [CheMPS2/TensorOperator.cpp](CheMPS2/TensorOperator.cpp) implements the
203 storage and handling of tensor operators with a given spin, particle
204 number, and point group irrep. It replaces the deprecated TensorDiag,
205 TensorSwap, TensorS0Abase, TensorS1Bbase, TensorF0Cbase, TensorF1Dbase,
206 TensorA, TensorB, TensorC, and TensorD classes.
207 
208 [CheMPS2/TensorQ.cpp](CheMPS2/TensorQ.cpp) contains all TensorQ functions.
209 This class stores and handles the complementary reduced spin-1/2 part of
210 three sandwiched second quantized operators.
211 
212 [CheMPS2/TensorS0.cpp](CheMPS2/TensorS0.cpp) contains all TensorS0
213 functions. This class stores and handles the reduced spin-0 part of
214 two sandwiched second quantized operators, of which the particle symmetry
215 sectors differ by 2.
216 
217 [CheMPS2/TensorS1.cpp](CheMPS2/TensorS1.cpp) contains all TensorS1
218 functions. This class stores and handles the reduced spin-1 part of
219 two sandwiched second quantized operators, of which the particle symmetry
220 sectors differ by 2.
221 
222 [CheMPS2/TensorT.cpp](CheMPS2/TensorT.cpp) contains all TensorT functions.
223 This class stores and handles the reduced part of an MPS site-tensor. It
224 also contains the functionality for QR- and LQ-decomposition of MPS tensors.
225 
226 [CheMPS2/TensorX.cpp](CheMPS2/TensorX.cpp) contains all TensorX functions.
227 This class stores and handles the complementary reduced spin-0 part of four
228 sandwiched second quantized operators, which is of course diagonal in the
229 symmetry sectors.
230 
231 [CheMPS2/ThreeDM.cpp](CheMPS2/ThreeDM.cpp) contains all functions to calculate
232 and store the 3-RDM from the DMRG-optimized MPS.
233 
234 [CheMPS2/TwoDM.cpp](CheMPS2/TwoDM.cpp) contains all functions to calculate
235 and store the 2-RDM from the DMRG-optimized MPS.
236 
237 [CheMPS2/TwoIndex.cpp](CheMPS2/TwoIndex.cpp) contains all functions of the
238 TwoIndex container class for the one-body matrix elements.
239 
240 [CheMPS2/Wigner.cpp](CheMPS2/Wigner.cpp) contains static member functions
241 to compute Wigner 3j, 6j, and 9j symbols. The API has been chosen to match
242 GSL's gsl_sf_coupling_3j, gsl_sf_coupling_6j, and gsl_sf_coupling_9j.
243 
244 [CheMPS2/executable.cpp](CheMPS2/executable.cpp) builds to the chemps2
245 executable, which allows to use libchemps2 from the command line.
246 
247 [CheMPS2/include/chemps2/CASPT2.h](CheMPS2/include/chemps2/CASPT2.h) contains the definitions of the CASPT2 class.
248 
249 [CheMPS2/include/chemps2/CASSCF.h](CheMPS2/include/chemps2/CASSCF.h) contains the definitions of the CASSCF class.
250 
251 [CheMPS2/include/chemps2/ConjugateGradient.h](CheMPS2/include/chemps2/ConjugateGradient.h) contains the definitions of the ConjugateGradient class.
252 
253 [CheMPS2/include/chemps2/ConvergenceScheme.h](CheMPS2/include/chemps2/ConvergenceScheme.h) contains the definitions of the ConvergenceScheme class.
254 
255 [CheMPS2/include/chemps2/Correlations.h](CheMPS2/include/chemps2/Correlations.h) contains the definitions of the Correlations class.
256 
257 [CheMPS2/include/chemps2/Cumulant.h](CheMPS2/include/chemps2/Cumulant.h) contains the definitions of the Cumulant class.
258 
259 [CheMPS2/include/chemps2/Davidson.h](CheMPS2/include/chemps2/Davidson.h) contains the definitions of the Davidson class.
260 
261 [CheMPS2/include/chemps2/DIIS.h](CheMPS2/include/chemps2/DIIS.h) contains the definitions of the DIIS class.
262 
263 [CheMPS2/include/chemps2/DMRG.h](CheMPS2/include/chemps2/DMRG.h) contains the definitions of the DMRG class.
264 
265 [CheMPS2/include/chemps2/DMRGSCFindices.h](CheMPS2/include/chemps2/DMRGSCFindices.h) contains the definitions of the DMRGSCFindices class.
266 
267 [CheMPS2/include/chemps2/DMRGSCFintegrals.h](CheMPS2/include/chemps2/DMRGSCFintegrals.h) contains the definitions of the DMRGSCFintegrals class.
268 
269 [CheMPS2/include/chemps2/DMRGSCFmatrix.h](CheMPS2/include/chemps2/DMRGSCFmatrix.h) contains the definitions of the DMRGSCFmatrix class.
270 
271 [CheMPS2/include/chemps2/DMRGSCFoptions.h](CheMPS2/include/chemps2/DMRGSCFoptions.h) contains the definitions of the DMRGSCFoptions container class.
272 
273 [CheMPS2/include/chemps2/DMRGSCFrotations.h](CheMPS2/include/chemps2/DMRGSCFrotations.h) contains the definitions of the DMRGSCFrotations class.
274 
275 [CheMPS2/include/chemps2/DMRGSCFunitary.h](CheMPS2/include/chemps2/DMRGSCFunitary.h) contains the definitions of the DMRGSCFunitary class.
276 
277 [CheMPS2/include/chemps2/DMRGSCFwtilde.h](CheMPS2/include/chemps2/DMRGSCFwtilde.h) contains the definitions of the DMRGSCFwtilde class.
278 
279 [CheMPS2/include/chemps2/EdmistonRuedenberg.h](CheMPS2/include/chemps2/EdmistonRuedenberg.h) contains the definitions of the EdmistonRuedenberg class.
280 
281 [CheMPS2/include/chemps2/Excitation.h](CheMPS2/include/chemps2/Excitation.h) contains the definitions of the Excitation class.
282 
283 [CheMPS2/include/chemps2/FCI.h](CheMPS2/include/chemps2/FCI.h) contains the definitions of the FCI class.
284 
285 [CheMPS2/include/chemps2/FourIndex.h](CheMPS2/include/chemps2/FourIndex.h) contains the definitions of the FourIndex class.
286 
287 [CheMPS2/include/chemps2/Hamiltonian.h](CheMPS2/include/chemps2/Hamiltonian.h) contains the definitions of the Hamiltonian class.
288 
289 [CheMPS2/include/chemps2/Heff.h](CheMPS2/include/chemps2/Heff.h) contains the definitions of the Heff class.
290 
291 [CheMPS2/include/chemps2/Initialize.h](CheMPS2/include/chemps2/Initialize.h) contains the definitions of the Initialize class.
292 
293 [CheMPS2/include/chemps2/Irreps.h](CheMPS2/include/chemps2/Irreps.h) contains the definitions of the Irreps class.
294 
295 [CheMPS2/include/chemps2/Lapack.h](CheMPS2/include/chemps2/Lapack.h) contains the definitions of the external BLAS and LAPACK routines.
296 
297 [CheMPS2/include/chemps2/Molden.h](CheMPS2/include/chemps2/Molden.h) contains the definitions of the Molden class.
298 
299 [CheMPS2/include/chemps2/MPIchemps2.h](CheMPS2/include/chemps2/MPIchemps2.h)
300 contains the distribution of (complementary) renormalized operators over MPI
301 processes, as well as wrappers for the MPI communication routines in the C API.
302 
303 [CheMPS2/include/chemps2/MyHDF5.h](CheMPS2/include/chemps2/MyHDF5.h) forces
304 the use of the HDF5 1.8 API, e.g. H5Gcreate2 instead of H5Gcreate1, a known
305 issue in Ubuntu 12.04.
306 
307 [CheMPS2/include/chemps2/Options.h](CheMPS2/include/chemps2/Options.h)
308 contains all the options of the CheMPS2 namespace. Here the checkpoint
309 storage names and folders can be set, as well as parameters related to
310 memory usage and convergence.
311 
312 [CheMPS2/include/chemps2/Problem.h](CheMPS2/include/chemps2/Problem.h) contains the definitions of the Problem class.
313 
314 [CheMPS2/include/chemps2/Sobject.h](CheMPS2/include/chemps2/Sobject.h) contains the definitions of the Sobject class.
315 
316 [CheMPS2/include/chemps2/Special.h](CheMPS2/include/chemps2/Special.h) contains special functions needed in various parts of libchemps2.
317 
318 [CheMPS2/include/chemps2/SyBookkeeper.h](CheMPS2/include/chemps2/SyBookkeeper.h) contains the definitions of the SyBookkeeper class.
319 
320 [CheMPS2/include/chemps2/Tensor3RDM.h](CheMPS2/include/chemps2/Tensor3RDM.h) contains the definitions of the Tensor3RDM class.
321 
322 [CheMPS2/include/chemps2/TensorF0.h](CheMPS2/include/chemps2/TensorF0.h) contains the definitions of the TensorF0 class.
323 
324 [CheMPS2/include/chemps2/TensorF1.h](CheMPS2/include/chemps2/TensorF1.h) contains the definitions of the TensorF1 class.
325 
326 [CheMPS2/include/chemps2/TensorGYZ.h](CheMPS2/include/chemps2/TensorGYZ.h) contains the definitions of the TensorGYZ class.
327 
328 [CheMPS2/include/chemps2/Tensor.h](CheMPS2/include/chemps2/Tensor.h) contains the definitions of the virtual Tensor class.
329 
330 [CheMPS2/include/chemps2/TensorKM.h](CheMPS2/include/chemps2/TensorKM.h) contains the definitions of the TensorKM class.
331 
332 [CheMPS2/include/chemps2/TensorL.h](CheMPS2/include/chemps2/TensorL.h) contains the definitions of the TensorL class.
333 
334 [CheMPS2/include/chemps2/TensorO.h](CheMPS2/include/chemps2/TensorO.h) contains the definitions of the TensorO class.
335 
336 [CheMPS2/include/chemps2/TensorOperator.h](CheMPS2/include/chemps2/TensorOperator.h) contains the definitions of the TensorOperator class.
337 
338 [CheMPS2/include/chemps2/TensorQ.h](CheMPS2/include/chemps2/TensorQ.h) contains the definitions of the TensorQ class.
339 
340 [CheMPS2/include/chemps2/TensorS0.h](CheMPS2/include/chemps2/TensorS0.h) contains the definitions of the TensorS0 class.
341 
342 [CheMPS2/include/chemps2/TensorS1.h](CheMPS2/include/chemps2/TensorS1.h) contains the definitions of the TensorS1 class.
343 
344 [CheMPS2/include/chemps2/TensorT.h](CheMPS2/include/chemps2/TensorT.h) contains the definitions of the TensorT class.
345 
346 [CheMPS2/include/chemps2/TensorX.h](CheMPS2/include/chemps2/TensorX.h) contains the definitions of the TensorX class.
347 
348 [CheMPS2/include/chemps2/ThreeDM.h](CheMPS2/include/chemps2/ThreeDM.h) contains the definitions of the ThreeDM class.
349 
350 [CheMPS2/include/chemps2/TwoDM.h](CheMPS2/include/chemps2/TwoDM.h) contains the definitions of the TwoDM class.
351 
352 [CheMPS2/include/chemps2/TwoIndex.h](CheMPS2/include/chemps2/TwoIndex.h) contains the definitions of the TwoIndex class.
353 
354 [CheMPS2/include/chemps2/Wigner.h](CheMPS2/include/chemps2/Wigner.h) contains the definitions of the Wigner class.
355 
356 Please note that these files are documented with doxygen comments. The
357 [doxygen html output](http://sebwouters.github.io/CheMPS2/doxygen/index.html)
358 can be consulted online.
359 
360 
361 List of files to perform test runs
362 ----------------------------------
363 
364 [tests/test1.cpp.in](tests/test1.cpp.in) contains several DMRG ground
365 state calculations in different symmetry sectors for the N2 molecule (d2h
366 symmetry) in the minimal STO-3G basis set.
367 
368 [tests/test2.cpp.in](tests/test2.cpp.in) contains a ground state DMRG
369 calculation of the ^1A1 state of H2O (c2v symmetry) in the 6-31G basis set.
370 
371 [tests/test3.cpp.in](tests/test3.cpp.in) contains a ground state DMRG
372 calculation of the ^1A1 state of CH4 (c2v symmetry) in the STO-3G basis set.
373 
374 [tests/test4.cpp.in](tests/test4.cpp.in) contains a ground state DMRG
375 calculation of the ^6A state of a linear Hubbard chain (forced c1 symmetry)
376 with 10 sites and open boundary conditions, containing 9 fermions (just below
377 half-filling).
378 
379 [tests/test5.cpp.in](tests/test5.cpp.in) contains an excited state DMRG
380 calculation in the ^1Ag symmetry sector of N2 (d2h symmetry) in the minimal
381 STO-3G basis set. The ground and two lowest excited states are determined.
382 
383 [tests/test6.cpp.in](tests/test6.cpp.in) contains a state-averaged
384 DMRG-SCF calculation of the first excited state of the ^1Ag sector of O2 (d2h
385 symmetry) in the CC-pVDZ basis set. The two 1s core orbitals are kept doubly
386 occupied, and two Ag, B2g, B3g, B1u, B2u, and B3u orbitals are chosen as
387 active space. A significant speedup is obtained with DIIS.
388 
389 [tests/test7.cpp.in](tests/test7.cpp.in) reads in
390 [tests/matrixelements/O2.CCPVDZ.FCIDUMP](tests/matrixelements/O2.CCPVDZ.FCIDUMP),
391 stores these matrix elements to disk, reads them back in from disk, and
392 compares the two versions.
393 
394 [tests/test8.cpp.in](tests/test8.cpp.in) contains a DMRG-SCF ground state
395 calculation of the ^1Ag state of N2 (d2h symmetry) in the CC-pVDZ basis set.
396 The two 1s core orbitals are kept doubly occupied. The next two Ag and B1u
397 orbitals (sigma bonding and antibonding), as well as one B2g, B3g, B2u, and
398 B3u orbital (pi bonding and antibonding) are chosen as active space. A
399 significant speedup is obtained with DIIS. This test is smaller than test6,
400 and is included for debugging with valgrind.
401 
402 [tests/test9.cpp.in](tests/test9.cpp.in) contains a ground state DMRG
403 calculation of a half-filled square 3 by 3 Hubbard lattice, both in the site
404 basis and in the momentum basis. For the latter, the matrix elements only have
405 fourfold permutation symmetry.
406 
407 [tests/test10.cpp.in](tests/test10.cpp.in) is a copy of
408 [tests/test3.cpp.in](tests/test3.cpp.in), in which the FCI and DMRG
409 2- and 3-RDM are compared. This test also shows that after calculating the
410 2- and/or 3-RDM, it is possible to continue sweeping.
411 
412 [tests/test11.cpp.in](tests/test11.cpp.in) is a copy of
413 [tests/test4.cpp.in](tests/test4.cpp.in), in which the FCI and DMRG
414 2- and 3-RDM are compared for a wavefunction with higher multiplicity.
415 
416 [tests/test12.cpp.in](tests/test12.cpp.in) contains a ground state DMRG
417 calculation of a BCS Hamiltonian. The matrix elements only have fourfold
418 permutation symmetry.
419 
420 [tests/test13.cpp.in](tests/test13.cpp.in) is a copy of the CASSCF
421 calculation in [tests/test8.cpp.in](tests/test8.cpp.in), but with full
422 configuration interaction (FCI) as active space solver. In addition,
423 the CASPT2 variational second order perturbation correction energy
424 is calculated.
425 
426 [tests/test14.cpp.in](tests/test14.cpp.in) is a copy of the CASSCF
427 calculation in [tests/test8.cpp.in](tests/test8.cpp.in) with a slightly
428 larger active space, and which works with ordered localized orbitals instead
429 of natural orbitals. The localization occurs by means of Edmiston-Ruedenberg,
430 and the ordering based on the Fiedler vector of the exchange matrix.
431 In addition a calculation of the CASPT2 variational second order
432 perturbation correction energy in the localized (i.e. not pseudocanonical)
433 basis is performed.
434 
435 [tests/matrixelements/CH4.STO3G.FCIDUMP](tests/matrixelements/CH4.STO3G.FCIDUMP)
436 contains the matrix elements for test3 and test10.
437 
438 [tests/matrixelements/H2O.631G.FCIDUMP](tests/matrixelements/H2O.631G.FCIDUMP)
439 contains the matrix elements for test2.
440 
441 [tests/matrixelements/N2.STO3G.FCIDUMP](tests/matrixelements/N2.STO3G.FCIDUMP)
442 contains the matrix elements for test1 and test5.
443 
444 [tests/matrixelements/O2.CCPVDZ.FCIDUMP](tests/matrixelements/O2.CCPVDZ.FCIDUMP)
445 contains the matrix elements for test6 and test7.
446 
447 [tests/matrixelements/N2.CCPVDZ.FCIDUMP](tests/matrixelements/N2.CCPVDZ.FCIDUMP)
448 contains the matrix elements for test8, test13, and test14.
449 
450 The python tests in [PyCheMPS2/tests/](PyCheMPS2/tests/) are an identical
451 conversion of the c++ tests.
452 
453 These test files illustrate how to use libchemps2. Note that the
454 tests are too small to see (near) linear scaling with the number of cores,
455 although improvement should still be noticeable.
456