Keywords
In this section we provide a complete list of allowed keywords for the input file used
in block2main
with a short description for each keyword.
Global Settings
- # / !
If a line starts with ‘!’ or ‘#’, the line will be ignored.
- outputlevel
Optional. Followed by one integer. 0 = Silent. 1 = Print information for each sweep. 2 = Print information for iteration at each site (default). 3 = Print information for each Davidson/CG iteration.
- orbitals
Required for most normal cases. Not required if reloading MPO or when
orbital_rotation
is the calculation type, or whenmodel
is given. Followed by the file name for the orbital definition and integrals, in FCIDUMP format orhdf5
format (used only inlibdmet
). Onlynonspinadapted
is supported fororbitals
withhdf5
format .- integral_tol
Optional. The integral values smaller than
integral_tol
will be discarded. Default is 1E-12 (for integral withhdf5
format) or 0 (for integral with FCIDUMP format).- model
Optional. Can be used to perform calculations for some simple model Hamiltonian and the
orbitals
keyword can be skipped. For example,model hubbard 16 1 2
will calculate ground state for 1-dimensional non-periodic Hubbard model with 16 sites and nearest-neighbor interaction, t = 1 and U = 2.model hubbard_periodic 16 1 2
will do the calculation for the periodic Hubbard model.model hubbard_kspace 16 1 2
will do the calculation for the periodic Hubbard model in the momentum space. One can then use this together withk_symmetry
to utilize the translational symmetry or not use it if the keywordk_symmetry
is not given.model hubbard 16 1 2 per-site
will print the energy for each site.- prefix
Optional. Path to scratch folder. Default is
./nodex/
.- num_thrds
Optional. Followed by an integer for the number of OpenMP threads to use. Default is 28 (if there is no
hf_occ integral
in the input file) or 1 (to be compatible withStackBlock
when there ishf_occ integral
in the input file). Note that the environment variableOMP_NUM_THREADS
is ignored.- mkl_thrds
Optional. Followed by an integer for the number of OpenMP threads to use for the MKL library. Default is 1.
- mem
Optional. Followed by an integer and a letter as the unit (g or G). Stack memory for doubles. Default is 2 GB. Note that the code may use a large amount of memory via dynamic allocation, which is not controlled by this number.
- intmem
Optional. Followed by an integer and a letter as the unit (g or G). Stack memory for integers. Default is 10% of
mem
.- mem_ratio
Optional. Followed by a float number (0.0 ~ 1.0). The ratio of main stack memory. Default is 0.4.
- min_mpo_mem
Optional. Followed by auto, True, or False. If True, MPO building and simplification will cost much less memory. But the computational cost will be higher due to IO cost. Default is auto, which is True if number of orbitals is >= 120.
- qc_mpo_type
Optional. Followed by auto (default), conventional, nc, or cn. The Hamiltonian MPO formalism type. The default is to use Conventional for non-big-site, and NC for big-site. Conventional DMRG is overall 50% faster than NC, but the cost of the middle site is 2 times higher than NC. If the memory is limited and
min_mpo_mem
is used, one should set NC MPO type to make memory cost more uniform.- cached_contraction
Optional. Followed by an integer 0 or 1 (default). If 1, cached contraction is used for improving performance.
- nonspinadapted
Optional. If given, the code will work in the non-spin-adapted
SZ
mode. Otherwise, it will work in the spin-adaptedSU2
mode.- k_symmetry
Optional. If given, the code will work in the non-spin-adapted or spin-adapted mode with additionally the K symmetry. Requiring the code to be built with
-DUSE_KSYMM
.- use_complex
Optional. If given, the code will work in the complex number mode, where the integral, MPO and MPS contain all complex numbers. FCIDUMP with real or complex integral can be accepted in this mode. Requiring the code to be built with
-DUSE_COMPLEX
. Conflict withuse_hybrid_complex
(checked).- use_hybrid_complex
Optional. If given, the code will work in the hybrid complex number mode, where the MPO is split into real and complex sub-MPOs. MPS rotation matrix are real matrices but center site tensor is complex. FCIDUMP with real or complex integral can be accepted in this mode. Requiring the code to be built with
-DUSE_COMPLEX
. Conflict withuse_complex
(checked).- use_general_spin
Optional. If given, the code will work in (fermionic) spin orbital (rather than spatial orbital). FCIDUMP will be intepreted as integrals between spin orbitals. If the FCIDUMP is actually the normal FCIDUMP for spatial orbitals, the extra keyword
trans_integral_to_spin_orbital
is required to make it work with general spin. Requiring the code to be built with-DUSE_SG
. Currently cannot be used together withk_symmetry
.- single_prec
Optional. If given, the code will work in single precision (float) rather than double precision (double).
- integral_rescale
Optional.
auto
(default) ornone
or floating point number. Ifauto
and the calculation is done with single precision, the average diagonal of the one-electron integral will be moved to the energy constant. Ideally, with single precision, we want the energy constant to be close to the final dmrg energy. Ifauto
and the calculation is done with double precision, nothing will happen. Ifnone
, nothing will happen. If the value ofintegral_rescale
is a number, the energy constant will be adjust to the given number by shifting the average diagonal of the one-electron integral. This should only be used when the particle number of the calculation is a constant (namely,nelec
contains only one number).- check_dav_tol
Optional.
auto
(default) or 1 or 0. Ifauto
or1
and the calculation is done with single precision, the davidson tolerance will be set to be no lower than 5E-6.- trans_integral_to_spin_orbital
Optional. If given, the FCIDUMP (in spatial orbitals) will be reinterpretted to work with general spin. Only makes sense together with
use_general_spin
.- singlet_embedding
Optional. If given, the code will use the singlet embedding formalism. Only have effects in the spin-adapted
SU2
mode. No effects if it is a restart calculation.- conn_centers
Optional. Followed by a list of indices of connection sites or by
auto
and the number of processor groups. Ifconn_centers
is given, the parallelism over sites will be used (MPI required,twodot
only). For example,conn_centers auto 5
will divide the processors into 5 groups. Only supports the standard DMRG calculation.- restart_dir
Optional. Followed by directory name. If
restart_dir
is given, after each sweep, the MPS will be backed up in the given directory.- restart_dir_per_sweep
Optional. Followed by directory name. If
restart_dir_per_sweep
is given, after each sweep, the MPS will be backed up in the given directory name followed by the sweep index as the name suffix. This will save MPSs generated from all sweeps.- fp_cps_cutoff
Optional. Followed by a small fractional number. Sets the float-point number cutoff for saving disk storage. Default is
1E-16
.- release_integral
Optional. If given, memory used by stroring the full integral will be release after building MPO (but before DMRG).
Calculation Types
The default calculation type is DMRG (without the need to write any keywords).
- fullrestart
Optional. If given, the initial MPS will be read from disk. Normally this keyword will be automatically added if any of the
restart_*
keywords are used.- oh / restart_oh
Expectation value calculation on the DMRG optimized MPS or reloaded MPS.
- onepdm / restart_onepdm
One-particle density matrix calculation on the DMRG optimized MPS or reloaded MPS.
onepdm
can run with eithertwodot_to_onedot
,onedot
ortwodot
.- twopdm / restart_twopdm
Two-particle density matrix calculation on the DMRG optimized MPS or reloaded MPS.
- threepdm / restart_threepdm
Three-particle density matrix calculation on the DMRG optimized MPS or reloaded MPS. Cannot be used together with
conventional_npdm
.- fourpdm / restart_fourpdm
Four-particle density matrix calculation on the DMRG optimized MPS or reloaded MPS. Cannot be used together with
conventional_npdm
.- tran_onepdm / restart_tran_onepdm
One-particle transition density matrix among a set of MPSs.
- tran_twopdm / restart_tran_twopdm
Two-particle transition density matrix among a set of MPSs.
- tran_threepdm / restart_tran_threepdm
Three-particle transition density matrix among a set of MPSs. Cannot be used together with
conventional_npdm
.- tran_fourpdm / restart_tran_fourpdm
Four-particle transition density matrix among a set of MPSs. Cannot be used together with
conventional_npdm
.- tran_oh / restart_tran_oh
Operator overlap between each pair in a set of MPSs.
- diag_twopdm / restart_diag_twopdm
Diagonal two-particle density matrix calculation.
- correlation / restart_correlation
Spin and charge correlation function.
- copy_mps / restart_copy_mps
Copy MPS with one tag to another tag. Followed by the tag name for the output MPS. The input MPS tag is given by
mps_tags
. The MPS transformation is also handled with this calculation type.- sample / restart_sample
Printing configuration state function (CSF) or determinant coefficients.
- orbital_rotation
Orbital rotation of an MPS to generate another MPS.
- compression
MPS compression.
- delta_t
Followed by a single float value or complex value as the time step for the time evolution. The computation will apply \(\exp (-\Delta t H) |\psi\rangle\) (with multiple steps). So when it is a real float value, we will do imaginary time evolution of the MPS (namely, optimizing to ground state or finite-temperature state). When it is a pure imaginary value, we will do real time evolution of the MPS (namely, solving the time dependent Schrodinger equation). General complex value can also be supported, but may not be useful.
- stopt_dmrg
First step of stochastic perturbative DMRG, which is the normal DMRG with a small bond dimension.
- stopt_compression
Second step of stochastic perturbative DMRG, which is the compression of \(QV |\Psi_0\rangle\). In general a bond diemension that is much larger than the first step should be used.
- stopt_sampling
Third step of stochastic perturbative DMRG. Followed by an integer as the number of CSF / determinants to be sampled. If any of the first and second step is done in the non-spin-adapted mode, the determinants will be sampled and this step must also be in the non-spin-adapted mode. Otherwise, CSF will be sampled if the keyword
nonspinadapted
is given, and determinants will be sampled if the keywordnonspinadapted
is not given.- restart_nevpt2_npdm
Compute 1-4 PDM for DMRG-SC-NEVPT2. If there are multiple roots, the calculation will be performed for all roots. The 1-4PDM will be used to compute the SC-NEVPT2 intermediate Eqs. (A16) and (A22) in the spin-free NEVPT2 paper. Only the two SC-NEVPT2 intermediates will be written into the disk.
- restart_mps_nevpt
Followed by three integers, representing the number of active, inactive, and external orbitals. Compute the
V_i
andV_a
correlation energy in DMRG-SC-NEVPT2 using MPS compression. Only the spin-adapted version is implemented. If there are multiple roots, the keywordnevpt_state_num
is required to set which root should be used to compute the correlation energy.
Calculation Modifiers
- target_t
Optional. Followed by a single float value as the total time for time evolution. This keyword should be used only together with
delta_t
. Default is 1.- te_type
Optional. Followed by
rk4
ortangent_space
. This keyword sets the time evolution algorithm. This keyword should be used only together withdelta_t
. Default isrk4
.- statespecific
If
statespecific
keyword is in the input (with no associated value). This option implies that a previous state-averaged dmrg calculation has already been performed. This calculation will refine each individual state. This keyword should be used only with DMRG calculation type.- soc
If
soc
keyword is in the input (with no associated value), the (normal or transition) one pdm for triplet excitation operators will be calculated (which can be used for spin-orbit coupling calculation). This keyword should be used only together withonepdm
,tran_onepdm
,restart_onepdm
, orrestart_tran_onepdm
. Not supported fornonspinadapted
.- overlap
If
overlap
keyword is in the input (with no associated value), the expectation of identity operator will be calculated (which can be used for the overlap matrix between states). Otherwise, when the overlap keyword is not given, the full Hamiltonian is used. For compression, if this keyword is in the input, it directly compresses the given MPS. Otherwise, the contration of full Hamiltonian MPO and MPS is compressed. This keyword should only be used together withoh
,tran_oh
,restart_oh
,restart_tran_oh
,compression
, andstopt_compression
.- nat_orbs
If given, the natural orbitals will be computed. Optionally followed by the filename for storing the rotated integrals (FCIDUMP). If no value is associated with the keyword
nat_orbs
, the rotated integrals will not be computed. This keyword can only be used together withrestart_onepdm
oronepdm
.- nat_km_reorder
Optional keyword with no associated value. If given, the artificial reordering in the natural orbitals will be removed using Kuhn-Munkres algorithm. This keyword can only be used together with
restart_onepdm
oronepdm
. And the keywordnat_orbs
must also exist.- nat_positive_def
Optional keyword with no associated value. If given, artificial rotation in the logarithm of the rotation matrix can be avoid, by make the rotation matrix quasi-positive-definite, with “quasi” in the sense that the rotation matrix is not Hermitian. This keyword can only be used together with
restart_onepdm
oronepdm
. And the keywordnat_orbs
must also exist.- trans_mps_to_sz
Optional keyword with no associated value. If given, the MPS will be transformed to non-spin-adapted before being saved. This keyword can only be used together with
restart_copy_mps
orcopy_mps
.- trans_mps_to_singlet_embedding
Optional keyword with no associated value. If given, the MPS will be transformed to singlet-embedding format before being saved. This keyword can only be used together with
restart_copy_mps
orcopy_mps
.- trans_mps_from_singlet_embedding
Optional keyword with no associated value. If given, the MPS will be transformed to non-singlet-embedding format before being saved. This keyword can only be used together with
restart_copy_mps
orcopy_mps
.- trans_mps_to_complex
Optional keyword with no associated value. If given, the MPS will be transformed to complex wavefunction with real rotation matrix before being saved. This keyword can only be used together with
restart_copy_mps
orcopy_mps
, and optionally withsplit_states
. This keyword is conflict with othertrans\_mps\_*
keywords. To load this MPS in the subsequent calculations, the keywordcomplex_mps
must be used.- split_states
Optional keyword with no associated value. If given, the state averaged MPS will be split into individual MPSs. This keyword can only be used together with
restart_copy_mps
orcopy_mps
, and optionally withtrans_mps_to_complex
. This keyword is conflict with othertrans\_mps\_*
keywords. The individual MPS will be the tag given by the keywordrestart_copy_mps
orcopy_mps
with-<n>
appended, wheren
is the root index counting from zero.- resolve_twosz
Optional. Followed by an integer, which is two times the projected spin. The transformed SZ MPS will have the specified projected spin. If the keyword
resolve_twosz
is not given, an MPS with ensemble of all possible projected spins will be produced (which is often not very useful). This keyword can only be used together withrestart_copy_mps
orcopy_mps
. And the keywordtrans_mps_to_sz
must also exist.- normalize_mps
Optional keyword with no associated value. If given, the transformed SZ MPS will be normalized. This keyword can only be used together with
restart_copy_mps
orcopy_mps
. And the keywordtrans_mps_to_sz
must also exist.- big_site
Optional. Followed by a string for the implementation of the big site. Possible implementations are
folding
,fock
(only withnonspinadapted
),csf
(only withoutnonspinadapted
). This keyword can only be used in dynamic correlation calculations. If this keyword is not given, the dynamic correlation calculation will be performed with normal MPS with no big sites.- expt_algo_type
Optional. Followed by a string
auto
,fast
,normal
,symbolfree
, orlowmem
. Default isauto
. This keyword can only be used with density matrix or transition density matrix calculations.auto
isfast
ifconventional_npdm
is given, orsymbolfree
ifconventional_npdm
is not given.normal
uses less memory compared tofast
, but the complexity can be higher.lowmem
uses less memory compared tosymbolfree
, but the complexity can be higher.symbolfree
is in general more efficient thanfast
andnormal
, but it is only available ifconventional_npdm
is not given. For 3- and 4-particle density matrices, when this keyword is notauto
orsymbolfree
, it may consume a significant large amount of memory to store the symbols.- conventional_npdm
Optional, mainly for backward compatibility. If given, will use the conventional manual npdm code. This is only available for 1- and 2- particle density matrices. For most cases, the conventional manual code is slower. For soc 1-particle density matrix, only the conventional manual code is available.
- simple_parallel
Optional. Followed by an empty string (same as
ij
) orij
orkl
. When this keyword is not given, the conventional parallel rule for QC-DMRG will be used. Otherwise, the simple parallel scheme based on distributing integral according toij
orkl
indices is used. Whenqc_mpo_type
is auto, this simple scheme will also change the center for middle transformation to reduce the MPO bond dimension. The simple parallel scheme may be good for saving per-processor MPO memory cost for large scale parallelized DMRG.- condense_mpo
Optional. Followed by an integer (must be a power of 2, default is 1). When
condense_mpo
is not 1,block2
will merge every two adjacent MPO sites into a larger site (after the MPO is created), repeatinglog(condense_mpo)
times, until the total number of sites isn_sites / condense_mpo
. Not working with SU2 symmetry. Whencondense_mpo 2
is used with general spin, the calculation will be done with two spin orbitals as a site rather than one spin orbital. Not working withtwopdm
related keywords. Require the keywordsimple_parallel
for the parallelization of the condensed MPO.- one_body_parallel_rule
Optional keyword with no associated value. If given, the more efficient parallelization rule will be used to distribute the MPO. This rule only works when the two-body term is zero or purely local. Real space Huabbard model is one of the case. For such Hamiltonian, the default (quantum chemistry) parallelization rule can still work, but may have no improvements with multiple processors. If this keyword is used with non-trivial two-body term, runtime error may happen.
- complex_mps
Optional keyword with no associated value. If given, complex expectation values will be computed for MPS with complex wavefunction tensor and real rotation matrices (in non-complex mode). Should be used together with
pdm
,oh
, or (complex)delta_t
type calculations. In complex mode, this should not be used as everything is complex.- tran_bra_range
Optional. Followed by the range parameter of bra state indices for computing transition density matrices. Normally two numbers are given, which is the starting index and endding index (not included).
- tran_ket_range
Optional. Followed by the range parameter of ket state indices for computing transition density matrices. Normally two numbers are given, which is the starting index and endding index (not included).
- tran_triangular
Optional keyword with no associated value. If given, only the transition density matrices with bra state index equal to or greater than the ket state index will be computed.
- skip_inact_ext_sites
Optional keyword with no associated value. If given, for uncontracted dynamic correlation calculations, the sweeps will skip inactive and external sites, so that the efficiency can be higher and the accuracy is not affected. This should only be used with uncontracted dynamic correlation keywords (checked) without any big sites. Normally it is useful only for dynamic correlation with singles (such as
mrcis
).- full_integral
Optional keyword with no associated value. If not given, and it is a dynamic correlation with singles (namely, with keywords
nevpt2s
,mrcis
,mrrept2s
,nevpt2-i
,nevpt2-r
,mrrept2-i
, ormrrept2-r
), the two-electron integral elements with more than two virtual indices will be set to zero. This should save some MPO contruction time, without affecting the sweep time cost and accuracy. If this keyword is given, the full integral elements will be used for constructing MPO.- nevpt_state_num
Followed by a single integer, the index of the root (counting from zero) used for SC-NEVPT2. Only useful for the calculation type
restart_mps_nevpt
.
Uncontracted Dynamic Correlation
There can only be at most one dynamic correlation keyword (checked). Any of the following keyword must be followed by 2 integers (representing number of orbitals in the active space and number of electrons in the active space), or 3 integers (representing number of orbitals in the inactive, active, and external space, respectively).
- dmrgfci
Not useful for general purpose. Treating the inactive and external space using full Configuration Interaction (FCI).
- casci
Treating the inactive space as a single CSF (all occupied) and the external space as a single CSF (all empty).
- mrci
Same as
mrcisd
.- mrcis
Multi-configuration CI with singles. The inactive / virtual space can have at most one hole / electron.
- mrcisd
Multi-configuration CI with singles and doubles. The inactive / virtual space can have at most two holes / electrons.
- mrcisdt
Multi-configuration CI with singles and doubles and triples. The inactive / virtual space can have at most three holes / electrons.
- nevpt2
Same as
nevpt2sd
.- nevpt2s
Second order N-Electron Valence States for Multireference Perturbation Theory with singles. The inactive / virtual space can have at most one hole / electron.
- nevpt2sd
Second order N-Electron Valence States for Multireference Perturbation Theory with singles and doubles. The inactive / virtual space can have at most two holes / electrons. The zeroth-order Hamiltonian is Dyall’s Hamiltonian.
- mrrept2
Same as
mrrept2sd
.- mrrept2s
Second order Restraining the Excitation degree Multireference Perturbation Theory (MRREPT) with singles. The inactive / virtual space can have at most one hole / electron.
- mrrept2sd
Second order Restraining the Excitation degree Multireference Perturbation Theory (MRREPT) with singles and doubles. The inactive / virtual space can have at most two holes / electrons. The zeroth-order Hamiltonian is Fink’s Hamiltonian.
Schedule
- onedot
Using the one-site DMRG algorithm.
onedot
will be implicitly used if you restart from aonedot
mps (can be obtained from previous run withtwodot_to_onedot
).- twodot
Default. Using the two-site DMRG algorithm.
- twodot_to_onedot
Followed by a single number to indicate the sweep iteration when to switch from the two-site DMRG algorithm to the one-site DMRG algorithm. The sweep iteration is counted from zero.
- schedule
Optional. Followed by the word
default
or a multi-line DMRG schedule with the last line beingend
. If not given, the defualt schedule will be used. Between the keywordschedule
andend
each line needs to have four values. They are corresponding to starting sweep iteration (counting from zero), MPS bond dimension, tolerance for the Davidson iteration, and noise, respectively. Starting sweep iteration is the sweep iteration in which the given parameters in the line should take effect. For each line, alternatively, one can providen_sites - 1
values for the MPS bond dimension, where the ith number represents the right virtual bond dimension for the MPS tensor at site i. If this is the case, the site-dependent MPS bond dimension truncation will be used.- store_wfn_spectra
Optional with no associated value. If given, the singular values at each left-right partition during the last DMRG sweep will be stored as
sweep_wfn_spectra.npy
after convergence. Only works with DMRG type calculation. The stored array is a numpy array of 1 dimensional numpy array. The inner arrays normally do not have all the same length. For spin-adapted, each singular values correspond to a multiplet. So for non-singlet, the wavefunction spectra have different interpretation between SU2 and SZ. Additionally, when this keyword is given, the bipartite entanglement of the MPS will be computed, as \(S_k = - \sum_i \Lambda_i^2 \log \Lambda_i^2\) where \(\Lambda_i\) are all singular values found at site k. The bipartite entanglement will be printed and stored assweep_wfn_entropy.npy
as a 1 dimensional numpy array.- extrapolation
Optional. Should only be used for standard DMRG calculation with the reverse schedule. Will print the extrapolated energy and generate the energy extrapolation plot (saved as a figure).
- maxiter
Optional. Followed by an integer. Maximum number of sweep iterations. Default is 1.
- sweep_tol
Optional. Followed by a small float number. Convergence for the sweep. Default is 1E-6.
- startM
Optional. Followed by an integer. Starting bond dimension in the default schedule. Default is 250.
- maxM
Required for default schedule. Followed by an integer. Maximum bond dimension in the default schedule.
- lowmem_noise
Optional. If given, the noise step will require less memory but potentially worse openmp load-balancing.
- dm_noise
Optional. If given, the density matrix noise will be used instead of the default perturbative noise. Density matrix noise is much cheaper but not very effective.
- cutoff
Optional. Followed by a small float number. States with eigenvalue below this number will be discarded, even when the bond dimension is large enough to keep this state. Default is 1E-14.
- svd_cutoff
Optional. Followed by a small float number. Cutoff of singular values used in parallel over sites. Default is 1E-12.
- svd_eps
Optional. Followed by a small float number. Accuracy of SVD for connection sites used in parallel over sites. Default is 1E-4.
- trunc_type
Optional. Can be
physical
(default) orreduced
, wherereduced
re-weight eigenvalues by their multiplicities (only useful in theSU2
mode).- decomp_type
Optional. Can be
density_matrix
(default) orsvd
, where svd may be less numerical stable and not working withnroots > 1
.- real_density_matrix
Optional. Only have effects in the complex mode and when
decomp_type
isdensity_matrix
. If given, the imaginary part of the density matrix will be discarded before diagonalization. This means that all rotation matrices will be orthogonal rather than unitary, although they will be stored as complex matrices. For complex mode DMRG with more than one roots, this keyword has to be used (not checked).- davidson_max_iter
Optional. Maximal number of iterations in Davidson. Default is 5000. If this number is reached but convergence is not achieved, the calculation will abort.
- davidson_soft_max_iter
Optional. Maximal number of iterations in Davidson. Default is -1. If this number is reached but convergence is not achieved, the calculation will continue as if the convergence is achieved. If this numebr is -1, or larger than or equal to
davidson_max_iter
, this keyword has no effect anddavidson_max_iter
is used instead.- n_sub_sweeps
Optional. Number of sweeps for each time step. Defualt is 2. This keyword only has effect when used with
delta_t
and whente_type
isrk4
.
System Definition
- nelec
Optional. Followed by one or more integrers. Number of electrons in the target wavefunction. If not given, the value from FCIDUMP is used (and the keyword
orbtials
must be given).- spin
Optional. Followed by one or more integrers. Two times the total spin of the target wavefunction in spin-adapted calculation. Or Two times the projected spin (number of alpha electrons minus number of beta electrons) of the target wavefunction in non-spin-adapted calculation. If not given, the value from FCIDUMP is used. If FCIDUMP is not given, 0 is used.
- irrep
Optional. Followed by one or more integrers. Point group irreducible representation of the target wavefunction. If not given, the value from FCIDUMP is used. If FCIDUMP is not given, 1 is used. MOLPRO notation is used, where 1 always means the trivial irreducible representation.
- sym
Optional. Followed by a lowercase string for the (Abelian) point group name. Default is
d2h
. If the real point group isc1
orc2
, settingsym d2h
will also work.- k_irrep
Optional. Followed by one or more integrers. LZ / K irreducible representation number of the target wavefunction. If not given, the value from FCIDUMP is used. If FCIDUMP is not given, 0 is used.
- k_mod
Optional. Followed by one integer. Modulus for the K symmetry. Zero means LZ symmetry. If not given, the value from FCIDUMP is used. If FCIDUMP is not given, 0 is used.
- nroots
Optional. Followed by one integer. Number of roots. Default is 1. For
nroots > 1
,oh
orrestart_oh
will calculate the expectation of Hamiltonian on every state.tran_oh
orrestart_tran_oh
will calculate the expectation of Hamiltonian on every possible pair of states as bra and ket states. The parameters for the quantum number of the MPS, namelyspin
,isym
andnelec
can also take multiple numbers. This can also be combined withnroots > 1
, which will then enable transition density matrix between MPS with different quantum numbers to be calculated (in a single run). This kind of calulation usually needs a largernroots
than thenroots
actually needed, otherwise, some excited states with different quantum number from the ground-state may be missing. To save time, one may first do a calculation with largernroots
and small bond dimensions, and then dofullrestart
and changenroots
to a smaller value. Then only the lowestnroots
MPSs will be restarted.- weights
Optional. Followed by a list of fractional numbers. The weights of each state for the state average calculation. If not given, equal weight will be used for all states.
- mps_tags
Optional. Followed by a single string or a list of strings. The MPS in scratch directory with the specific tag/tags will be loaded for restart (for
statespecific
,restart_onepdm
, etc.). The default MPS tag for input/output isKET
.- read_mps_tags
Optional. Followed by a string. The tag for the constant (right hand side) MPS for compression. The tag of the output MPS in compression is set using
mps_tags
.- proj_mps_tags
Optional. Followed by a single string or a list of strings. The tag for the MPSs to be projected out during DMRG. Must be used together with
proj_weights
. The projection will be done by changing Hamiltonian from \(\hat{H}\) to \(\hat{H} + \sum_i w_i |\phi_i\rangle \langle \phi_i|\) (the level shift approach), where \(|\phi_i\rangle\) are the MPSs to be projected out. \(w_i\) are the weights.- proj_weights
Optional. Followed by a single float number or a list of float numbers. Can be used together with
proj_mps_tags
. The number of float numbers in this keyword must be equal to the length ofproj_mps_tags
. Normally, the weights are positive and they should be larger than the energy gap. If the weight is too small, you will get unphyiscal eigenvalues asEi + wi
, whereEi
is the energy of the MPSs to be projected out. Ifstatespecific
keyword is in the input, it will change the projection method from the orthogonalization method \(\hat{H} - \sum_i |\phi_i\rangle \langle \phi_i|\) to the level shift approach \(\hat{H} + \sum_i w_i |\phi_i\rangle \langle \phi_i|\).- symmetrize_ints
Optional. Followed by a small float number. Setting the largest allowed value for the integral element that violates the point group or K symmetry. Default is 1E-10. The symmetry-breaking integral elements will be discarded in the calculation anyway. Setting this keyword will only control whether the calculation can be performed or an error will be generated.
- occ
Optional. Followed by a list of float numbers between 0 and 2 for spatial orbital occupation numbers, or a list of float numbers between 0 and 1 for spin orbital occupation numbers, or a list of float numbers between 0 and 1 for the probability for each of four states at each site (experimental). This keyword should only be used together with
warmup occ
.- bias
Optional. Followed by a non-negative float number. If not 1.0, sets an power based bias to occ.
- cbias
Optional. Followed by a non-negative float number. If not 0.0, sets a constant shift towards the equal-possibility occ.
cbias
is normally useful for shifting integral occ, whilebias
only shifts fractional occ.- init_mps_center
Optional. Followed by a site index (counting from zero). Default is zero. This is the canonical center for the initial guess MPS.
- full_fci_space
Optional, not useful for general user. If
full_fci_space
keyword is in the input (with no associated value), the full fci space is used (including block quantum numbers outside the space of the wavefunction target quantum number).- trans_mps_info
Optional, experimental. If
trans_mps_info
keyword is in the input (with no associated value), theMPSInfo
will be initialized usingSZ
quantum numbers if inSU2
mode, or usingSU2
quantum numbers if inSZ
mode. A transformation ofMPSInfo
is then performed betweenSZ
andSU2
quantum numbers.MultiMPSInfo
cannot be supported with this keyword.- random_mps_init
Optional. If given, the initial guess for the output MPS in compression will be random initialized in the way set by the
warmup
keyword. Otherwise, the constant right hand side MPS will be copied as the the initial guess for the output MPS.- warmup
Optional. If
wamup occ
then the initial guess will be generated using occupation numbers. Otherwise, the initial guess will be generated assuming every quantum number has the same probability (default).
Orbital Reordering
There can only be at most one orbital reordering keyword (checked).
- noreorder
The order of orbitals is not changed.
- nofiedler
Same as
noreorder
.- gaopt
Genetic algorithm for orbital ordering. Followed by (optionally) the configuration file for the
gaopt
subroutine. Default parameters for the genetic algorithm will be used if no configuration file is given.- fiedler
Default. Fiedler orbital reordering.
- irrep_reorder
Group orbitals with the same irrep together.
- reorder
Followed by the name of a file including the space-sparated orbital reordering indices (counting from one).
Unused Keywords
- hf_occ integral
Optional. For StackBlock compatibility only.