Input File: 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 when model is given. Followed by the file name for the orbital definition and integrals, in FCIDUMP format or hdf5 format (used only in libdmet). Only nonspinadapted is supported for orbitals with hdf5 format .

integral_tol

Optional. The integral values smaller than integral_tol will be discarded. Default is 1E-12 (for integral with hdf5 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 with k_symmetry to utilize the translational symmetry or not use it if the keyword k_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 with StackBlock when there is hf_occ integral in the input file). Note that the environment variable OMP_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-adapted SU2 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 with use_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 with use_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 with k_symmetry.

single_prec

Optional. If given, the code will work in single precision (float) rather than double precision (double).

integral_rescale

Optional. auto (default) or none or floating point number. If auto 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. If auto and the calculation is done with double precision, nothing will happen. If none, nothing will happen. If the value of integral_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. If auto or 1 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. If conn_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 either twodot_to_onedot, onedot or twodot.

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 keyword nonspinadapted 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 and V_a correlation energy in DMRG-SC-NEVPT2 using MPS compression. Only the spin-adapted version is implemented. If there are multiple roots, the keyword nevpt_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 or tangent_space. This keyword sets the time evolution algorithm. This keyword should be used only together with delta_t. Default is rk4.

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 with onepdm, tran_onepdm, restart_onepdm, or restart_tran_onepdm. Not supported for nonspinadapted.

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 with oh, tran_oh, restart_oh, restart_tran_oh, compression, and stopt_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 with restart_onepdm or onepdm.

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 or onepdm. And the keyword nat_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 or onepdm. And the keyword nat_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 or copy_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 or copy_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 or copy_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 or copy_mps, and optionally with split_states. This keyword is conflict with other trans\_mps\_* keywords. To load this MPS in the subsequent calculations, the keyword complex_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 or copy_mps, and optionally with trans_mps_to_complex. This keyword is conflict with other trans\_mps\_* keywords. The individual MPS will be the tag given by the keyword restart_copy_mps or copy_mps with -<n> appended, where n 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 with restart_copy_mps or copy_mps. And the keyword trans_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 or copy_mps. And the keyword trans_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 with nonspinadapted), csf (only without nonspinadapted). 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, or lowmem. Default is auto. This keyword can only be used with density matrix or transition density matrix calculations. auto is fast if conventional_npdm is given, or symbolfree if conventional_npdm is not given. normal uses less memory compared to fast, but the complexity can be higher. lowmem uses less memory compared to symbolfree, but the complexity can be higher. symbolfree is in general more efficient than fast and normal, but it is only available if conventional_npdm is not given. For 3- and 4-particle density matrices, when this keyword is not auto or symbolfree, 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 and transition density matrix between different irreps, only the conventional manual code is available.

simple_parallel

Optional. Followed by an empty string (same as ij) or ij or kl. 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 to ij or kl indices is used. When qc_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), repeating log(condense_mpo) times, until the total number of sites is n_sites / condense_mpo. Not working with SU2 symmetry. When condense_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 with twopdm related keywords. Require the keyword simple_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, or mrrept2-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 a onedot mps (can be obtained from previous run with twodot_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 being end. If not given, the defualt schedule will be used. Between the keyword schedule and end 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 provide n_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 as sweep_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) or reduced, where reduced re-weight eigenvalues by their multiplicities (only useful in the SU2 mode).

decomp_type

Optional. Can be density_matrix (default) or svd, where svd may be less numerical stable and not working with nroots > 1.

real_density_matrix

Optional. Only have effects in the complex mode and when decomp_type is density_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. If this numebr is larger than davidson_soft_max_iter, this keyword has no effect.

davidson_soft_max_iter

Optional. Maximal number of iterations in Davidson. Default is 4000. 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 and davidson_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 when te_type is rk4.

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 is c1 or c2, setting sym 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 or restart_oh will calculate the expectation of Hamiltonian on every state. tran_oh or restart_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, namely spin, isym and nelec can also take multiple numbers. This can also be combined with nroots > 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 larger nroots than the nroots 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 larger nroots and small bond dimensions, and then do fullrestart and change nroots to a smaller value. Then only the lowest nroots 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 is KET.

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 of proj_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 as Ei + wi, where Ei is the energy of the MPSs to be projected out. If statespecific 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, while bias 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), the MPSInfo will be initialized using SZ quantum numbers if in SU2 mode, or using SU2 quantum numbers if in SZ mode. A transformation of MPSInfo is then performed between SZ and SU2 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.