chemps2 - spin-adapted DMRG for ab initio quantum chemistry
chemps2 is a scientific code to perform spin-adapted
density matrix renormalization group (DMRG) calculations for ab initio
quantum chemistry fcidump files. This method allows one to obtain numerical
accuracy in active spaces beyond the capabilities of full configuration
interaction (FCI) and can return the active space 2-, 3-, and 4-RDM. The
method is therefore ideal to replace the FCI solver in the complete active
space self consistent field (CASSCF) and complete active space second order
perturbation theory (CASPT2) methods. The link to the user manual can be
found in the section SEE ALSO.
Conventions for the symmetry group and irrep numbers (same as
psi4):
| 0 1 2 3 4 5 6 7
---------|-----------------------------------------
0 : c1 | A
1 : ci | Ag Au
2 : c2 | A B
3 : cs | Ap App
4 : d2 | A B1 B2 B3
5 : c2v | A1 A2 B1 B2
6 : c2h | Ag Bg Au Bu
7 : d2h | Ag B1g B2g B3g Au B1u B2u B3u
- FCIDUMP =
/path/to/fcidump
- Note that orbital irreps in the FCIDUMP file follow molpro
convention!
- GROUP =
int
- Set the psi4 symmetry group number [0-7] which corresponds to the FCIDUMP
file.
- MULTIPLICITY
= int
- Overwrite the spin multiplicity [2S+1] of the FCIDUMP file.
- NELECTRONS =
int
- Overwrite the number of electrons of the FCIDUMP file.
- IRREP =
int
- Overwrite the target wavefunction irrep [0-7] of the FCIDUMP file (psi4
convention).
- EXCITATION =
int
- Set which excitation should be calculated. If zero, the ground state is
calculated (default 0).
- SWEEP_STATES
= int,int,int
- Set the number of reduced renormalized basis states for the successive
sweep instructions (positive integers).
- SWEEP_ENERGY_CONV
= flt,flt,flt
- Set the energy convergence to stop the successive sweep instructions
(positive floats).
- SWEEP_MAX_SWEEPS
= int,int,int
- Set the maximum number of sweeps for the successive sweep instructions
(positive integers).
- SWEEP_NOISE_PREFAC
= flt,flt,flt
- Set the noise prefactors for the successive sweep instructions
(floats).
- SWEEP_DVDSON_RTOL
= flt,flt,flt
- Set the residual norm tolerance for the Davidson algorithm for the
successive sweep instructions (positive floats).
- NOCC =
int,int,int,int
- Set the number of occupied (external core) orbitals per irrep (psi4 irrep
ordering).
- NACT =
int,int,int,int
- Set the number of active orbitals per irrep (psi4 irrep ordering).
- NVIR =
int,int,int,int
- Set the number of virtual (secondary) orbitals per irrep (psi4 irrep
ordering).
- MOLCAS_2RDM =
/path/to/2rdm/output
- When all orbitals are active orbitals, write out the 2-RDM in HDF5 format
when specified (default unspecified).
- MOLCAS_3RDM =
/path/to/3rdm/output
- When all orbitals are active orbitals, write out the 3-RDM in HDF5 format
when specified (default unspecified).
- MOLCAS_F4RDM
= /path/to/f4rdm/output
- When all orbitals are active orbitals, write out the 4-RDM contracted with
the Fock operator in HDF5 format when specified (default
unspecified).
- MOLCAS_FOCK =
/path/to/fock/input
- When all orbitals are active orbitals, read in this file containing the
Fock operator (default unspecified).
- MOLCAS_FIEDLER
= bool
- When all orbitals are active orbitals, switch on orbital reordering based
on the Fiedler vector of the exchange matrix (TRUE or FALSE; default
FALSE).
- MOLCAS_ORDER
= int,int,int,int
- When all orbitals are active orbitals, provide a custom orbital reordering
(default unspecified). When specified, this option takes precedence over
MOLCAS_FIEDLER.
- MOLCAS_OCC =
int,int,int,int
- When all orbitals are active orbitals, set initial guess to an ROHF
determinant (default unspecified). The occupancy integers should be 0, 1
or 2 and the orbital ordering convention is FCIDUMP.
- MOLCAS_MPS =
bool
- When all orbitals are active orbitals, switch on the creation of MPS
checkpoints (TRUE or FALSE; default FALSE).
- MOLCAS_STATE_AVG
= bool
- Switch on writing to disk of N-RDMs of intermediate roots (TRUE or FALSE;
default FALSE).
- SCF_STATE_AVG
= bool
- Switch on state-averaging (TRUE or FALSE; default FALSE).
- SCF_DIIS_THR
= flt
- Switch on DIIS when the update norm is smaller than the given threshold
(default 0.0).
- SCF_GRAD_THR
= flt
- Gradient norm threshold for convergence of the DMRG-SCF orbital rotations
(default 1e-6).
- SCF_MAX_ITER
= int
- Specify the maximum number of DMRG-SCF iterations (default 100).
- SCF_ACTIVE_SPACE
= char
- Rotate the active space orbitals: no additional rotations (I), natural
orbitals (N), localized and ordered orbitals (L), or ordered orbitals only
(F) (default I).
- SCF_MOLDEN =
/path/to/molden
- Rotate the FCIDUMP orbitals to the DMRG-SCF occupied (external core),
active, and virtual (secondary) orbitals.
- CASPT2_CALC =
bool
- Switch on the CASPT2 calculation (TRUE or FALSE; default FALSE).
- CASPT2_ORBS =
char
- Perform the DMRG calculation for the 4-RDM in the SCF_ACTIVE_SPACE
orbitals (A) or in the pseudocanonical orbitals (P) (default A).
- CASPT2_IPEA =
flt
- Ionization potential - electron affinity shift (default 0.0).
- CASPT2_IMAG =
flt
- Imaginary level shift (default 0.0).
- CASPT2_CHECKPT
= bool
- Create checkpoints to continue the CASPT2 4-RDM calculation over multiple
runs (TRUE or FALSE; default FALSE).
- CASPT2_CUMUL
= bool
- Use a cumulant approximation for the CASPT2 4-RDM and overwrite
CASPT2_CHECKPT to FALSE (TRUE or FALSE; default FALSE).
- PRINT_CORR =
bool
- Print correlation functions (TRUE or FALSE; default FALSE).
- TMP_FOLDER =
/path/to/tmp/folder
- Overwrite the tmp folder for the renormalized operators. With MPI,
separate folders per process can (but do not have to) be used (default
/tmp).
$ cd /tmp
$ wget 'https://github.com/SebWouters/CheMPS2/raw/master/tests/matrixelements/N2.CCPVDZ.FCIDUMP'
$ ls -al N2.CCPVDZ.FCIDUMP
$ wget 'https://github.com/SebWouters/CheMPS2/raw/master/tests/test14.input'
$ sed -i "s/path\/to/tmp/" test14.input
$ cat test14.input
$ chemps2 --file=test14.input
Written by Sebastian Wouters
<sebastianwouters@gmail.com>
Reporting bugs:
https://github.com/sebwouters/CheMPS2/issues
User manual:
http://sebwouters.github.io/CheMPS2/index.html
CheMPS2: a spin-adapted implementation of DMRG for ab initio quantum chemistry
Copyright (C) 2013-2021 Sebastian Wouters
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.