Module features

For more information about the invocation of BDF modules, see BDF Modules and Calculation Flowchart<BDFpromodules>.

Molecular Automatic Fragmentation, FLMO and iOI Calculation - AUTOFRAG Module

The primary function of the autofrag module is to automatically fragment large molecules and generate inputs for FLMO calculations. It also serves as the computational engine for iOI-SCF, coordinating other SCF modules to perform iOI calculations. The main workflow of the autofrag module is:

  • Automatically generate atomic bonding information from molecular coordinates;

  • Cleave specific bonds to generate appropriate molecular fragments;

  • Add buffer atoms to molecular fragments;

  • Add link H atoms or Projected Hybrid Orbitals (PHOs) at bond cleavage sites;

  • Generate input files for subsystem fragment calculations using parallelized computation;

  • Organize subsystem results and perform the overall molecular calculation.

autofrag must be placed before compass. Autofrag processes the molecular structure in the compass module to determine molecular bonds and perform fragmentation. Inputs after autofrag also serve as templates for generating fragment and overall calculation inputs. See iOI-SCF Calculation Example for a complete example using autofrag.

Note: When using the autofrag module, the compass module must define molecular coordinates in Cartesian format and cannot use the file=filename.xyz syntax to read coordinates from another file.

Method Parameter Type: String

  • Default: FLMO

  • Options: FLMO, iOI

Sets the calculation method. FLMO - calculates Fragment Localized Molecular Orbitals; iOI - performs iOI-SCF calculation using molecular fragment synthesis for large systems. iOI currently only supports restricted self-consistent field calculations.

nprocs Parameter Type: Integer

  • Default: 1

  • Options: Positive integer ≤ number of fragments

Sets the maximum number of processes available for iOI calculations. Since fragment calculations are independent and parallelizable, nprocs specifies the maximum number of fragments that can be calculated simultaneously. Note: when nprocs ≠ 1, the OMP_NUM_THREADS environment variable specifies the total OpenMP threads for iOI calculations, not per-process threads. Example: With OMP_NUM_THREADS=16 and nprocs=2, iOI will run 2 subsystems concurrently, each using 8 OpenMP threads.

radcent Parameter Type: Float

  • Default: 3.0

  • Options: Non-negative float

Sets the size of initial fragments (before adding buffers) in Ångstroms. Increasing radcent enlarges fragment size and reduces fragment count.

radbuff Parameter Type: Float

  • Default: 2.0

  • Options: Non-negative float

Sets fragment buffer radius in Ångstroms. Unlike radcent, increasing radbuff doesn’t change fragment count but enlarges each fragment. For iOI calculations, radbuff defines the buffer size at macroiteration 0, which expands during subsequent iterations.

iOIThresh Parameter Type: Float

  • Default: 0.1

  • Options: Positive float

Sets convergence threshold for iOI-SCF fragment calculations. Decreasing iOIThresh increases macroiterations but improves initial orbitals for overall calculation, accelerating SCF convergence.

NoPHO Parameter Type: Bool

Disables PHO (Projected Hybrid Orbitals) and uses link H atoms instead to saturate cleaved bonds. This slightly reduces subsystem calculation cost compared to default PHO, but yields lower-quality subsystem orbitals, potentially increasing SCF iterations and total computation time.

charge Parameter Type: Integer Array

  • Default: None

Sets atomic charges to assist in assigning fragment charges. When automatic electron count determination fails, users can specify charges to set fragment electron counts. Format:

charge
10 +2 25 -1 78 -1

This sets atom 10 charge to +2, atom 25 to -1, and atom 78 to -1. Fragment charges will be determined based on these atomic charges.

spinocc Parameter Type: Integer Array

  • Default: None

Sets formal atomic spins to guide calculation toward appropriate spin states. Input format matches charge:

spinocc
13 +1 17 -1

This sets atom 13 with +1 unpaired alpha electron and atom 17 with -1 unpaired beta electron. Note: All open-shell atoms should be specified. For example: - A system with two Cu(II) centers: either specify both spins or neither (spin state becomes indeterminate) - Cannot specify only one Cu atom’s spin while omitting the other - For Cu(I) centers (closed-shell), spin specification is optional - For delocalized spins: use resonance structures to localize spins before assignment (e.g., ethylene radical cation: set one carbon spin to +1, the other to 0).

maxiter Parameter Type: Integer

  • Default: 50

Sets maximum macroiteration count for iOI-SCF.

Dryrun Parameter Type: Bool

  • Default: False

Generates FLMO or iOI-SCF input files without executing calculations.

Symmetry and Preprocessing - COMPASS Module

The COMPASS module primarily handles the initialization of computational tasks. This includes reading user-defined molecular structures, basis sets, and other fundamental information; determining molecular symmetry and point groups; generating symmetry-adapted orbitals; and converting this data into BDF’s internal storage format. Key parameters for the Compass module include:

Basis Parameter Type: String

Specifies the name of the basis set used for the calculation. BDF basis sets are stored in $BDFHOME/basis_library. The basis sets for all atoms in the current calculation must be placed in the file specified by this parameter. Since basis sets are read via this file, users can assign different basis sets to different atoms using custom basis set files (see Custom Basis Set instructions).

$Compass
Basis
  cc-pVDZ
Geometry
H   0.00  0.00   0.707
H   0.00  0.00   -0.707
End Geometry
$End

Basis-block Parameter Type: String

Allows specifying different basis sets for different elements. The first line is the default basis set. Subsequent lines assign other basis sets to specific elements or atoms using the format element=basisname or element1,element2, …,elementn=basisname. Must end with End Basis.

$Compass
Basis-block
  3-21g
  C,N = 6-31g
  Xe = cc-pvdz-pp
End Basis
Geometry
H    0.0  0.0 -1.1
C    0.0  0.0  0.0
N    0.0  0.0  1.0
Xe   3.0  0.0  0.0
End geometry
$End

MPEC+COSX Parameter Type: Boolean

Specifies the use of the Multipole Expansion of Coulomb Potential (MPEC) method to calculate the J matrix and the Chain-of-Sphere Exchange (COSX) method to calculate the K matrix.

RI-J , RI-K , RI-C Parameter Type: String

Auxiliary basis sets for the Density-Fitting (DF) approximation acceleration algorithm.

  • RI-J: Coulomb fitting basis set

  • RI-K: Exchange fitting basis set

  • RI-C: Correlation fitting basis set

$Compass
Basis
  DEF2-SVP
RI-J
  DEF2-SVP
Geometry
H   0.00  0.00   0.707
H   0.00  0.00   -0.707
End Geometry
$End

Geometry Parameter Type: String Array

Specifies the molecular structure for the calculation. Can be in Cartesian coordinate mode or internal coordinate mode. Molecular coordinate definitions start on the line following the Geometry parameter and end on the line before End Geometry.

Cartesian Coordinates mode

$Compass
Basis
  cc-pVDZ
Geometry
H   0.00  0.00   0.707
H   0.00  0.00   -0.707
End Geometry
$End

Internal Coordinates mode

$Compass
Basis
  cc-pVDZ
Geometry
O
H   1  0.9
H   1  0.9   2 109.0
End Geometry
$End

Restart Parameter Type: Boolean

Uses coordinates from the $BDFTASK.optgeom file for the calculation instead of the coordinates given under the Geometry keyword, where $BDFTASK is the input filename without the .inp suffix. Note: Although the coordinate values under the Geometry keyword are not used in this case, they cannot be omitted. The atom types, number, and order must match exactly; only the coordinate values can be arbitrary. For example, if the input file is named 1.inp and the 1.optgeom file contains:

GEOM
O 0. 0. 0.
H 0. 0. 2.
H 0. 2. 0.

Then a $compass module like the following in 1.inp will run correctly:

$compass
...
geometry
O 0. 0. 0.
H 0. 0. 2.1
H 0.1 2.0 0.
end geometry
restart
...
$end

This input is equivalent to (even if units of Å were specified above):

$compass
...
geometry
O 0. 0. 0.
H 0. 0. 2.
H 0. 2. 0.
end geometry
unit
 bohr
...
$end

However, the $compass module in 1.inp cannot be written like the following because the number of atoms doesn’t match the .optgeom file:

$compass
...
geometry
O 0. 0. 0.
H 0. 2.1 0.
end geometry
restart
...
$end

Nor can it be written like this, because the atom order doesn’t match the .optgeom file:

$compass
...
geometry
H 0. 2.1 0.
O 0. 0. 0.
H 0. 0. 2.1
end geometry
restart
...
$end

restart is primarily used for resuming interrupted geometry optimizations. Using the 1.inp example, if 1.inp is an input file for a geometry optimization that didn’t finish normally (e.g., due to non-convergence, an error, or user termination), the structure from the last optimization step is saved in 1.optgeom. Adding the restart keyword to the $compass module in 1.inp and rerunning 1.inp allows resuming the geometry optimization from the last structure, without manually copying the contents of 1.optgeom into 1.inp.

Group Parameter Type: String

Specifies the molecular symmetry point group. BDF automatically determines molecular symmetry. HF/DFT/TDDFT support high-order molecular point groups. However, some electron correlation methods like MCSCF and MRCI only support D2h and its subgroups. This parameter can be used to force BDF to use an Abelian group for such calculations.

# Benzene has highest symmetry D6h. Without specifying a group, BDF determines D6h symmetry.
$COMPASS
Title
  C6H6 Molecule test run, cc-pVDZ
Basis
  cc-pVDZ
Geometry
C    0.00000000000000   1.39499100000000   0.00000000000000
C   -1.20809764405066   0.69749550000000   0.00000000000000
C    0.00000000000000  -1.39499100000000   0.00000000000000
C   -1.20809764405066  -0.69749550000000   0.00000000000000
C    1.20809764405066  -0.69749550000000   0.00000000000000
C    1.20809764405066   0.69749550000000   0.00000000000000
H    0.00000000000000   2.49460100000000   0.00000000000000
H   -2.16038783830606   1.24730050000000   0.00000000000000
H    0.00000000000000  -2.49460100000000   0.00000000000000
H   -2.16038783830607  -1.24730050000000   0.00000000000000
H    2.16038783830607  -1.24730050000000   0.00000000000000
H    2.16038783830606   1.24730050000000   0.00000000000000
End geometry
Check
$END

# Subgroups of D6h include D3h, C6v, D3d, D2h, C2v, C1, etc. This example forces benzene calculation using D2h group.
$COMPASS
Title
  C6H6 Molecule test run, cc-pVDZ
Basis
  cc-pVDZ
Geometry
...
End geometry
Check
Group
  D(2h)
$END

Nosymm Parameter Type: Boolean

  • Default: false

Forces BDF to ignore molecular symmetry during the calculation.

Attention

Unlike specifying the C1 group, using this parameter prevents rotation of molecular coordinates. By default, molecular coordinates are rotated to the standard orientation.

Norotate Parameter Type: Boolean

Forces BDF not to rotate molecular coordinates to the standard orientation. Unlike Nosymm, Norotate does not ignore molecular symmetry. However, critical requirement: When symmetry elements like axes or planes are present, their spatial orientation relative to the molecule must exactly match the orientation they would have after rotation to the standard orientation. For example, for a water molecule lying in the yz-plane and symmetric about the xz-plane, BDF would normally rotate it to lie in the xz-plane. Using Norotate forces BDF to calculate with the molecule in the yz-plane while still utilizing its C(2v) symmetry, because the symmetry axis (z-axis) and mirror planes (xz and yz planes) align correctly regardless of the molecular plane (xz or yz). However, if the water molecule lies in the xy-plane, using Norotate will cause an error because its symmetry axis would not be aligned with the z-axis.

Unit Parameter Type: String

  • Default: Angstrom

  • Options: Bohr, Angstrom

Specifies the unit of length for input coordinates. Bohr indicates atomic units (Bohr radii), Angstrom indicates Ångstroms.

Skeleton Parameter Type: Boolean

Specifies the symmetry handling method within BDF calculations. BDF offers two approaches to molecular point group symmetry: 1. Traditional: Construct symmetry-adapted orbitals first. Atomic orbital integrals are symmetrized during calculation and stored based on symmetry-adapted orbitals. This method supports non-direct-integral wavefunction theories like SCF, MCSCF, MRCI, CCSD. 2. Skeleton: Only compute and store symmetry-unique atomic orbital integrals (“skeleton integrals”). Symmetry-adapted operators like the J and K matrices are constructed directly during calculations like Hartree-Fock or Kohn-Sham DFT. This “Skeleton” method supports non-Abelian point groups.

Originally, BDF defaulted to the first approach. It now defaults to the second (Skeleton) method. However, Skeleton cannot be used for various post-HF wavefunction theories. Use the Saorb keyword to switch back to the first approach in such cases.

Saorb Parameter Type: Boolean

Specifies the traditional symmetry handling approach (symmetry-adapted orbital construction) within BDF. Required for various post-HF wavefunction theory calculations. See Skeleton keyword.

Extcharge Parameter Type: String

Valid input value: point

Specifies the need for external point charges in the calculation. The external charges are placed in a file named $BDFTASK.extcharge. The file format is:

First line is a title line (can be empty). Second line: An integer N defining the number of additional charges. Third line onwards: N lines defining the charge coordinates and magnitude. Format: Atom Charge x y z

Thresh Parameter Type: String

  • Default: Medium

  • Options: Coarse, Medium, Strict

Specifies the precision threshold for determining molecular symmetry. A key feature of BDF is its support for molecular point groups. The compass module automatically identifies the molecular symmetry group and rigorously symmetrizes the molecule accordingly. Due to modeling precision, a molecule might not strictly belong to a particular symmetry point group; this parameter controls the tolerance level for symmetry determination.

$COMPASS
Basis
  cc-pVDZ
Geometry
C    0.00000000000000   1.39499100000000   0.00000000000000
C   -1.20809764405066   0.69749550000000   0.00000000000000
C    0.00000000000000  -1.39499100000000   0.00000000000000
...
End geometry
Thresh
  Medium
$END

ExpBas Parameter Type: Integer or String

  • Options: 0, 1, 2, 3, 4, 5

Prints the basis set and pseudopotentials in the output file using formats compatible with other quantum chemistry programs. Either indices or case-insensitive program names can be specified.

  • 0: Default BDF format

  • 1: Molpro format

  • 2: Molcas format

  • 3: Gaussian format

  • 4: ORCA format

  • 5: CFour format

Uncontract Parameter Type: Boolean

Forces the use of the uncontracted primitive Gaussian basis functions for calculation, regardless of whether the input basis set is contracted. Primarily used for testing.

Primitive Parameter Type: Boolean

Specifies that only primitive Gaussian basis functions in a specific format are input. Primarily used for testing.

Check Parameter Type: Boolean

Prints the most important results in a specific format. Primarily used for testing.

AtomMass Input Block

Specifies isotopic masses for atoms. Input format:

$compass
    ...
    Geometry
        O   -1.81084784   -0.11050725    0.00000000
        H   -2.16957593    0.77995003    0.00000000
        K    0.87665046    0.00547937    0.00000000
    End Geom
    AtomMass
        2          # Specify masses for 2 atoms. Unspecified atoms use their most abundant isotope mass.
        2   2.0    # Specify mass number 2.0 for atom 2 (H)
        1  18.0    # Specify mass number 18.0 for atom 1 (O)
$end

One- and Two-Electron Integral Calculation - XUANYUAN Module

The XUANYUAN module primarily calculates one- and two-electron integrals and other necessary integrals, storing them to files.

Direct Parameter Type: Boolean

Specifies using integral-direct SCF calculations. This is now the default option and does not require user setting.

Integral-direct SCF does not store two-electron integrals. It pre-screens integrals using the Schwartz inequality based on their contribution to the Fock matrix. For systems with more than ~300 basis functions, it efficiently utilizes integral recomputation to avoid I/O operations and supports OpenMP multi-core parallelization. Most BDF modules requiring Fock-like matrices (J and K), such as SCF and TDDFT, implement integral-direct calculations.

Note

Integral-direct SCF also requires the Skeleton keyword in the compass module, which is now the default. To disable integral-direct SCF, use the Saorb keyword in the compass module.

Maxmem Parameter Type: String

Specifies the cache size for non-integral-direct SCF two-electron integral calculations. Larger caches reduce integral sorting frequency. Format: number + MW or GW. 1 Word = 2 Bytes, so 512MW = 1024 MB.

$xuanyuan
Maxmem
  512MW
$end

RSOMEGA / RS Parameter Type: Floating-point

Specifies the \(\omega\) parameter (sometimes denoted \(\mu\) in literature) for range-separated functionals (e.g., CAM-B3LYP). RS is a synonym for RSOMEGA. Required if using a range-separated DFT functional. Recommended values:

Table 10 Standard \(\omega\) values for common range-separated functionals

Functional

\(\omega\)

CAM-B3LYP

0.33

LC-BLYP

0.33

wB97

0.40

wB97X

0.30

$xuanyuan
RSOMEGA
  0.33
$end

$scf
  dft
    cam-b3lyp
$end

Heff Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2, 3/4, 5, 21, 22, 23

Specifies the scalar relativistic Hamiltonian:

  • 0: Non-relativistic (including cases using ECPs)

  • 1: sf-ZORA (not recommended for general users)

  • 2: sf-IORA (not recommended for general users)

  • 3, 4: sf-X2C (different implementations; generally use 3)

  • 5: sf-X2C + so-DKH3 (no spin-orbit part; requires Hsoc; accuracy under further testing) [12]

  • 21: sf-X2C (similar to 3/4, supports analytical derivatives & some one-electron properties) [27]

  • 22: sf-X2C-aXR (atomic X-matrix approximated sf-X2C; supports analytical derivatives & some properties) [27]

  • 23: sf-X2C-aU (atomic unitary transformation approximated sf-X2C; supports analytical derivatives & some properties) [27]

$xuanyuan
Heff
  3
$end

Hsoc Parameter Type: Integer

  • Options: 0, 1, 2, 3, 4, 5

Specifies the type of spin-orbit (SO) integrals:

  • 0: so-1e - Only one-electron SO integrals.

  • 1: so-1e + SOMF - Two-electron SO integrals via the effective Fock operator. Most accurate for all-electron calculations.

  • 2: so-1e + SOMF-1c - SOMF with one-center approximation. Recommended for large molecules with all-electron calculations.

  • 3: so-1e + SOMF-1c / no soo - Disables spin-other-orbit (SOO) contributions in option 2.

  • 4: so-1e + SOMF-1c / no soo + WSO_XC - Uses DFT to calculate SOO contributions.

  • 5: so-1e + somf-1c / no soo + WSO_XC-2x - Multiplies DFT part by -2 to model SOO (suggestion by Neese).

  • Adding 10 to any option uses the BP approximation operator.

  • For ECP basis sets (scalar ECP, SOECP, or mixed with all-electron non-relativistic), the only accepted value is 10 (default). This uses BP so-1e: SOECP integrals for SOECP atoms, effective nuclear charge for scalar ECP and non-relativistic all-electron atoms (limited element/basis support - see soint_util/zefflib.F90).

$xuanyuan
Hsoc
  1
$end

Clight Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2, 100

Specifies the speed of light in atomic units, used for the calculation of the full-electron relativistic Hamiltonian.

  • 0: the default value for BDF.

  • 1: the default value for Gaussian 16.

  • 2: the default value for OpenMolcas.

  • 100: infinite speed of light, used for program debugging and reproducing non-relativistic results.

Nuclear Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

Specifies the nuclear charge distribution model: * 0: Point charge model * 1: Gaussian charge model. For elements up to 110 (Ds), root-mean-square (RMS) nuclear radii are from Visscher and Dyall [71]. For elements Ds and beyond, RMS nuclear radii are estimated from the mass number A (in fermi):

\[\left<r^2\right> \approx 0.57 + 0.836 \, A^{1/3}\]

The mass number A is approximated from the nuclear charge Z using [72, 73]:

\[A \approx 0.004467 \, Z^2 + 2.163 \, Z - 1.168\]

NuclearRadii Input Block

Specifies nuclear radii. This block only takes effect if the finite nucleus model is enabled (nuclear=1). Unspecified atoms use default values. Input format follows the AtomMass block in the Compass module.

Hartree-Fock and Kohn-Sham Self-Consistent Field Calculations - SCF Module

The SCF module is one of BDF’s core computational modules, performing Hartree-Fock and DFT calculations.

Method Keywords

RHF / UHF / ROHF Parameter Type: Boolean

For Hartree-Fock calculations, one of these three parameters must be selected to control the calculation type.

  • RHF: Restricted Hartree-Fock

  • UHF: Unrestricted Hartree-Fock

  • ROHF: Restricted Open-shell Hartree-Fock

RKS / UKS / ROKS Parameter Type: Boolean

For DFT calculations, one of these three parameters must be selected to control the calculation type.

  • RKS: Restricted Kohn-Sham

  • UKS: Unrestricted Kohn-Sham

  • ROKS: Restricted Open-shell Kohn-Sham

Wavefunction and Occupancy Keywords

Charge Parameter Type: Integer

  • Default: 0

Specifies the net charge of the molecular system.

Spinmulti Parameter Type: Integer

  • Default: 1 for even-electron systems, 2 for odd-electron systems

Specifies the spin multiplicity of the molecular system. Defined as 2S+1 (where S is the spin angular momentum). Can be calculated as | number of spin-up electrons - number of spin-down electrons | + 1. Therefore, when all unpaired electrons have parallel spins, the spin multiplicity equals the number of unpaired electrons plus one.

Occupy Parameter Type: Integer Array

Specifies the number of doubly-occupied molecular orbitals per irreducible representation for RHF/RKS calculations.

Alpha Parameter Type: Integer Array

See Beta entry below.

Beta Parameter Type: Integer Array

Alpha and Beta must be used together for UHF/UKS calculations, specifying the number of occupied alpha or beta orbitals per irreducible representation.

Guess Parameter Type: String

  • Default: atom

  • Options: atom, Hcore, Huckel, Readmo

Specifies the type of initial guess. Normally, atom is better than Hcore or Huckel. If Readmo is selected, the program checks for the existence of the following files in order:

  1. $BDF_TMPDIR/$BDFTASK.inporb

  2. $BDF_TMPDIR/inporb

  3. $BDF_WORKDIR/$BDFTASK.scforb

($BDF_TMPDIR is the current BDF temporary directory, $BDF_WORKDIR is the current BDF working directory, $BDFTASK is the input filename without the .inp suffix). The program reads the orbital information from the first existing file in this list. If reading fails or the orbital information is incompatible (e.g., different number of basis functions), it automatically switches to the atom guess. Read orbitals undergo Löwdin orthogonalization before SCF iteration.

Hint

The orbital file must match the current calculation in the following aspects:

  1. Same number and types of atoms;

  2. Same atom ordering;

  3. Same point group;

  4. Same basis set;

  5. Both calculations must be RHF/RKS/ROHF/ROKS OR both must be UHF/UKS.

Other aspects (coordinates, charge, spin multiplicity, functional, etc.) can differ. If points (1), (2), (3), (5) are satisfied but not (4), use the expandmo module to project the orbitals to the current basis set before reading as an initial guess (see expandmo).

Example: If a calculation was run at B3LYP/def2-TZVP (input mol-B3LYP-Energy.inp), and you want to run an M06-2X/def2-TZVP calculation on a different structure (input mol-M062X-Energy.inp), you can reuse the converged SCF wavefunction:

cp mol-B3LYP-Energy.scforb mol-M062X-Energy.scforb

Add to the $scf block in mol-M062X-Energy.inp: .. code-block:: bdf

guess

readmo

This reads the B3LYP wavefunction (despite different structure/functional) as the initial guess.

SadGuessAverageOutPartiallyFilledShell/SadAvgPart Parameter Type: Boolean

Specifies using atomic calculations with partially filled shells averaged for the Superposition of Atomic Density (SAD) initial guess. Default and only option when SecScf is disabled.

SadGuessAverageOutValenceShell/SadAvgVal Parameter Type: Boolean

Specifies using atomic calculations with valence shells averaged for the SAD initial guess. Only usable when SecScf is enabled.

SadGuessAverageOutPartiallyFilledShellFor/SadAvgPartFor Parameter Type: Integer

Specifies using partially filled shell averaging for specific atomic numbers in SAD initial guess. Use multiple times for multiple elements.

SadGuessAverageOutValenceShellFor/SadAvgValFor Parameter Type: Integer

Specifies using valence shell averaging for specific atomic numbers in SAD initial guess. Use multiple times for multiple elements.

Mixorb Parameter Type: Integer/Floating-point Array

Mixes initial guess orbitals in specified proportions. The first line after Mixorb is an integer N (number of orbital pairs to mix). Lines 2 to N+1 contain 5 numbers per line: mixing details. First number: alpha(1)/beta(2) orbital (must be 1 for RHF/RKS/ROHF/ROKS). Second number: irrep index (must be 1 for no symmetry). Third and fourth numbers: orbital indices within the irrep. Fifth number: mixing angle θ (degrees). Mixing formula:

  • New orbital 1 = cosθ × original orbital 1 + sinθ × original orbital 2

  • New orbital 2 = sinθ × original orbital 1 - cosθ × original orbital 2

Common angles: θ=45° (equal mixing), θ=90° (swap orbitals). Example mixing beta orbitals 10 and 11 in irrep 3 (for spin symmetry breaking):

$scf
UHF
guess
 readmo
mixorb
 1
 2,3,10,11,45
$end

Example swapping orbitals:

$scf
ROHF
guess
 readmo
mixorb
 2
 1,5,7,8,90  # Swap orbitals 7 and 8 in irrep 5
 1,6,3,4,90  # Swap orbitals 3 and 4 in irrep 6
$end

Note: Mixorb is typically used with Guess=readmo, as orbital composition is unknown otherwise.

DFT Exchange-Correlation Functional Keywords

DFT Parameter Type: String

Specifies the exchange-correlation functional for DFT calculations. See BDF’s supported functional list.

D3 Parameter Type: Boolean

Specifies adding Grimme’s D3 dispersion correction to DFT calculations.

FACEX Parameter Type: Floating-point

Specifies the HF exchange fraction in the functional. Currently only SVWN, SVWN5, PBE, PBE0, PW91, BP86, BLYP, B3LYP, GB3LYP, B3PW91, BHHLYP, SF5050, B2PLYP allow user-defined FACEX. Example changing PBE HF exchange to 37.5% (PBE38):

$scf
...
DFT
 PBE
facex
 0.375
$end

FACCO Parameter Type: Floating-point

Specifies the MP2 correlation fraction in the functional. Currently only B2PLYP allows user-defined FACCO. Example customizing B2PLYP to DSD-BLYP:

$scf
...
dft
 B2PLYP
facex
 0.75
facco
 0.47
$end

$mp2
fss
 0.60
fos
 0.46
$end

RSOMEGA / RS Parameter Type: Floating-point

Specifies the ω parameter (some literature uses μ) for range-separated functionals (e.g., CAM-B3LYP). RS is a synonym for RSOMEGA. Primarily for debugging in the scf module; recommended to set in xuanyuan module.

DFT Numerical Integration Grid Control Keywords

NPTRAD Parameter Type: Integer

Specifies radial grid points for numerical integration. Primarily for debugging.

NPTANG Parameter Type: Integer

Specifies angular grid points for numerical integration. Primarily for debugging.

Grid Parameter Type: String

  • Default: Medium

  • Options: Ultra Coarse, Coarse, Medium, Fine, Ultra Fine

Specifies DFT numerical integration grid type.

Gridtol Parameter Type: Floating-point

  • Default: 1.0E-6 (1.0E-8 for meta-GGA)

Specifies the cutoff threshold for generating DFT adaptive grids. Lower values increase grid points, precision, and computational cost.

Gridtype Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2, 3

Specifies radial and angular grid point generation method.

Partitiontype Parameter Type: Integer

  • Default: 1

  • Options: 0, 1

Specifies DFT grid partitioning type: 0 = Becke, 1 = Stratmann-Scuseria-Frisch.

Numinttype Parameter Type: Integer

  • Default: 0

Specifies numerical integration calculation method. Primarily for debugging.

NosymGrid Parameter Type: Boolean

Specifies not using molecular symmetry for numerical integration. For debugging.

DirectGrid / NoDirectGrid Parameter Type: Boolean

Specifies direct integration mode (no storage of basis function values). Required for DirectSCF. NoDirectGrid only relevant for non-DirectSCF. Primarily for debugging.

NoGridSwitch Parameter Type: Boolean

Disables grid switching during SCF iterations. By default, BDF starts with an ultra coarse grid and switches to the user-specified grid after a threshold. This forces the user-specified grid throughout.

ThreshRho & ThreshBSS Parameter Type: Floating-point

Controls grid pre-screening thresholds. For debugging.

SCF Acceleration Algorithms

MPEC+COSX Parameter Type: Boolean

Specifies using Multipole Expansion of Coulomb potential (MPEC) for the J matrix and Chain-of-Sphere Exchange (COSX) for the K matrix. Retained for backward compatibility; recommended to set in Compass module.

Coulpot Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2

Controls MPEC calculation method for Coulomb potential (Vc) and nuclear attraction (Vn) matrices: * 0: Analytical integration for Vc and Vn * 1: Multipole expansion for Vc, analytical for Vn * 2: Multipole expansion for Vc, numerical integration for Vn

Coulpotlmax Parameter Type: Integer

  • Default: 8

Maximum angular momentum L for MPEC multipole expansion.

Coulpottol Parameter Type: Integer

  • Default: 8 (meaning 1.0E-8)

Precision threshold for multipole expansion (higher = more precise).

MPEC Parameter Type: Boolean

Specifies using MPEC for J matrix calculation.

COSX Parameter Type: Boolean

Specifies using COSX for K matrix calculation.

SCF Convergence Control Keywords

Maxiter Parameter Type: Integer

  • Default: 100

Maximum SCF iterations.

Vshift Parameter Type: Floating-point

  • Default: 0

  • Options: Non-negative real

  • Recommended range (if non-zero): 0.2~1.0

Shifts virtual orbital energies by the specified value to increase the HOMO-LUMO gap and accelerate convergence. Larger values reduce oscillations but slow convergence. Useful for molecules with small HOMO-LUMO gaps (< 2 eV) and non-monotonic energy convergence.

Damp Parameter Type: Floating-point

  • Default: 0

  • Options: Real number ≥ 0 and < 1

  • Recommended range (if non-zero): 0.5~0.99

Mixes the current and previous density matrices: P(i) := (1-C) × P(i) + C × P(i-1). Larger damping factors reduce oscillations but slow convergence. Useful for non-monotonic energy convergence.

ThrEne Parameter Type: Floating-point

  • Default: 1.d-8

SCF energy convergence threshold (Hartree).

ThrDen Parameter Type: Floating-point

  • Default: 5.d-6

SCF root-mean-square (RMS) density matrix element convergence threshold.

ThreshConv Parameter Type: Floating-point

Simultaneously sets SCF energy and density matrix thresholds. Example:

$scf
...
ThreshConv
 1.d-6 1.d-4
$end

Equivalent to:

$scf
...
ThrEne
 1.d-6
ThrDen
 1.d-4
$end

Hint

SCF convergence is declared if ANY of the following is met: (1) Energy change < ThrEne AND RMS density change < ThrDen (2) Energy change < 0.1 × ThrEne AND RMS density change < 1.5 × ThrDen (3) Maximum density matrix element change < ThrDen

NoXiis/NoDiis Parameter Type: Boolean

Disables DIIS family convergence acceleration. Use only if SCF oscillates significantly (> 1.0E-5) and Damp/VShift are ineffective.

Diis Parameter Type: Boolean

Specifies using the traditional DIIS algorithm. Default.

Lciis Parameter Type: Boolean

Specifies using the LCIIS algorithm.

Ediis Parameter Type: Boolean

Specifies using the EDIIS algorithm. Prefer EdiisPlusDiis over pure EDIIS.

Adiis Parameter Type: Boolean

Specifies using the ADIIS algorithm. Prefer AdiisPlusDiis over pure ADIIS.

EdiisPlusDiis Parameter Type: Boolean

Specifies using the EDIIS + DIIS algorithm.

AdiisPlusDiis Parameter Type: Boolean

Specifies using the ADIIS + DIIS algorithm.

MaxXiis/MaxDiis Parameter Type: Integer

  • Default: 8

Maximum subspace dimension for DIIS family methods.

MinXiis/MinDiis Parameter Type: Integer

  • Default: 2

Minimum subspace dimension for DIIS family methods.

XiisMode/DiisMode Parameter Type: Integer

Controls subspace storage strategy when maximum dimension is reached:
  • Default: 0 (Discard oldest entries until subspace is at minimum size)

  • Options: 0, 1 (Discard the oldest entry), 3 (Discard entry with largest RMS error), 4 (Discard entry with largest absolute error element)

Note

  • Options 3 and 4 require NLopt

  • Options 3 and 4 often converge better than 0 but may cause oscillations (try level shifting)

DoNotOrthogonalizeDiisErrorMatrix Parameter Type: Boolean

Specifies using non-orthogonalized error vectors in traditional DIIS. Default.

OrthogonalizeDiisErrorMatrix Parameter Type: Boolean

Specifies using orthogonalized error vectors in traditional DIIS (requires NLopt). Disabled by default and if basis set linear dependence exists.

SMH Parameter Type: Boolean

Specifies using Semiempirical Model Hamiltonian (SMH) to accelerate SCF convergence [74]. Typically saves 10~15% SCF iterations (more for charge-transfer/spin-polarized systems) and increases stability. Disabled for: (1) ROHF/ROKS, (2) Smeartemp specified, (3) Basis set linear dependence. Otherwise, enabled by default.

NoSMH Parameter Type: Boolean

Disables SMH convergence acceleration.

Smeartemp Parameter Type: Floating-point

  • Default: 0

  • Options: Non-negative real (Kelvin)

Specifies electronic temperature for Fermi smearing (alters frontier orbital occupancies). The final energy includes the electronic entropy contribution (-TSelec). Subtracting this term (negative, so adding its absolute value) gives the electronic energy. Cannot be used with Vshift or SMH or in FLMO/iOI calculations.

Use cases:
  • Study temperature effects on electronic structure, energy, properties.

  • Improve convergence for systems with small/no HOMO-LUMO gaps (set ~5000 K for pure functionals, ~10000 K for hybrids, ~20000 K for HF). To get the 0 K result, run without smearing using the converged smeared orbitals as initial guess.

  • Help obtain symmetry-adapted orbitals when HF/DFT breaks spatial symmetry (e.g., cyclobutadiene D4h symmetry).

Fock Matrix Diagonalization Control Keywords

Sylv Parameter Type: Boolean

Uses Sylvester equation solving for block-diagonalization instead of full diagonalization to save time. Example:

$scf
...
sylv
$end

Beneficial for very large systems (e.g., >1000 atoms, >10000 basis functions) as Fock diagonalization becomes significant. Converged orbitals are localized (if initial guess is localized) but span the same occupied space as canonical orbitals. For canonical orbitals, run a subsequent calculation without sylv using the converged orbitals as initial guess.

Iviop Parameter Type: Integer

  • Default: None

  • Options: 1~3

  • Recommended: 1

Controls use of iVI method (requires Blkiop=7).

Blkiop Parameter Type: Integer

  • Default: 3 (if Sylv specified), else none

  • Options: 1~8 (SAI, DDS, DNR, DGN, FNR, FGN, iVI, CHC)

  • Recommended: 3

Specifies block-diagonalization method, typically for iVI or FLMO calculations. Default is full diagonalization.

Print and Molecular Orbital Output Control

IprtMo Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2

Controls printing of molecular orbital coefficients: * 0: No orbitals printed * 1: Print frontier orbitals (HOMO-5 to LUMO+5 per irrep) - occupation, energy, coefficients * 2: Print all orbitals

Noscforb Parameter Type: Boolean

Forces not saving molecular orbitals to .scforb file.

Pyscforb Parameter Type: Boolean

Saves converged SCF orbitals in PySCF format.

Molden Parameter Type: Boolean

Outputs molecular orbitals in Molden format for wavefunction analysis.

Relativistic One-Electron Properties

Supports sf-X2C Hamiltonian and localized variants (set Heff=21, 22, or 23 in xuanyuan module).

Reled Parameter Type: Integer

Calculates effective contact density for elements with atomic number ≥ this value. Requires finite nucleus model (nuclear=1 in xuanyuan). No default.

Relefg Parameter Type: Integer

Calculates electric field gradient (EFG) tensor for elements with atomic number ≥ this value. For isotopes with experimental/reliable theoretical nuclear quadrupole moments (NQM), also calculates nuclear quadrupole coupling constants (NQCC). Uses built-in NQM data [75, 76, 77]. Requires finite nucleus model (nuclear=1 in xuanyuan). No default.

Basis Set Linear Dependence Keywords

Checklin Parameter Type: Boolean

Forces SCF to perform basis set linear dependence check. Enabled by default for DirectSCF to improve convergence with diffuse basis functions.

Tollin Parameter Type: Floating-point

  • Default: 1.0E-7

Linear dependence check threshold.

MOM (Maximum Overlap Method) Control Keywords

MOM is a ΔSCF method that forces SCF to converge to an excited state by maximizing overlap between current and initial occupied orbitals. Typically more difficult to converge than ground state.

Iaufbau Parameter Type: Integer

  • Default: 0 if Occupy, Alpha, or Beta are set; else 1

  • Options: 0, 1, 2, 3

Controls orbital occupancy assignment: * 0: Occupancy fixed to initial guess * 1: Aufbau principle (lowest orbitals occupied) * 2: MOM (maximize overlap with initial guess orbitals). For ΔSCF excited states. * 3: Debugging (avoid for production)

IfPair & hpalpha & hpbeta Parameter Type: Integer

Specifies electronic excitations for MOM initial state. Defines excitations from occupied to virtual orbitals relative to the ground state.

# Example: Excitations for a molecule with 4 irreps:
# - Alpha electrons from orbitals 5 and 6 (irrep 1) to 7 and 8 (irrep 1)
# - Alpha electron from orbital 3 (irrep 3) to 4 (irrep 3)
# - Beta electron from orbital 7 (irrep 1) to 8 (irrep 1)
$scf
Ifpair
Hpalpha
2             # Number of alpha excitation pairs
5 0 3 0       # Pair 1: From occupied alpha orb 5 (irrep 1) to virtual alpha orb 3 (irrep 1? Note format: occ_irr occ_idx vir_irr vir_idx)
8 0 4 0       # Correction: Likely meant to specify transitions
6 0 0 0       # Excitation 1: From orb 6 (irrep 1) to ? (0 might indicate unspecified virtual)
9 0 0 0       # Excitation 2: From orb 9 (irrep 1?) to ?
Hbeta
1             # Number of beta excitation pairs
7 0 0 0       # Excitation 1: From beta orb 7 (irrep 1?) to ?
8 0 0 0       # Excitation 2: From beta orb 8 (irrep 1?) to ?
...
$end

Pinalpha & Pinbeta Parameter Type: Integer

Specifies orbitals with fixed occupation numbers.

EnableSecondOrderScf & EnableApproxSecondOrderScf Parameter Type: Boolean

Enables strict second-order or approximate second-order SCF with default settings. Strict second-order convergence is expensive; use only when other algorithms fail.

Hint

  • Second-order (and approximate) SCF does not currently support iOI, etc.

  • Not available for ROHF/ROKS.

  • Not available for relativistic calculations.

DisableSecondOrderScf & DisableApproxSecondOrderScf Parameter Type: Boolean

Disables second-order or approximate second-order SCF.

SecondOrderConfig & ApproxSecondOrderConfig Input Block

Specifies advanced settings for second-order or approximate second-order SCF. Most users only need EnableSecondOrderScf.

$Scf
    ...
    SecondOrderConfig
        Enable
        EnableExpression
            AfterIteration 10
        LevelShiftGradientThreshold
            1e-3
        ConvergeGradientThreshold
            1e-6
        ConvergeRotationThreshold
            1e-9
        MaxIterationCycle
            16
        InitialTrustRadius
            0.4
        MaxTrustRadius
            5
        MaxConjugateGradientIterationCycle
            16
        MaxDavidsonIterationCycle
            16
        CorrectionType
            Olsen
        LinearSolverTolerance
            1e-4
        AllowConverge
        ScfConvergeGradientThreshold
            1e-7
    EndSecondOrderConfig
    ...
$End
  • Enable: Specifies enabling second-order SCF and sets the enable expression to default.

  • Disable: Specifies disabling second-order SCF.

  • EnableExpression: Specifies the enabling condition expression (specifying this implicitly sets Enable).

    • AfterIteration + integer: Enables after N standard SCF iterations.

    • AfterDeltaEnergyLessThan + float: Enables after the energy error falls below a specified value during standard SCF iterations.

    • AfterDeltaRmsDensityLessThan + float: Enables after the density matrix error falls below a specified value during standard SCF iterations.

    • Custom logical expression. Note: Custom expressions are provided for developer debugging and advanced users needing flexible options. If uncomfortable with this, consider using the default or preset options mentioned above. Valid keywords: Iteration, DeltaEnergy, and DeltaRmsDensity. Valid operators: & (AND), | (OR), ! (NOT), > (greater than), < (less than), = (equal), and [] (logical evaluation brackets). Operators cannot be chained. Variables must be enclosed in logical evaluation brackets []. Expressions are case-insensitive and ignore all whitespace (e.g., “DeltaRmsDensity” is equivalent to “Delta RMS Density”). Example:

    [ [ Iteration > 10 ] & [ [ DeltaEnergy < 1e-3 ] | [![ DeltaRmsDensity > 2.5e-3 ]] ] ]

  • LevelShiftGradientThreshold, float: Specifies the energy-orbital gradient threshold below which the trust radius is lifted, switching to the Newton-Raphson method for rotation vector calculation.

  • ConvergeGradientThreshold, float: Specifies the threshold for the norm of the energy-orbital gradient below which second-order SCF micro-iterations stop.

  • ConvergeRotationThreshold, float: Specifies the threshold for the norm of the rotation vector below which second-order SCF micro-iterations stop.

  • MaxIterationCycle, integer: Specifies the maximum number of second-order SCF micro-iterations before performing a standard SCF update.

  • InitialTrustRadius, float: Specifies the initial trust radius for the Levenberg-Marquardt method when calculating the rotation vector.

  • MaxTrustRadius, float: Specifies the maximum trust radius for the Levenberg-Marquardt method when calculating the rotation vector.

  • MaxConjugateGradientIterationCycle, integer: Specifies the maximum number of iterations for the conjugate gradient method when solving the Newton-Raphson equations. The final vector is used as the rotation vector even if not fully converged.

  • MaxDavidsonIterationCycle, integer: Specifies the maximum number of iterations for the Davidson diagonalization when solving the Levenberg-Marquardt equations. The final vector is used as the rotation vector even if not fully converged.

  • CorrectionType, string: Specifies the correction method for Davidson diagonalization. Options: DavidsonDPR (or DPR), JacobiDavidson, and Olsen.

  • LinearSolverTolerance, float: Specifies the convergence threshold for the linear solver used in Davidson diagonalization.

  • ExcludeNonOccupiesFromRotation: Specifies excluding orbitals that should be occupied according to the Aufbau principle but are explicitly set as unoccupied by the user from rotation pairs. This prevents collapse to the Aufbau state. Only active during ΔSCF calculations.

  • IncludeNonOccupiesInRotation: Specifies including all orbitals in rotation pairs. Only active during ΔSCF calculations.

  • AllowConverge: Allows SCF convergence to be declared during second-order convergence iterations.

  • ForbidConverge: Forbids SCF convergence from being declared during second-order convergence iterations.

  • ScfConvergeGradientThreshold, float: Specifies the threshold for the norm of the energy-orbital gradient below which SCF convergence is declared. Only effective if AllowConverge is set.

  • QuasiNewtonAlgorithm, string: Specifies the quasi-Newton algorithm. Options: BFGS (default), SR1, and DFP. Only effective when using approximate second-order SCF.

Note

Unlike other input blocks in BDF, floating-point parameters within the SecondOrderConfig input block must use e or E for scientific notation (e.g., 1.0e-6). Using d or D is not supported and will cause unexpected behavior.

Time-Dependent Density Functional Theory - TDDFT Module

The TDDFT module calculates molecular excited states by solving the Casida equation based on linear response theory. It supports TDDFT (including TDHF), TDA (including CIS), and can handle closed-shell or open-shell ground states. For open-shell ground states, it supports both traditional U-TDDFT and the spin-matched SA-TDDFT (also known as X-TDDFT), the latter being a distinctive feature of BDF. Additionally, BDF supports spin-flip (SF-)TDDFT methods, including spin-up-flip and spin-down-flip TDDFT, for calculating excited states with spin multiplicities different from the ground state.

Common Keywords

Imethod Parameter Type: Integer

  • Default: 1 for RHF/RKS reference states, else 2

  • Options: 1, 2

Specifies the ground-state method for TDDFT: * 1: R-TDDFT (RHF/RKS reference state) * 2: U-TDDFT (UHF/UKS reference state)

Spin-matched X-TDDFT requires a ROKS/ROHF reference and uses U-TDDFT with imethod=2, itest=1, icorrect=1 (see below). This parameter usually doesn’t need manual specification, as the program chooses a reasonable default. Note: U-TDDFT and X-TDDFT calculations are only supported in Abelian point groups.

Isf Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, -1

Controls spin-flip TDDFT: * 0: No spin-flip (spin-conserving, calculates states with same Ms as ground state) * 1: Spin flip up (calculates states with Ms = ground state Ms + 1) * -1: Spin flip down (calculates states with Ms = ground state Ms - 1)

Special case: When imethod=1 and isf=1, the program calculates the Ms=0 component of the triplet state, not an Ms=1 state. This is still a spin-conserving R-TDDFT calculation, not spin-flip. Note: When isf != 0 and imethod=2, itda must be set to 1.

Itda Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

Controls use of the Tamm-Dancoff Approximation (TDA): * 0: Full TDDFT (no TDA) * 1: TDA calculation.

Ialda Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2, 3, 4

Specifies the TDDFT exchange-correlation kernel: * 0: Full non-collinear kernel * 1: Non-collinear ALDA kernel * 2: No-collinear ALDA0 kernel * 3: Full non-collinear kernel (spin-averaged density) * 4: Full collinear kernel

For isf=0 calculations, ialda has no effect. For isf != 0 single-point calculations with non-RHF/RKS reference states, setting ialda=2 is recommended for better numerical stability than the default 0. For isf != 0 TDDFT geometry optimization, numerical frequencies, or NAC-TDDFT calculations, ialda must be set to 4. Important: This introduces an approximation, making results incomparable (and less accurate) to those obtained with ialda != 4. Thus, TDDFT geometry optimization/frequency results with isf != 0 cannot be directly compared to TDDFT single-point energy results.

Itest & icorrect Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

When both Itest and icorrect are set to 1, imethod=2, and the reference state is ROKS/ROHF, the program performs X-TDDFT calculation.

iact & elw & eup Parameter Type: Integer, Float, Float

Iact=1 specifies calculating excited states within an energy window defined by lower (elw) and upper (eup) bounds. Units: eV.

Diagonalization Method Keywords

Idiag Parameter Type: Integer

  • Default: 1

  • Options: 1, 2, 3

Specifies the TDDFT diagonalization method: * 1: Iterative diagonalization (Davidson method) * 2: Full diagonalization * 3: iVI diagonalization (does not support non-Abelian point groups)

Recommendations: * Use idiag=3 (iVI) for:

  • High-energy excitations (e.g., X-ray absorption/emission - see iwindow)

  • Calculating all states within a specific energy/wavelength range with guaranteed completeness (see iwindow).

  • Use idiag=2 (full diagonalization) for small molecules where a large number of states is needed (approaching the product of occupied and virtual orbitals).

  • Use default idiag=1 (Davidson) for most other cases.

Aokxc Parameter Type: Boolean

Specifies calculating the exchange-correlation kernel contribution to the Casida matrix in the AO basis. Enabled by default for AO-TDDFT calculations, so usually not needed.

Iguess Parameter Type: Integer

  • Options: 10*x + y (x ∈ {0,1,2}, y ∈ {0,1})

  • Default: 20 for AO-TDDFT in Abelian groups, else 0

Controls TDDFT initial guess wavefunction: * x=0: Diagonal guess * x=1: Read initial wavefunction from file * x=2: Tight-binding approximation guess * y=0: Do not store Davidson/iVI iteration vectors * y=1: Do store Davidson/iVI iteration vectors

Itrans Parameter Type: Integer

  • Options: 0, 1

  • Default: 0

Controls transformation of the spin-orbital basis excited-state vectors to a spin-tensor basis. Only set itrans=1 if: 1. Reference state is ROKS. 2. No subsequent calculations require $resp module (gradients, excited-state dipoles, NACs) or NTO analysis. Note: If the reference state is ROKS and TDDFT-SOC calculation is planned, itrans must be set to 1.

Grimmestd Parameter Type: Boolean

Specifies using Grimme’s sTDA (if itda=1) or sTDDFT (if itda=0) method. sTDDFT/sTDA approximate TDDFT, running ~10-100x faster than MPEC+COSX, but with larger errors (~0.2 eV for excitation energies, up to ~1 eV for some transition metals). Recommended for pi-pi* excitations in large organic systems (>100 atoms) where conventional TDDFT is too slow/memory-intensive. Supports excitation energies, oscillator strengths, NTOs, SOC matrix elements for pure/hybrid functionals (including HF) and range-separated functionals wB97, wB97X, LC-BLYP, CAM-B3LYP. Not supported: Excited-state gradients, dipoles, NACs, or use with isf=-1.

Grid Control Keywords

Grid Parameter Type: String

  • Default: Medium

  • Options: Ultra Coarse, Coarse, Medium, Fine, Ultra Fine

Specifies DFT numerical integration grid type.

Gridtol Parameter Type: Floating-point

  • Default: 1.0E-4 (1.0E-6 for meta-GGA)

Specifies the cutoff threshold for DFT adaptive grid generation. Lower values increase grid points (higher precision, higher cost).

MPEC+COSX Parameter Type: Boolean

Specifies using Multipole Expansion of Coulomb potential (MPEC) for the J matrix and Chain-of-Sphere Exchange (COSX) for the K matrix. Retained for backward compatibility; recommended to set in Compass module.

Orbital Freezing Keywords

Frzcore Parameter Type: Integer Array

Specifies the number of occupied orbitals to freeze per irreducible representation (lowest energy orbitals frozen first). Default: No freezing (unlike programs like ORCA). Example: Freeze the 20 lowest occupied orbitals in irrep 1 and 10 in irrep 2:

$tddft
...
frzcore
 20 10
$end

Frzvirt Parameter Type: Integer Array

Specifies the number of virtual orbitals to freeze per irreducible representation (highest energy orbitals frozen first). Default: No freezing.

Note

Orbital freezing primarily saves memory in large systems (e.g., freeze core orbitals for UV-Vis spectra). Errors are typically < 0.01 eV. Also saves some compute time. Supports excitation energies, oscillator strengths, NTOs, SOC matrix elements. Not supported: Excited-state gradients, dipoles, NACs.

Spectroscopy Keywords

ECD Parameter Type: Boolean

Specifies calculation of Electronic Circular Dichroism (ECD) spectra. Outputs transition magnetic dipole moments and rotatory strengths (length & velocity gauges) for each excited state, in addition to transition electric dipole moments and oscillator strengths.

Convergence Control Keywords

Crit_e Parameter Type: Floating-point

  • Default: 1e-7

TDDFT energy convergence threshold (Hartree).

Crit_vec Parameter Type: Floating-point

  • Default: 1e-5

TDDFT wavefunction convergence threshold.

Number of States Control Keywords

Iroot Parameter Type: Integer

  • Default: 10

  • Options: Non-zero integer

  • iroot > 0: Calculate iroot states per irreducible representation.

  • iroot < 0: Calculate |iroot| states total across all irreps (program determines per-irrep count).

Note: For degenerate irreps, different components of the same state count as one state (e.g., iroot=3 for a 2D irrep yields 3 distinct energy states). Synonym: iexit.

Nroot Parameter Type: Integer Array

Specifies the number of states per irrep. Example: 5 1 3 calculates 5 states in irrep 1, 1 in irrep 2, 3 in irrep 3. If both iroot and nroot are specified, nroot is ignored.

Iwindow Parameter Type: Floating-point Array

Specifies an energy/wavelength range to calculate excited states within. Avoids wasteful calculation of states outside the region of interest.

Format: Next line contains two floats (range) + optional unit (au/eV/nm/cm-1). Default unit: eV. Best used with iVI (idiag=3) to ensure all states within the range are found without wasting resources on states outside. Example: Calculate all states between 1-5 eV:

$tddft
...
idiag
 3           # Use iVI method
iwindow
 1 5 eV
$end

Can be used with Davidson (idiag=1, default) but behavior differs:

$tddft
...
iwindow
 1 5 eV      # Davidson method: Lower bound (1 eV) ignored. Calculates all states below 5 eV.
$end

Davidson cannot guarantee all states within 1-5 eV are found or exclude states outside it. It may waste resources calculating low-energy states irrelevant to the window (especially problematic for high-energy windows like XAS, e.g., 300 305 eV). Use iVI (idiag=3) for such cases.

Hint

Iwindow is incompatible with idiag=2 (full diagonalization).

If iwindow is specified, iroot/nroot do not control the number of states calculated. However, for iwindow + idiag=3 (iVI), iroot/nroot still affect initial memory allocation. If the program errors with “too small iroot/nroot, require xxx, but only yyy provided”, set iroot or nroot for that irrep to a value >= xxx.

Maxld Parameter Type: Integer

Maximum dimension of the iVI expansion space. Usually set automatically. If error “too small ld xxx, require yyy” occurs, set maxld >= yyy.

Wavefunction Storage Keyword

Istore Parameter Type: Integer

Specifies a file identifier (istore) to save the wavefunction for use in subsequent calculations.

Output Control Keywords

Nprt Parameter Type: Integer

Prints information only for the first nprt excited states. Default: Print all states.

Cthrd Parameter Type: Floating-point

Prints orbital excitation information only if the coefficient magnitude exceeds cthrd.

TD-DFT/SOC and Property Calculation Control

Nfiles Parameter Type: Integer

Reads nfiles previously calculated TDDFT wavefunctions for SOC calculation.

Isoc Parameter Type: Integer

  • Default: 1

  • Options: 1, 2, 3

Specifies TDDFT-SOC method: * 1: Closed-shell systems only * 2: General SOC calculation * 3: Only prints SOC coupling matrix elements between scalar states (no SOC Hamiltonian diagonalization)

Ifgs Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

Includes the ground state in TDDFT-SOC calculation: * 0: Exclude ground state. Cannot get transition dipoles between ground state and spinor states or calculate ground-state SOC correction. Can still get SOC-corrected excitation energies. * 1: Include ground state. Enables SOC-corrected spectra and ground-state SOC correction. Limit the number of scalar excited states included (typically 10-100), otherwise ground-state energy is underestimated, overestimating excitation energies.

Imatsoc Parameter Type: Integer Array

Specifies which SOC matrix elements to calculate.

...
# First SCF calculation (Singlet ground state S0)
$scf
spin
0
...
$end

# First TDDFT: Singlets S1-S10
$tddft
imethod
 1
isf
 0
iroot
 10
....
$end

# Second TDDFT: Triplets T1-T10
$tddft
imethod
 1
isf
 1
iroot
 10
$end

$tddft
....
# imatsoc < 0: Print ALL SOC matrix elements
# imatsoc = 0: Print NO SOC matrix elements
# imatsoc > 0: Print `imatsoc` specified matrix elements
imatsoc
 7              # Calculate 7 specific SOC matrix elements (max 4000 allowed)
0 0 0 2 1 1     # "0 0 0" represents the ground state (S0)
0 0 0 2 1 2     # Format: "i m n" = i-th TDDFT calc, m-th irrep, n-th state
1 1 1 2 1 1     # Calculate <S1|H_SOC|T1>
1 1 1 2 1 2
1 1 2 2 1 1
1 1 2 2 1 2
2 1 1 2 1 1
2 1 1 2 1 2
$end

Imatrsf Parameter Type: Integer

  • Default: 0

  • Options: 0, -1

Controls printing transition dipole moments between scalar states in TDDFT-SOC calculations. imatrsf=-1 prints all transition dipoles.

Imatrso Parameter Type: Integer Array

Specifies printing transition dipole moments (and oscillator strengths/radiative rates) between spinor states after SOC.

$TDDFT
...
Imatrso
# Print 5 specific spinor-spinor transition dipoles (max 4000)
# imatrso = -1: Print ALL pairs
# imatrso = -2: Print ALL ground_spinor -> excited_spinor pairs (excludes ground-ground & excited-excited)
5
1 1             # Between spinor state 1 and spinor state 1
1 2             # Between spinor state 1 and spinor state 2
1 3
2 3
2 4
$END

Excited State Property Analysis

Ntoanalyze Parameter Type: Integer Array

Natural Transition Orbital (NTO) analysis for specified TDDFT states. Supports Abelian point groups only.

$TDDFT
istore
1           # Store wavefunction (Must be 1, even if not the first $tddft block)
$End

$TDDFT
Ntoanalyze
2           # Analyze 2 states
1 3         # Analyze the 1st and 3rd excited states
$End

Outputs NTOs in Molden format: bdftask.tdno_irepm_staten.molden (m = irrep index, n = state index within irrep).

TRDDens Parameter Type: Boolean Outputs transition density to Cube files. Default name: bdftask.trd_irepm_staten.cube (m = irrep index, n = state index).

DensCube Parameter Type: Boolean Outputs ground and excited state densities to Cube files. For singlet ground states: * File rho_irepn_singlet.cube contains densities for the n-th irrep. * For irrep 1 (usually totally symmetric), file rho_irep1_singlet.cube contains n excited state densities followed by the ground state density.

Cubexyz Parameter Type: Floating-point Array Specifies grid step size (x, y, z) for Cube files.

$TDDFT
istore
1           # Store wavefunction (Must be 1)
$End

$TDDFT
TRDDens
Cubexyz
 0.2 0.2 0.2 # 0.2 Å grid step
$End

Memory Control Parameters

Memjkop Parameter Type: Integer

Controls memory (MW = 8 MB blocks) for integral-direct TDDFT J/K operator calculation. If insufficient, multiple passes over integrals are needed, reducing efficiency.

$TDDFT
memjkop
  2048          # Allocate 2048 MW = 2048 * 8 MB = 16 GB memory
$End

Imemshrink Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

Controls OpenMP parallel memory usage for integral-direct J/K calculation: * 0: Do not reduce memory usage (default). * 1: Reduce OpenMP memory footprint (slightly less efficient). Use if memjkop cannot be increased further for large systems/many states.

Solvation Effect Control Keywords

Solneqlr Parameter Type: Boolean

Specifies linear response calculation with nonequilibrium solvation effects.

Soleqlr Parameter Type: Boolean

Specifies linear response calculation with equilibrium solvation effects.

Solneqss Parameter Type: Boolean

Specifies state-specific calculation with nonequilibrium solvation effects.

Soleqss Parameter Type: Boolean

Specifies state-specific calculation with equilibrium solvation effects.

Molecular Structure Optimization - BDFOPT Module

The BDFOPT module is BDF’s molecular geometry optimization module, used to locate energy local minima, transition states, conical intersections, etc. Unlike other modules, input files containing the bdfopt module are not executed linearly in module order; see the “Quick Start” section on structure optimization for details.

Solver Parameter Type: Integer

  • Default: 0

  • Options: 0, 1

Specifies the optimizer for geometry optimization: * Solver=0: Uses the external DL-Find optimizer, supporting energy minimization, transition state search, higher-order saddle points, conical intersections, and minimum energy crossing points (MECP) in Cartesian or internal coordinates. * Solver=1: Uses BDF’s built-in optimizer.

For energy minimization or transition state searches in redundant internal coordinates (see ICoord keyword), Solver=1 is recommended.

Attention

Due to conflicts between DL-FIND and BDF’s default coordinate rotation, add the norotate keyword in the compass module to disable molecular rotation, or use nosymm to disable symmetry. For diatomic/triatomic molecules, only nosymm is allowed. This issue will be resolved in future updates.

Imulti Parameter Type: Integer

  • Default: 0

  • Options: 0, 1, 2

Used for multi-state optimization (e.g., conical intersections (CI), intersystem crossings (ISC)). Currently only supported by DL-Find: * Imulti = 0: No multi-state optimization (default) * Imulti = 1: Optimizes CI/ISC using penalty functions (no non-adiabatic/spin-orbit coupling gradients required) * Imulti = 2: Optimizes CI/ISC using gradient projection (requires non-adiabatic coupling for CI; set Noncoupl to skip spin-orbit coupling gradients for ISC)

Noncoupl Parameter Type: Bool

Skips spin-orbit coupling gradient calculations for ISC optimization.

Multistate Parameter Type: String

  • Default: NONE

  • Options: NONE, 2SOC, 3SOC, …, 9SOC, MECP, CI

Specifies multi-state calculation type. Supported by both DL-Find and BDF optimizers: * NONE: Standard single-state optimization/frequency calculation (1SOC is a synonym) * 2SOC [ chi ]: Two-state spin-mixing model using MSSM (Multi-State Spin Mixing) [78]. Simulates spin-orbit coupling between two spin states to obtain spin-mixed ground states. Supports structure optimization and vibrational frequencies. * 3SOC [ chi ]: MSSM model for three spin states. Similarly, 4SOC [ chi ] to 9SOC [ chi ] support up to nine spin-mixed states. * MECP: Optimizes minimum energy crossing points between two states (not yet supported) * CI: Optimizes conical intersections between two states (not yet supported)

chi is an optional empirical spin-orbit coupling constant (units: \(\rm cm^{-1}\); default: 400): * 3d elements: chi = 50–400 (results are insensitive; up to 1800 for unsaturated bonding) [78, 79] * 4d elements: chi = 50–800 (up to 2000 for unsaturated bonding) * 5d elements: chi = 500–3000 (recommended: 2500) [78]. MSSM may be unreliable for unsaturated 5d systems; use two-/four-component relativistic methods for single-point corrections. * Not applicable to actinides/heavier elements.

Maxcycle Parameter Type: Integer

Sets maximum optimization steps. Default: 50 (DL-Find); max(100, 6×number of atoms) (BDF).

TolGrad Parameter Type: Float

Sets RMS gradient convergence threshold (units: Hartree/Bohr). Default: 2.D-4 (DL-Find), 3.D-4 (BDF). Max gradient threshold = 1.5 × TolGrad.

TolEne Parameter Type: Float

  • Default: 1.D-6

Sets energy change convergence threshold between steps (units: Hartree). Only for DL-Find.

TolStep Parameter Type: Float

  • Default: 1.2D-3

Sets RMS step convergence threshold (units: Bohr). Only for BDF. Max step threshold = 1.5 × TolStep.

IOpt Parameter Type: Integer

  • Default: 3

  • Options: 3, 10 (Solver=1); 0,1,2,3,9,10,11,12,13,20,30,51,52 (Solver=0)

Specifies optimization target. For DL-Find, aligns with DL-Find’s IOpt (common: 3=L-BFGS, 10=P-RFO). For BDF, only IOpt=3 (minima) and IOpt=10 (transition states) are supported.

Trust Parameter Type: Float

  • Default: 0.3

  • Options: Non-zero real

  • Range: 0.005–0.5 or -0.5–-0.005

Sets trust radius. Positive values: initial trust radius = r (dynamically adjusted). Negative values: initial trust radius = |r| (never exceeds |r|).

Update Parameter Type: Integer

  • Default: 3 (minima), 2 (transition states)

  • Options: 0,1,2,3,9

Sets Hessian update method: 0 = recalculate numerical Hessian every step 1 = Powell update (DL-Find only) 2 = Bofill update (transition states) 3 = L-BFGS (DL-Find) / BFGS (BDF) 9 = Bofill update (minima) If ≠0, initial Hessian is force-field-based.

ICoord Parameter Type: Integer

  • Options: 0, 1

Sets coordinate system: 0 = Cartesian (DL-Find default), 1 = redundant internal (BDF default; only option for BDF).

ILine Parameter Type: Integer

  • Options: 0, 1

Enables line searches during optimization (0 = disable, 1 = enable). Default: 0 (DL-Find), 1 (BDF).

Frozen Parameter Type: Integer Sequence

Performs constrained optimization by freezing Cartesian coordinates of specified atoms. First line = number of constraints (N). Lines 2–N+1: two integers per line (atom index + freeze code):

  0: Not frozen (default)
 -1: Freeze x,y,z
 -2: Freeze x
 -3: Freeze y
 -4: Freeze z
-23: Freeze x,y
-24: Freeze x,z
-34: Freeze y,z

BDF optimizer only supports 0 or -1.

Note

Freezes relative Cartesian coordinates; absolute coordinates may change due to molecular reorientation.

Constrain Parameter Type: Integer Sequence

Performs constrained optimization (Cartesian, bond lengths, angles, dihedrals). BDF optimizer only. First line = number of constraints (N). Lines 2–N+1: - 1 integer: freeze atom’s Cartesian coordinates - 2 integers: freeze bond between atoms - 3 integers: freeze angle between atoms - 4 integers: freeze dihedral between atoms

$bdfopt
Constrain
2
1 5        # Freeze bond between atoms 1-5
1 4 8      # Freeze angle between atoms 1-4-8
$end

Optionally set values before freezing:

$bdfopt
Constrain
2
5 10                     # Freeze distance at initial value
4 5 = 1.5                # Set distance to 1.5 Å, then freeze (units always Å)
$end

Note

Works with Cartesian coordinates. Freezing preserves relative positions.

Hess Parameter Type: String

  • Options: only, init, final, init+final

Computes Hessian: - only: Compute Hessian only (no optimization). Performs frequency/thermochemistry analysis. - init: Compute initial Hessian for optimization (useful for transition states). - final: Optimize → compute Hessian at converged geometry (opt+freq). - init+final: Compute initial Hessian → optimize → compute final Hessian (analyzes final Hessian).

Attention

BDF supports analytical Hessian for HF/DFT; TDDFT uses numerical Hessian. Force numerical Hessian with UseNumHess.

UseNumHess Parameter Type: Bool

Forces numerical Hessian even if analytical Hessian is available (supports HF/DFT: LDA, GGA, Hybrid, RS-Hybrid).

ReCalcHess Parameter Type: Integer

  • Options: Non-negative integer

Recalculates numerical Hessian every N steps during optimization. Default: never (unless Update=0).

NumHessStep Parameter Type: Float

  • Default: 0.005

  • Options: Positive real

  • Range: 0.001–0.02

Displacement step for numerical Hessian (units: Bohr). Requires Hessian calculation via other keywords.

ReadHess Parameter Type: Bool

Reads $BDFTASK.hess as initial Hessian ($BDFTASK = input filename without .inp). File can be from any frequency calculation.

RestartHess Parameter Type: Bool

Restarts a frequency calculation from checkpoint.

RmImag Parameter Type: Bool

Automatically eliminates imaginary frequencies: - Minima: Removes all imaginary frequencies. - Transition states: Reduces to exactly one imaginary frequency. Success not guaranteed; verify results manually.

NDeg Parameter Type: Integer

  • Default: 1

  • Options: Positive integer

Electronic degeneracy for thermochemistry (Gibbs free energy). Degeneracy = spatial degeneracy × spin degeneracy. Default=1; crucial for open-shell systems.

NTemp Parameter Type: Integer

  • Default: 1

  • Options: Positive integer

Number of temperature values (defined by Temp). Must precede Temp.

Temp Parameter Type: Float

  • Default: 298.15

  • Options: Positive real

Temperature for thermochemistry (units: K).

NPress Parameter Type: Integer

  • Default: 1

  • Options: Positive integer

Number of pressure values (defined by Press). Must precede Press. - NTemp > 1, NPress = 1: Vary temperature at fixed pressure. - NTemp = 1, NPress > 1: Vary pressure at fixed temperature. - Both >1: Compute for all T/P pairs (pad with defaults if unequal).

Press Parameter Type: Float

  • Default: 1.0

  • Options: Positive real

Pressure for thermochemistry (units: atm).

Scale Parameter Type: Float

  • Default: 1.0

  • Options: Positive real

Frequency scaling factor.

Dimer Parameter Type: Bool

Uses DL-FIND’s Dimer method [80, 81, 82, 83] for transition state optimization (gradients only; no Hessian). Modify defaults via Dimer-Block.

Dimer-Block Parameter Type: Multiple Keywords

Modifies Dimer parameters (end with End Dimer): - NoInterpolation: Recomputes gradients after rotation (slower but fewer steps). - Delta (default: 0.01): Image separation (Bohr; Cartesian only). - Crude: Relaxes RMS gradient threshold to 1.33D-3 (faster but less precise).

NEB Parameter Type: Bool

Uses DL-FIND’s CI-NEB method [83, 84] for reaction paths (highest energy = transition state). Requires: - Reactant geometry from Compass. - Product geometry from Geometry2 (atom order must match). - Optional intermediate images (see NFrame). Modify defaults via NEB-Block.

NEB-Block Parameter Type: Multiple Keywords

Modifies CI-NEB parameters (end with End NEB): - NImage (default: 5): Number of intermediate images. Total images = NImage + 3. - NEBk (default: 0.01): Empirical force constant. - NEBMode (default: 2): Endpoint handling (0=minimize, 1=minimize perpendicular, 2=fixed). - Crude: Relaxes RMS gradient threshold to 1.33D-3.

NFrame Parameter Type: Integer

  • Default: 1

  • Options: 1 to ``NImage``+1 (CI-NEB)

Number of coordinates in Geometry2. Must precede Geometry2.

Geometry2 Parameter Type: String Array

Specifying the geometry of the second endpoint for the CI-NEB method is currently only supported in Cartesian coordinates (to be improved in the future) in angstroms. If the input coordinates are atomic units, you can add Bohr, i.e. Geometry2 Bohr. This keyword ends with ‘’End Geometry2’’. Since the atomic order of the second endpoint must be the same as the first endpoint, the atomic name can be omitted here and only the Cartesian coordinate data can be entered.

If NFrame > 1, the structure of the intermediate image points can be provided for the CI-NEB calculation in Geometry2, sorted by the number of the image points, and the structure of the second endpoint can be placed last.

Hartree-Fock Gradient - GRAD Module

The GRAD module is used to calculate analytical gradients for HF/MCSCF methods.

Basic Keywords

Nrootgrad Parameter Type: Integer

Specifies for which root the MCSCF gradient should be calculated.

Maxiter Parameter Type: Integer

Specifies the maximum number of iterations for CPMCHF (Coupled Perturbed Multi-configuration Hartree-Fock) calculations.

IntCre Parameter Type: Integer

Increases the memory allocated for storing AO (Atomic Orbital) integrals by: intcre × 256 × 1024 × 1024 Bytes.

Ishell Parameter Type: Integer

[Note: Original documentation didn’t specify functionality for this parameter]

Cutcpm Parameter Type: Floating-point

  • Default: 1.D-6

Specifies the convergence threshold for solving the CPMCHF equations.

Printgrad Parameter Type: Integer

  • Options: 0, 3, >99

Controls gradient printing: * 0: Minimal output * 3: Outputs contribution of one-electron terms to the gradient * >99: Debug mode only

DFT/TDDFT Gradients and Response Properties - RESP Module

The resp module is used to calculate DFT/TDDFT gradients, nonadiabatic coupling matrix elements at the TDDFT level (including ground-excited and excited-excited couplings), and response properties such as excited-state dipole moments.

Basic Keywords

Iprt Parameter Type: Integer

Controls print output level, primarily used for program debugging.

NOrder Parameter Type: Integer

  • Default: 1

  • Options: 0, 1, 2

Order of geometric coordinate derivatives. Currently supports 0 and 1: * 0: Calculates response properties without nuclear coordinate derivatives (e.g., excited-state dipole moments) * 1: Calculates analytical gradients * 2: Not yet supported (analytical Hessian) Requires Geom to be set.

Geom Parameter Type: Boolean

This keyword requires no parameter. Used with Norder to specify calculation of first or second geometric derivatives. Options: 1 (Gradient or fo-NACMEs); 2 (Hessian - under development)

NFiles Parameter Type: Integer

For TD-DFT response property calculations, specifies which $tddft block results to read. Note: nfiles = x does not simply mean reading the x-th $tddft block, but rather the block whose istore value equals x. Example for a closed-shell molecule:

$tddft
imethod
1
Nroot
1
istore
1
$end

$tddft
imethod
1
isf
1
Nroot
1
istore
2
$end

$resp
geom
imethod
2
nfiles
2            # Calculates gradient for the lowest triplet excited state, NOT the lowest singlet
             # because nfiles=2, and only the 2nd $tddft block (lowest triplet) has istore=2
$end

Imethod Parameter Type: Integer

  • Default: 1

  • Options: 1, 2

Specifies whether to perform DFT ground-state or TD-DFT excited-state calculations: * 1: Ground state * 2: Excited state (Older BDF versions used Method; currently both Imethod and Method are supported, but future versions may only support Imethod).

# Calculate TD-DFT gradient for the first TD-DFT excited state
$tddft
Nroot
1
istore
1
$end

$resp
geom
imethod
2
nfiles
1
$end
# Calculate ground state gradient
$resp
geom
$end

Ignore Parameter Type: Integer

  • Default: 0

  • Options: -1, 0, 1

Performs data consistency checks for TDDFT gradient calculations, primarily for debugging: * -1: Recalculates TDDFT excitation energies to verify consistency between Resp and TDDFT modules (debugging only) * 0: Checks if the Wmo matrix is symmetric. If significant asymmetry is detected (possible due to unconverged TDDFT/Z-Vector iterations or input errors), the program exits with an error. * 1: Ignores Wmo matrix symmetry check. Use only if convergence thresholds are tight, results are acceptable, and input is correct, but the program still fails the symmetry check.

IRep & IRoot Parameter Type: Integer

These keywords specify which state(s) to calculate TD-DFT gradients or excited-state dipole moments for. Four cases:

a. Both IRep and IRoot specified: .. code-block:: bdf

# Calculate gradient/dipole moment for the 3rd root in the 2nd irreducible representation irep 2 iroot 3

  1. Only IRep specified: Calculates for all roots in that irreducible representation.

c. Only IRoot specified: .. code-block:: bdf

# Sorts all roots (across irreps) by energy and calculates for the 3rd root iroot 3

  1. Neither specified: Calculates for all states obtained from TDDFT.

JahnTeller Parameter Type: String

For molecules with high symmetry, TDDFT geometry optimization might induce Jahn-Teller distortion, potentially leading to multiple symmetry-lowering paths. This keyword specifies the desired Jahn-Teller distortion mode. Example:

$resp
...
JahnTeller
 D(2h)   # Prefer distortion yielding D2h symmetry if multiple options exist
$End

If group theory predicts no distortion or rules out the specified point group, a warning is printed and the input is ignored. Without this keyword, the program maximizes retention of high-symmetry axes during distortion.

Line Parameter Type: Boolean

Performs linear response calculation.

Quad Parameter Type: Boolean

Specifies quadratic response calculation.

Fnac Parameter Type: Boolean

Specifies calculation of first-order nonadiabatic coupling (fo-NAC) vectors. Must be used with Single or Double to compute ground-excited or excited-excited couplings, respectively.

Single Parameter Type: Boolean

Specifies calculation of ground-excited nonadiabatic coupling vectors.

States Parameter Type: Integer Array

Specifies which excited states to compute ground-excited couplings with (multi-line parameter): * Line 1: Integer n (number of states) * Lines 2 to n+1: m i l (file number m from TDDFT istore, irrep i, root l)

Double Parameter Type: Boolean

Specifies calculation of excited-excited nonadiabatic coupling vectors.

Pairs Parameter Type: Integer Array

Specifies which pairs of excited states to compute couplings between (multi-line parameter): * Line 1: Integer n (number of pairs) * Lines 2 to n+1: m1 i1 l1 m2 i2 l2 (specifies each excited state pair)

Noresp Parameter Type: Boolean

Specifies ignoring transition density matrix response terms in Double and FNAC calculations. Recommended.

Grid Parameter Type: String

  • Default: Medium

  • Options: Ultra Coarse, Coarse, Medium, Fine, Ultra Fine

Specifies DFT numerical integration grid type.

Gridtol Parameter Type: Floating-point

  • Default: 1.0E-6 (1.0E-8 for meta-GGA)

Sets the cutoff threshold for generating DFT adaptive grids. Lower values increase grid points, precision, and computational cost.

MPEC+COSX Parameter Type: Boolean

Specifies using Multipole Expansion of Coulomb potential (MPEC) for the J matrix and Chain-of-Sphere Exchange (COSX) for the K matrix. Retained for backward compatibility; recommended to set in Compass module.

Solneqlr Parameter Type: Boolean

Specifies linear response calculation with nonequilibrium solvation effects.

Soleqlr Parameter Type: Boolean

Specifies linear response calculation with equilibrium solvation effects.

Solneqss Parameter Type: Boolean

Specifies state-specific calculation with nonequilibrium solvation effects.

Soleqss Parameter Type: Boolean

Specifies state-specific calculation with equilibrium solvation effects.

Energy and Charge Transfer - ELECOUP Module

The primary functions of the ELECOUP module are:

  1. Calculating coupling integrals between two electronic states of the same molecule based on Hartree-Fock (HF) theory;

  2. Computing charge transfer integrals between two molecular fragments;

  3. Calculating energy transfer integrals between excited states of two molecular fragments.

Note

Calculating coupling integrals between two excited states of the same molecule using HF theory requires the ΔSCF method, typically utilizing the MOM (Maximum Overlap Method) functionality within the SCF module.

Iprt Parameter Type: Integer

Print control parameter, used only for debugging purposes.

UHF Parameter Type: Boolean

Specifies that coupling integrals between two electronic states are calculated based on Unrestricted Hartree-Fock (UHF) wavefunctions.

Nexcit Parameter Type: Integer

Specifies the number of excited states for each molecule.

GSApr Parameter Type: Boolean

Specifies whether a ground-state approximation (GSA) should be applied.

Keywords for Calculating Charge Transfer Integrals

Electrans Parameter Type: Integer Array

This is a multi-line parameter used to specify pairs of Donor and Acceptor molecular orbitals for which charge transfer integrals should be calculated. Format:

First line: Input an integer n, specifying the number of orbital pairs for which transfer integrals should be calculated.

Lines 2 to n+1: Input three integers i j k: * i: The i-th orbital of the Donor * j: The j-th orbital of the Acceptor * k: Value 1 or 2, specifying alpha orbitals (1) or beta orbitals (2).

Dft Parameter Type: String

Specifies the exchange-correlation functional to use for calculating charge transfer integrals. If this parameter is not input, the functional used in the Kohn-Sham calculation will be used by default.

Localized Excited States

locales Parameter Type: Integer

Specifies the method for obtaining localized excited states.

  • Default: 0

  • Options: 0, 1 * 0: Boys localization method * 1: Ruedenberg localization method

Molecular Orbital Localization - LOCALMO Module

The LOCALMO module is used to generate localized molecular orbitals, incorporating methods such as Boys, Pipek-Mezey, and modified Boys localization. It is also utilized to generate initial fragment-localized orbitals for the FLMO (Fragment Localized Molecular Orbital) method.

Basic Control Parameters

Boys Parameter Type: Boolean

Specifies using the Boys localization method for orbitals. Boys is the default method for the Localmo module.

Mboys Parameter Type: Integer

Specifies using a modified Boys localization method. The next line must contain an integer defining the exponent factor for the modified Boys method.

Pipek Parameter Type: Boolean

Specifies using the Pipek-Mezey localization method. By default, Mulliken charges are used. If the Lowdin parameter is set, Pipek-Mezey will use Löwdin charges instead. This method defaults to Jacobi rotations for orbital localization. To use the Trust-Region method, the Trust keyword must be specified.

Mulliken Parameter Type: Boolean

Specifies that the Pipek-Mezey method should use Mulliken charges. This is the default option.

Lowdin Parameter Type: Boolean

Specifies that the Pipek-Mezey method should use Löwdin charges.

Jacobi Parameter Type: Boolean

Specifies that the Pipek-Mezey method should use Jacobi rotations for orbital localization.

Trust Parameter Type: Boolean

Specifies that the Pipek-Mezey method should use the Trust Region method for orbital localization.

Hybridboys Parameter Type: Integer

Options: -100, 100

Specifies a hybrid approach combining Jacobi rotations and the Trust Region method for Pipek-Mezey or Boys localization. By default, no hybrid method is used. If this parameter is specified, the next line must contain an integer: - -100: Only virtual orbitals undergo initial Jacobi rotation localization for 100 cycles or until convergence threshold Hybridthre is reached, then switch to Trust Region method. - 100: Both occupied and virtual orbitals undergo initial Jacobi rotation localization for 100 cycles or until convergence threshold Hybridthre is reached, then switch to Trust Region method.

Hybridthre Parameter Type: Floating-point

Specifies the transition threshold for the hybrid localization method.

Thresh Parameter Type: Floating-point

Specifies the convergence threshold for the localization method. Requires input of two floating-point numbers.

Tailcut Parameter Type: Floating-point

  • Default: 1.D-2

Specifies the threshold for ignoring FLMO (Fragment Localized Molecular Orbital) tails.

Threshpop Parameter Type: Floating-point

  • Default: 1.D-1

Specifies the Löwdin population threshold.

Maxcycle Parameter Type: Integer

Specifies the maximum number of iterations allowed for Boys localization.

Rohfloc Parameter Type: Boolean

Specifies localization of ROHF (Restricted Open-shell Hartree-Fock) or ROKS (Restricted Open-shell Kohn-Sham) orbitals.

orbital Parameter Type: String

Specifies the file from which molecular orbitals are read.

$LocalMO
Orbital
hforb       # Specifies reading orbitals from the hforb file stored by the SCF calculation
$End

Orbread Parameter Type: Boolean

Specifies reading molecular orbitals from the text file inporb located in BDF_TMPDIR.

Flmo Parameter Type: Boolean

Specifies projecting LMOs (Localized Molecular Orbitals) to pFLMO (projected Fragment Localized Molecular Orbitals).

Frozocc Parameter Type: Integer

Specifies the number of occupied orbitals that should not be localized.

Frozvir Parameter Type: Integer

Specifies the number of virtual orbitals that should not be localized.

Analyze Parameter Type: Boolean

Specifies analysis of user-provided localized orbitals. Calculates the number of occupied-virtual orbital pairs and MOS (Molecular Orbital Spread). Analysis requires reading a file named bdftask.testorb from BDF_TMPDIR, which must be in the same text format as SCF’s bdftask.scforb orbital file.

Iapair Parameter Type: Floating-point

Specifies the threshold for counting overlapping occupied-virtual orbital pairs. By default, only pairs with absolute overlap > 1.0×10⁻⁴ are counted.

Directgrid Parameter Type: Boolean

Specifies using direct numerical integration to compute the absolute overlap of occupied-virtual orbital pairs.

Nolmocls Parameter Type: Integer

Specifies the number of SCF occupied orbitals that should not be localized.

Nolmovir Parameter Type: Integer

Specifies the number of SCF virtual orbitals that should not be localized.

Moprt Parameter Type: Integer

Specifies printing coefficients of localized molecular orbitals.

Orbital Expansion with Different Basis Sets - EXPANDMO Module

The EXPANDMO module is used to expand molecular orbitals (MOs) calculated with a small basis set into MOs for a larger basis set. The expanded MOs can serve as initial guesses for SCF calculations or be used in dual-basis calculations. Additionally, EXPANDMO can utilize the atomic valence active space to automatically construct the active space and initial guess orbitals for MCSCF calculations.

Overlap Parameter Type: Boolean

Specifies the use of overlap integrals between the small and large basis sets to expand the molecular orbitals.

The EXPANDMO module depends on the following files:

# Calculate CH2 molecule using cc-pVDZ basis set and expand molecular orbitals to aug-cc-pVDZ basis set for SCF initial guess
# First we perform a small basis set calculation using CC-PVDZ.
$COMPASS
Title
  CH2 Molecule test run, cc-pvdz
Basis
  cc-pvdz
Geometry
C     0.000000        0.00000        0.31399
H     0.000000       -1.65723       -0.94197
H     0.000000        1.65723       -0.94197
End geometry
UNIT
  Bohr
Check
$END

$XUANYUAN
$END

$SCF
RHF
Occupied
3  0  1  0
$END

# Change the name of the checkpoint file
%mv $BDF_WORKDIR/ch2.chkfil $BDF_WORKDIR/ch2.chkfil1
# Copy the converged SCF orbitals to the working directory as inporb
%mv $BDF_WORKDIR/ch2.scforb $BDF_WORKDIR/ch2.inporb

# Then we initialize a large basis set calculation using aug-CC-PVDZ
$COMPASS
Title
  CH2 Molecule test run, aug-cc-pvdz
Basis
  aug-cc-pvdz
Geometry
C     0.000000        0.00000        0.31399
H     0.000000       -1.65723       -0.94197
H     0.000000        1.65723       -0.94197
End geometry
UNIT
  Bohr
Check
$END

Møller–Plesset Second-Order Perturbation - MP2 Module

The Møller-Plesset second-order perturbation theory calculation module, primarily used to implement double-hybrid DFT calculations. For symmetry-adapted orbital SCF algorithms based on integral-direct methods (see Saorb keyword), MP2 supports both RHF and UHF reference wavefunctions; For integral-direct SCF algorithms (default, see Skeleton keyword), MP2 only supports RHF reference wavefunctions.

Nature Parameter Type: Boolean

Computes the reduced density matrix and outputs natural orbitals.

Molden Parameter Type: Boolean

Outputs natural orbitals in molden format file.

Iprtmo Parameter Type: Integer

Controls the orbital output printing mode.

Fss, Fos Parameter Type: Floating-point

  • Default: 1.0

Spin component scaling parameters used in SCS-MP2 and certain double-hybrid functionals. After computing the MP2 energy, the program multiplies the same-spin component by Fss and the opposite-spin component by Fos.

Nuclear Magnetic Shielding Constant Calculation - NMR Module

The NMR module is used to calculate nuclear magnetic shielding constants for molecules.

igiao Parameter Type: Integer

Specifies whether to calculate GIAO (Gauge-Including Atomic Orbitals) NMR shielding constants. Accepts 0 (skip GIAO calculation) or 1 (perform GIAO calculation). Default is 0. Input format:

igiao
  1

icg Parameter Type: Integer

Specifies whether to calculate COMMON GAUGE (CG) NMR shielding constants. Accepts 0 (skip CG calculation) or 1 (perform CG calculation). Default is 0. Input format:

icg
  1

igatom Parameter Type: Integer

Specifies the gauge origin position for COMMON GAUGE calculations. Accepts: - 0: Set gauge origin at spatial coordinate origin (default) - 1 to number of atoms: Set gauge origin at the center of the igatom-th atom

Input format:

igatom
  3      # Set gauge origin at the center of the 3rd atom

cgcoord Parameter Type: Three real numbers

Specifies the gauge origin position for COMMON GAUGE calculations at a specific spatial coordinate point. Default unit is atomic units (bohr/AU). Unit can be controlled by the cgunit parameter.

cgcoord
  1.0 0.0 0.0   # Three real numbers placing gauge origin at (1.0, 0.0, 0.0)

cgunit Parameter Type: String

Specifies the unit for the cgcoord parameter: - Default: Atomic units (bohr/AU) - Input “angstrom” changes units to Ångstroms - Other inputs (e.g., “bohr”, “AU”) maintain atomic units. Case-insensitive.

cgunit
  angstrom      # Unit for cgcoord coordinates (default: atomic units)
               # Other inputs (e.g., bohr, AU) keep atomic units

Intrinsic Reaction Coordinate - IRC Module

The IRC module is used for generating reaction paths.

Common Keywords

ircpts Parameter Type: Integer

  • Default: 50

  • Options: Positive integers

Sets the maximum number of points to examine along the reaction path (in each direction).

ircdir Parameter Type: Integer

  • Default: 0

  • Options: 1, -1

Sets the direction of the reaction: * 1: Forward direction * -1: Reverse direction * 0: Simulate both directions

ircalpha Parameter Type: Floating-point

  • Default: 0.1

  • Options: Non-negative floating-point numbers

Scales the initial displacement. The initial displacement is related to the Hessian at the transition state. Adjusts the step size for IRC calculations by modifying this parameter.

BDF多组态波函数方法模块手册

Multi-Configuration Self Consistent Field - MCSCF Module

Multi-Configuration Self Consistent Field (MCSCF) calculation module. If the active space is not defined, a second-order convergent RHF calculation is performed. If molecular orbitals are not optimized, only CASCI calculation is performed.

Basic Control Parameters

AutoMC Parameter Type: Boolean

When the user explicitly sets the $expandmo module to enable automatic active space selection, using this keyword, BDF will automatically generate the values of keywords close, active, and actel.

Attention

User input priority: If the user manually sets keywords such as close, active, actel in the subsequent input file, user-defined values will override the system auto-generated values.

Core Parameter Type: Integer Array

Specifies the number of frozen doubly occupied orbitals for each irreducible representation.

Delete Parameter Type: Integer Array

Specifies the frozen virtual orbitals for each irreducible representation. Frozen orbitals do not participate in orbital optimization.

Close Parameter Type: Integer Array

Specifies the non-active doubly occupied orbitals for each irreducible representation.

Active Parameter Type: Integer Array

Specifies the number of active orbitals for each irreducible representation.

Actel Parameter Type: Integer

Specifies the number of electrons in the active space.

RootPrt Parameter Type: Integer Array

Specifies which root of MCSCF to use for calculating the numerical gradient.

Symmetry Parameter Type: Integer

Specifies the symmetry of the electronic state for MCSCF calculation.

Spin Parameter Type: Integer

Specifies the spin of the electronic state for MCSCF calculation, 2S+1.

Roots Parameter Type: Integer Array

roots is a multi-line parameter, specifying how many roots to calculate in MCSCF and how to perform state-averaged calculation. Depending on the number of roots to be calculated, 1 or 3 lines of input are required: First line: 2 to 3 integers “n m i”, the first integer “n” specifies how many roots to perform state-averaging on; the second integer “m” specifies how many roots to calculate in CI, n<=m; the third integer is a control parameter. If the third integer is 1, no additional two lines of input are needed, and state-averaging is performed directly on the “n” lowest states; if the third integer is not input or is 0, two additional lines are needed to specify how to perform state-averaging. Second line: specifies which roots to perform state-averaging on. Third line: specifies the weights of the roots for state-averaging; the program automatically normalizes the weights.

$MCSCF
...
Roots
3 4        # State-average over 3 roots, calculate 4 roots in CI
1 2 4      # State-average over the 1st, 2nd, and 4th states
1 1 1      # Equal weights for each state
$End
$MCSCF
...
Roots
3 4 1   # State-average over 3 roots, calculate 4 roots in CI
$End

MixCI Parameter Type: Integer Array

MixCI is a multi-line parameter, controlling state-averaging over electronic states with different spin multiplicities and symmetries. Four lines of input are required. First line, integer “n” specifies how many different spin multiplicity and symmetry states to average. Second line, the spin multiplicities of each state. Third line, the number of states of each type. Fourth line, the spatial symmetry of each state.

$MCSCF
....
MixCI
 3       # 3 states with different symmetries
1 3 5     # Spin multiplicities are singlet, triplet, and quintet respectively
3 1 2     # Average 3, 1, and 2 roots for each state respectively
1 4 3     # Spatial irreducible representations 1, 4, and 3 for each state respectively
$End

Guess Parameter Type: String

Optional values: hcore, huckel, hforb, mcorb, Inporb

Specifies the initial guess orbitals for MCSCF. hcore: solution of the one-electron Hamiltonian as initial guess. huckel: extended Huckel method guess. hforb: read bdftask.hforb as initial guess, generated by SCF calculation. mcorb: read bdftask.mcorb as initial guess, generated by MCSCF calculation. Inporb: read inporb as initial guess, inporb is in text format, generally from text-formatted orbital output of SCF or MCSCF calculation.

Guga Parameter Type: Boolean

Specifies using the GUGA algorithm for CASCI calculation. The TUGA algorithm is used by default.

iCI Parameter Type: Boolean

Specifies using the iCI method as the CASCI solver. However, the ENPT2 correction term for the deviation between iCI and CASCI is not provided. This is the iCISCF method.

iCIPT2 Parameter Type: Boolean

Specifies using the iCI method as the CASCI solver. At the same time, provides the ENPT2 correction term for the deviation between iCI and CASCI. This is the iCISCF(2) method.

CVS Parameter Type: Boolean

Specifies using the GUGA method to calculate core electron excitations.

Actfrz Parameter Type: Integer

Freezes molecular orbitals (MOs) that are actually core orbitals within the active space, can be used for calculating core electron excitations.

Input format rules: Line 1: Declares the number of active MOs to be frozen (positive integer). Line 2: Lists the indices of the frozen MOs (must conform to program input conventions).

$mcscf
...
actfrz
3
10 11 12  ! these three MOs are core orbitals
$end

SOCCAS Parameter Type: Boolean

Specifies using TUGA to calculate SOiCISCF.

SOCene Parameter Type: Boolean

Specifies using GUGA to calculate SOC between electronic states involved in MCSCF.

XvrSet Parameter Type: Integer Array

Sets the extended virtual orbital (XVR) orbitals for each irreducible representation of MCSCF generated via expandmo. Must be used in conjunction with the VSD keyword of the expandmo module to define the XVR initialization configuration.

Attention

MCSCF orbital ordering rule: Orbitals are forcibly ordered as: Doubly occupied (Closed) → Active → Virtual (Vir) → XVR.

  • See example test126.inp for complete input logic

Virdel Parameter Type: Boolean

Specifies forcing the orbital ordering: Doubly occupied (Closed) → Active → Virtual (Vir) → XVR.

  • See example test126.inp for complete input logic

XvrUse Parameter Type: Boolean

Specifies outputting the extended virtual orbitals (XVR) generated by MCSCF calculation to the checkpoint file (chkfil) for subsequent calls by the xianci module. When this keyword is enabled, the program retains XVR orbitals instead of the default deletion operation, enabling cross-module data reuse.

Note

If XvrUse is not enabled, the xianci module will automatically delete temporary XVR and recalculate.

  • See example test126.inp for complete input logic

Solvate Parameter Type: Boolean

Specifies MCSCF calculation considering solvation effects.

Note

The solvent, solvation model, and parameters used are all derived from the preceding SCF calculation.

Sortact Parameter Type: Integer

Specifies the orbital sorting function within the active space.

Input format: Line 1: Specifies the number of sort pairs (integer). Line 2: Lists the molecular orbital (MO) indices to be moved into the active space in order. Line 3: Lists the molecular orbital (MO) indices to be moved out of the active space in order, paired one-to-one with Line 2 for exchange.

$mcscf
...
SortAct
3
10 15 20   # Indicates moving MO 10, 15, 20 into the active space
12 13 14   # Corresponding MO 12, 13, 14 will be moved out of the active space
$end

Note

In the above example, three groups of MO exchange operations are actually performed: MO 10 ↔ MO 12, MO 15 ↔ MO 13, MO 20 ↔ MO 14 Index numbers are usually based on the orbital ordering in the calculation output file (it is recommended to first check the MO list in the Output or Molden file).

Application scenarios: Manually adjusting the active orbital composition in CASSCF calculation. Adjusting the orbital space distribution for multi-reference calculations, fixing convergence problems caused by orbital numbering misalignment.

grad Parameter Type: Boolean

Specifies computing and storing molecular orbital integrals and orbital Hessian matrix required for analytical gradient calculation. When using the grad module to calculate MCSCF analytical gradients, this keyword must be added in the mcscf module.

iCAS Parameter Type: Boolean

Specifies using the iCAS method to perform active space validation at each macro iteration of MCSCF.

  • Function description: Validates the division of doubly occupied, active, and virtual spaces using MOM/SVD/Hungary algorithms, and forcibly constructs the CAS active space.

  • The MOM method is used by default; the user must explicitly set keywords Hungary or SVD to invoke alternative algorithms.

SVD Parameter Type: Boolean

Specifies the SVD algorithm to validate the division of doubly occupied, active, and virtual spaces.

Hungary Parameter Type: Boolean

Specifies the Hungary algorithm to validate the division of doubly occupied, active, and virtual spaces.

Actadd Parameter Type: Boolean

Function description: When this keyword is used together with iCAS or SVD for active space validation, the program will automatically expand the number of active orbitals to optimize the space division.

Trigger conditions: 1. When used with iCAS, automatically adds near-degenerate orbitals based on orbital occupation fluctuations. 2. When used with SVD (singular value decomposition), dynamically expands the orbital space dimension through matrix rank analysis.

Statemo Parameter Type: Integer

Specifies state-specific molecular orbital output.

  • Function description: Sets the state number for which state-specific molecular orbitals are to be output.

  • Default value: StateMO = 0 means output state-averaged molecular orbitals.

Qcmo Parameter Type: Boolean

Specifies generating quasi-canonical active molecular orbitals from CASSCF calculation. CASSCF generates natural active orbitals by default.

Direct Parameter Type: Boolean

Specifies performing a direct CI at each MCSCF iteration.

Molden Parameter Type: Boolean

Outputs the molecular orbitals optimized by MCSCF to the $BDFTASK.mcscf.molden file.

Iprtmo Parameter Type: Integer

Specifies the printing level of MOs. Same as related parameters in SCF.

CASCI Parameter Type: Boolean

Specifies performing CI calculation only, without optimizing molecular orbitals.

cionly Parameter Type: Boolean

Specifies performing CI calculation only, without optimizing molecular orbitals. Equivalent to the keyword CASCI.

orbonly Parameter Type: Boolean

Specifies optimizing molecular orbitals only, without performing CI calculation.

CIread Parameter Type: Boolean

Specifies reading in CI wave function as the initial guess wave function for CI calculation.

Localized MCSCF Related Parameters

Localmc

Specifies localizing the molecular orbitals optimized by MCSCF.

Nolmocls Parameter Type: Boolean

Specifies not localizing the doubly occupied orbitals generated by localized MCSCF.

Nolmoact Parameter Type: Boolean

Specifies not localizing the active orbitals generated by localized MCSCF.

Nolmovir Parameter Type: Boolean

Specifies not localizing the virtual orbitals generated by localized MCSCF.

Nature

Specifies generating natural active molecular orbitals from CASSCF calculation. This is the default output active orbital.

Mom

Specifies the MOM algorithm to validate the division of doubly occupied, active, and virtual spaces. This is the default method.

MCSCF Orbital Optimization Algorithm Control

Quasi Parameter Type: Boolean

Specifies using quasi-Newton method for MCSCF.

Superci Parameter Type: Boolean

Specifies using the first-order Super-CI-PT method for MCSCF. This keyword is used as an alternative to Quasi. * This keyword requires molecular orbital integrals (pw|uv) which are smaller than (pq|uv) required by the keyword Quasi. * Currently Superci can be used for both RI and NoRI basis set systems. For molecular systems with symmetry, this method cannot use the Core keyword to freeze doubly occupied orbitals. * When using NoRI, if the Compass module uses the keyword Saorb, the XianCI module calculation can be performed after MCSCF is completed. * When using NoRI, if the Compass module does not include the keyword Saorb, Superci uses direct atomic orbital integrals, which can be used for systems with a large number of atomic orbitals (AO > 1500), * but the subsequent XianCI module calculation cannot be performed. * When using RI, the Compass module needs to use the keyword RI-C to set the auxiliary basis set. If a mixed auxiliary basis set is needed, the local auxiliary basis set name must be set: $BDF_WORKDIR/auxbas * Additionally, for auxiliary basis sets not available in the bdf-pkg-full/basis_library/RI-C directory for RI-C auxiliary basis sets in BDF, * the auxiliary basis set for any element can be automatically generated using bdf-pkg-full/sbin/auxbas-pyscf-bdf.py in the pyscf software and stored in the auxbas file. * Superci is relatively sensitive to the maximum step size of orbital rotation. The default Maxstep used is 0.05. * Superci requires more macro iterations. The default Macit used is 100. * If MCSCF has not converged, the optimized orbitals $BDF_WORKDIR/$BDFTASK.casorb can be used as initial guess for restart calculation. * If convergence has not been achieved using Superci, the optimized orbitals can also be used as initial guess, then changed to Quasi to improve convergence.

Attention

This method has larger approximations, which may lead to trailing convergence phenomena in MCSCF orbital optimization. If this situation occurs, the threshold of keyword Conv can be increased.

SwitchIter Parameter Type: Integer

Specifies the macro iteration number at which DIIS acceleration begins for optimizing molecular orbitals using the Super-CI-PT method. Default value: 15

SwitchConv Parameter Type: Float

Specifies the gradient threshold at which DIIS acceleration begins for optimizing molecular orbitals using the Super-CI-PT method. Default value: 0.01

NmoCri Parameter Type: Float

Used to control the situation where active orbital natural orbital occupation numbers are close to doubly occupied orbitals (Close) and unoccupied orbitals (Virtual). * Default value: 2.0 0.0 means no control. * Recommended value: 1.999 0.001 means orbitals with occupation numbers greater than 1.999 will not be exchanged with close orbitals, and orbitals less than 0.001 will not be exchanged with virtual orbitals.

Werner Parameter Type: Boolean

Specifies using Werner’s second-order convergent MCSCF optimization method. This is the default MCSCF optimization algorithm. This method requires [pq|(i+u)(j+v)] molecular orbital integrals. When the number of atomic orbitals in the system is large, please use the approximate methods provided by keywords Quasi or Superci.

Mixopt Parameter Type: Boolean

Specifies mixing Werner algorithm with Quasi algorithm. If the Werner algorithm has difficulty converging, this parameter can be used.

MCSCF Iteration and Convergence Threshold Control

Macit Parameter Type: Integer

Specifies the maximum number of MCSCF macro iterations.

Micit Parameter Type: Integer

Specifies the maximum number of MCSCF micro iterations.

Ciiter Parameter Type: Integer

Specifies the maximum number of CI calculation iterations.

Conv Parameter Type: Float

Default value: 1.D-8 1.d-4

Note

The first threshold is the energy convergence value, and the second threshold is the orbital gradient convergence threshold.

Cmin Parameter Type: Float

Specifies the truncation threshold for UGA-CI/iCI. Parameter description: Controls the truncation threshold of configuration functions (CSFs) in the Unitary Group Approach Configuration Interaction (UGA-CI) and intelligent Configuration Interaction screening (iCI) methods. * Default value: 1.0d-4 * Function rule: When the absolute value of the CSF weight coefficient is below this threshold, it will be automatically eliminated. Lower threshold means higher calculation accuracy but significantly increased computational time. * Input conflict handling: If the user explicitly sets this parameter in the input file, the system will give priority to using the user-defined value to override the default value.

Actmin Parameter Type: Float

Specifies the precision threshold controlling Jacobi rotation of active molecular orbitals in the iCI method. * Default value: 1.0d-6

Actopt Parameter Type: Boolean

Specifies the active space orbital optimization method selection.

  • Parameter option description:

  • ACTOPT=0: Prohibits any orbital optimization within the active space. Default state: enforced (no explicit declaration needed).

  • ACTOPT=1: Enables active space orbital optimization, using Werner method or quasi-Newton method.

  • ACTOPT=2: Enables active space orbital optimization, using Jacobi rotation. Advantage: Better numerical stability under high precision requirements. Warning: May lead to significantly increased computation time when the active space is large.

Prtcri Parameter Type: Float

Specifies the threshold for printing output CSFs. * Default value: 0.05

SOCcri Parameter Type: Float

Specifies the threshold for printing SOC calculated by keyword SOCene.

Prtiter Parameter Type: Boolean

Outputs the molecular orbitals obtained at each macro iteration to the $BDFTASK.mciter.molden file.

Maxstep Parameter Type: Float

Default value: 0.1

Note

Maximum value of the orbital rotation matrix element. i.e., the maximum step length of orbital rotation.

Ucutoff Parameter Type: Float

Default value: 1.D-8

Specifies the threshold for approximating integral transformation in inner space orbital optimization. This parameter affects MCSCF calculation efficiency.

GUGA-CI Calculation Control Parameters in MCSCF

Ncisave Parameter Type: Integer

Default value: 20000

Specifies the maximum dimension of the CI matrix that can be saved.

Node Parameter Type: Integer

Default value: 30000

Specifies the maximum number of DRT nodes.

Wei Parameter Type: Integer

Specifies the maximum number of arc weights.

Ploop Parameter Type: Integer

Specifies the maximum number of partial Loops in GUGA Loop search.

Nref Parameter Type: Integer

Default value: 10000

Specifies the number of reference states.

Nvff Parameter Type: Integer

Default value: 10000000

Specifies the maximum number of two-electron product integrals in the active space.

Test Cases

test004.inp

test015.inp

test016.inp

test019.inp

test020.inp

test021.inp

test061.inp

test069.inp

test070.inp

test071.inp

test080.inp

test086.inp

test095.inp

test100.inp

test105.inp

test114.inp

test126.inp

test131.inp

test139.inp

test148.inp

test150.inp

Atomic Orbital to Molecular Orbital Integral Transformation - TRAINT Module

The traint module is used to transform atomic orbital integrals to molecular orbital integrals. Only symmetry-adapted integral transformation is supported. When using traint, the Compass module must not contain the Skeleton keyword. The traint module is mainly used in conjunction with post-Hartree-Fock calculations to provide molecular orbital integrals for Post-HF methods.

Basic Control Parameters

Frozen Parameter Type: Integer Array

Specifies the number of frozen doubly occupied molecular orbitals for each irreducible representation.

UTDDFT Parameter Type: Boolean

For MO-TDDFT algorithm, specifies integral transformation based on UKS orbitals. MO-TDDFT has low computational efficiency and is only used for testing and comparison.

TDDFT Parameter Type: Boolean

For MO-TDDFT algorithm, specifies integral transformation based on RKS orbitals. MO-TDDFT has low computational efficiency and is only used for testing.

alpha & beta Parameter Type: Integer Array

Specifies the number of occupied orbitals for alpha and beta orbitals of each irreducible representation for MO-UTDDFT.

Occupy Parameter Type: Integer Array

Specifies the number of occupied orbitals for each irreducible representation in MO-TDDFT calculation.

Orbital Parameter Type: String

Optional values: hforb, mcorb, Orbtxt

Specifies where to read molecular orbitals. hforb reads molecular orbitals from SCF calculation; mcorb reads molecular orbitals from MCSCF calculation; Orbtxt reads molecular orbitals from text file.

FCIDUMP Parameter Type: Boolean

Transforms molecular orbitals and stores them in the FCIDUMP file.

Symmetry Parameter Type: Integer

Specifies the symmetry of the molecular state.

Nelectron Parameter Type: Integer

Specifies the number of electrons for Full CI calculation.

Spin Parameter Type: Integer

Specifies the spin of the electronic state, 2S+1.

Multireference Configuration Interaction and Multireference Second-Order Perturbation Theory - XIANCI Module

The xianci module originates from the Xi’an-CI program package, performing ucMRCI, icMRCI, XSDSCI, CB-MRPT2/3, MS-CASPT2, XMS-CASPT2, XDW-CASPT2, RMS-CASPT2, MS-NEVPT2, SS-NEVPT3, SDSPT2f, SDSPT2, SDSCIf, SDSCI, and other calculations.

Basic Control Parameters

Roots Parameter Type: Integer

Specifies the number of roots (electronic states) to calculate. * If mcscf only calculates one type of spatial and spin symmetry, the xianci module will read the number of roots calculated by the mcscf module as the default value, so this parameter does not need to be set. * Default value: 1

Istate Parameter Type: Integer

Specifies the number of roots to calculate and sets the indices of the roots to be calculated. If this keyword is used, the keyword Roots will be invalid.

Attention

This keyword can only be used for all CASPT2, NEVPT2, SDSPT2, SDSCI and XSDSCI type methods.

Example: Line 1 contains 1 integer setting the number of states to calculate, Line 2 sets the indices of the selected electronic states (roots).

$xianci
...
istate
2
1 3
$end

Spin Parameter Type: Integer

Specifies the spin multiplicity of the electronic state to calculate, 2S+1. * If mcscf only calculates one type of spatial and spin symmetry, the xianci module will read the number of roots calculated by the mcscf module as the default value, so this parameter does not need to be set. * Default value: 1 Symmetry Parameter Type: Integer ———————————————— Specifies the symmetry of the electronic state to calculate. * If mcscf only calculates one type of spatial and spin symmetry, the xianci module will read the number of roots calculated by the mcscf module as the default value, so this parameter does not need to be set. * Default value: 1

Frozen Parameter Type: Integer Array

Specifies the number of frozen doubly occupied (inactive) orbitals for each irreducible representation. It is recommended to freeze atomic Core orbitals. * Default is no frozen doubly occupied orbitals.

Core Parameter Type: Integer Array

Specifies the number of frozen doubly occupied (inactive) orbitals for each irreducible representation. It is recommended to freeze atomic Core orbitals. * Default is no frozen doubly occupied orbitals.

Dele Parameter Type: Integer Array

Specifies the number of frozen unoccupied (virtual) orbitals for each irreducible representation. * Default is no frozen virtual orbitals.

Electron Parameter Type: Integer

Number of electrons in the correlated orbitals. * Default value comes from the mcscf module and may not need to be input.

Inactive Parameter Type: Integer Array

Specifies the number of doubly occupied orbitals for each irreducible representation. * Default value comes from the mcscf module and may not need to be input.

Active Parameter Type: Integer Array

Specifies the number of active orbitals for each irreducible representation. * Default value comes from the mcscf module and may not need to be input.

XvrUse Parameter Type: Boolean

When the keyword ‘Dele’ is not used to set the molecular orbitals (MOs) to be deleted, the keyword ‘XvrUse’ is used to selectively delete virtual orbitals through the MCSCF XVR method.

Attention

If both ‘Dele’ and ‘XvrUse’ are specified, the ‘Dele’ keyword takes precedence over ‘XvrUse’.

  • See example test126.inp for complete input logic

Rootprt Parameter Type: Integer

Specifies the electronic state index required for calculating numerical gradients using the numgrad module. * Default value: 1

Orbtxt Parameter Type: String

Specifies the suffix name of the molecular orbital file to read.

CVS Parameter Type: Boolean

Specifies generating a Core Valence Separation DRT during calculation, and using this DRT to calculate Core Valence excited states.

ReadDRT Parameter Type: Boolean

Specifies reading the DRT information stored in $WORKDIR/$BDFTASK.cidrt from the working directory during calculation, thereby reducing the time required for DRT generation. * Recommended for calculations on systems with large active spaces.

Nexci Parameter Type: Integer

Specifies the number of electrons excited from the reference configuration. * Default value: 2 * Optional values: 1 (single excitation only), >=3 (more than three electrons excited relative to the reference configuration’s active orbitals)

Readref Parameter Type: Integer

Automatically reads the reference configurations from $WORKDIR/BDFTASK.select_*_#, where * represents the spin multiplicity and # represents the irreducible representation. * Default value comes from the mcscf module and may not need to be input. * If the mcscf module does not set keywords “iCI” or “iCIPT2”, and reference configurations need to be selected, then this keyword needs to be set.

Node Parameter Type: Integer

Specifies the initial size of the array required to store nodes in the sub-DRTs that generate the CAS reference space (P space). No preset is needed for sub-DRTs generated by the state-selective method. * Default value: 1000000

Pmin Parameter Type: Float

Specifies that reference configurations with configuration coefficients greater than this value in $WORKDIR/BDFTASK.select_*_# are used as reference configurations for constructing excited configurations. * Default value: Pmin=0.0, if the mcscf module includes keywords iCI or iCIPT2, the default value is Pmin=Cmin (Cmin comes from the mcscf module). * Recommended value: Pmin=1.d-3

QminDV Parameter Type: Float

Specifies the threshold for trimming the first-order interaction space (FOIS) value of uncontracted excited configurations in the Q subspace (bar{D}V, double excitation operator including 3 active orbitals and 1 doubly occupied orbital). * Default value: 0.0 * Recommended value: 1.d-5

QminVD Parameter Type: Float

Specifies the threshold for trimming the first-order interaction space (FOIS) value of uncontracted excited configurations in the Q subspace (bar{V}D, double excitation operator including 3 active orbitals and 1 unoccupied orbital). * Default value: 0.0 * Recommended value: 1.d-5

Qnex Parameter Type: Boolean

Specifies not selecting the DVD approximation. DVD approximation: When generating bar{D}V and bar{V}D excited configurations, some triple-excitation configurations involving 3 active orbitals are ignored. * Default value: .false.

Epic Parameter Type: Float

Specifies the threshold for storing internal contraction function coefficients in the coefficient matrix. * Default value: QminVD=0.0 * Recommended value: QminVD=1.d-5

Seleref Parameter Type: Integer

Specifies the reference orbital configurations (orbital configuration, oCFG) for MRCI calculation. This parameter has nref+1 lines, where nref is the number of reference orbital configurations. * Default value: If keyword “readref” is used to select reference configurations, this keyword is not needed. * If the user wants to respecify oCFG, this keyword and nref selected oCFGs need to be set.

$xianci
...
seleref
3
2200
2110
2020
$end

First line: 1 integer, specifying the number of reference states nref. Lines 2 to nref+1 give the reference orbital configurations.

Prtcri Parameter Type: Float

Specifies the threshold for printing output CSFs. * Default value: 0.05

Ethres Parameter Type: Float

Specifies the energy (eigenvalue) convergence threshold for H0 matrix diagonalization. * Default value: 1.D-8

Conv Parameter Type: Float Array

Specifies the convergence thresholds for H matrix iterative diagonalization in MRCI calculation. Input three floating-point numbers, controlling the energy, wave function, and residual vector convergence thresholds for MRCI iteration respectively. * Default values: 1.D-8, 1.D-6, 1.D-8

Maxiter Parameter Type: Integer

Specifies the maximum number of iterations for H0 or H matrix iterative diagonalization. * Default value: 200

Maxbloch Parameter Type: Integer

Specifies the maximum number of iterations for solving the BLOCH equation required for iterative CASPT2, SDSPT2f, and SDSCIf calculations. * Default value: 5

InitHDav Parameter Type: Integer

Specifies the method for setting initial vectors during MRCI iterative diagonalization: * Default value: 1 Uses the excited configurations most strongly coupled to the lowest-energy configuration functions (CSFs) as the initial vector. * Optional value: 2 Selects initial vectors according to the energy level order from low to high based on CI Hamiltonian diagonal elements. * Optional value: 3 Uses the reference wave function as the initial vector for Davidson diagonalization.

InitH0Dav Parameter Type: Integer

Specifies the method for setting initial vectors during H0 iterative diagonalization: * Default value: 2 Selects initial vectors according to the energy level order from low to high based on CI Hamiltonian diagonal elements. * Optional value: 1 Uses the excited configurations most strongly coupled to the lowest-energy configuration functions (CSFs) as the initial vector.

DoProp Parameter Type: Boolean

Specifies calculation of one-electron (transition) reduced density matrix and related properties, such as (transition) dipole moment, etc. * Prints natural orbital occupation numbers. * Provides the natural orbital file $BDF_WORKDIR/$BDFTASK.xianciorb. * Provides the orbital image file $BDF_WORKDIR/$BDFTASK.xianci.molden.

DCRI Parameter Type: Float

Specifies the orthogonalization threshold for internally contracted configuration functions. * Default value: 1.D-12

EPCC Parameter Type: Float

Sets the threshold for ignored contracted configuration coupling coefficients. Larger values improve icMRCI computational efficiency but reduce accuracy. * Default value: 1.D-20

Qfix Parameter Type: Float

Specifies the configurations that need to be optimized during iCMRCI iterative diagonalization. Only excited configurations with coefficients greater than this threshold in the first-order wave function obtained from SDSPT2(f) calculation need to be optimized. * Default value: 0.0

Ncisave Parameter Type: Integer

Specifies the dimension of the H0 matrix that can be completely diagonalized. For computers with larger memory space, this value can be increased to reduce repeated calculation of matrix elements. * Default value: 50000

NoSaveact Parameter Type: Boolean

Specifies not storing coupling coefficients in memory during H0 iterative diagonalization calculation, avoiding the problem of insufficient memory space that may occur when calculating large active spaces.

Setlpact Parameter Type: Integer

Specifies the initial size of the array used to store all coupling coefficients during H0 iterative diagonalization calculation. Larger initial input means fewer dynamic array expansion operations, higher computational efficiency, but may cause insufficient memory space when calculating large active spaces. * Default value: 100000000

Setblkact Parameter Type: Integer

Specifies the initial size of the array used to store coupling coefficient classes during H0 iterative diagonalization calculation. Larger initial input means fewer dynamic array expansion operations, higher computational efficiency, but may cause insufficient memory space when calculating large active spaces. * Default value: 10000000

Nosavelp Parameter Type: Boolean

Specifies that (internally contracted) coupling coefficients are not stored during icMRCI calculation, which reduces computational efficiency but saves hard disk storage space when calculating large active spaces.

Setloop Parameter Type: Integer

Specifies the initial size of the array used to store one class of coupling coefficients during MRCI iterative diagonalization calculation. Larger initial input means fewer dynamic array expansion operations, higher computational efficiency, but may cause insufficient memory space when calculating large active spaces. * Default value: 10000000

Setblk Parameter Type: Integer

Specifies the initial size of the array used to store coupling coefficient classes during MRCI iterative diagonalization calculation. Larger initial input means fewer dynamic array expansion operations, higher computational efficiency, but may cause insufficient memory space when calculating large active spaces. * Default value: 10000000

Internally Contracted CI Method Selection Parameters

FCCI Parameter Type: Boolean

Specifies performing fully internally contracted MRCI (icMRCI) calculation on the excited state space (Q), but the reference state space (P) is not contracted, and perturbation calculation will contract the reference state space. * This method is used by default.

XSDSCI Parameter Type: Boolean

Specifies performing FCCI calculation. * The initial guess for excited wave function coefficients comes from SDSPT2 calculation (Dyall Hamiltonian as H0). When calculating low-lying excited states, the Intruder State problem can be completely avoided.

VSD Parameter Type: Boolean

Virtual Space Decomposition (VSD) projects large basis set virtual molecular orbitals (MOs) onto a small basis set space, uses singular value decomposition (SVD) to screen out the strongly correlated space, thereby dividing high-dimensional virtual orbital space into subspaces with clear physical meaning. This method, combined with XSDSCI, can significantly improve the efficiency of multi-reference calculations. * See example test126.inp

NoVDVP Parameter Type: Boolean

Specifies skipping the CI Hamiltonian matrix element calculation between Q subspace bar{V}D and bar{V}P and the zero-order wave function.

SDSCI Parameter Type: Boolean

Specifies performing SDSCI calculation. * The excited wave function coefficients come from SDSPT2 calculation (Dyall Hamiltonian as H0). When calculating low-lying excited states, the Intruder State problem can be completely avoided. * Recommended for use; this is currently the MRCI method with the smallest computational cost in the xianci module.

SDSCIf Parameter Type: Boolean

Specifies performing SDSCIf calculation. * The excited wave function coefficients come from SDSPT2f calculation (generalized Fock operator as H0). The Intruder State problem may occur.

UCCI Parameter Type: Boolean

Specifies performing uncontracted MRCISD (ucMRCI) calculation.

NICI Parameter Type: Boolean

Specifies performing icMRCI calculation without contracting all internal space excitations.

CWCI Parameter Type: Boolean

Specifies performing Celani-Werner contracted icMRCI calculation.

WKCI Parameter Type: Boolean

Specifies performing Werner-knowles contracted icMRCI calculation.

SDCI Parameter Type: Boolean

Specifies performing SDCI-mode icMRCI calculation. The degree of contraction and accuracy is between CWCI and WKCI.

Multi-Reference Perturbation Calculation Related Parameters

CASPT2 Parameter Type: Boolean

Specifies performing MS-CASPT2 (Multi-State CASPT2), constructing its own Q space for each reference state.

RMSCASPT2 Parameter Type: Boolean

Specifies performing RMS-CASPT2 (Rotated Multi-State CASPT2), constructing its own Q space for each reference state.

XMSCASPT2 Parameter Type: Boolean

Specifies performing RMS-CASPT2 (Extended Multi-State CASPT2), constructing its own Q space for each reference state.

XDWCASPT2 Parameter Type: Boolean

Specifies performing XDW-CASPT2 (Extended Dynamic Weight Multi-State CASPT2), constructing its own Q space for each reference state.

XDWPara Parameter Type: Float

Specifies the parameter required for XDW-CASPT2 (Extended Dynamic Weight Multi-State CASPT2). * Default value: 50 * 0: XMS-CASPT2; Infinity: RMS-CASPT2.

SDSPT2f Parameter Type: Boolean

Specifies performing SDSPT2f calculation. * The excited wave function coefficients use the perturbation method (generalized Fock operator as H0). The Intruder State problem may occur.

Rshift Parameter Type: Float

Specifies the Real Level Shift parameter required to weaken the Intruder State problem in CASPT2 and other methods based on the generalized Fock operator as H0. ** Default value: 0.0 * Recommended value: 0.3

Ishift Parameter Type: Float

Specifies the Imaginary Level Shift parameter required to weaken the Intruder State problem in CASPT2 and other methods based on the generalized Fock operator as H0. * Default value: 0.0 * Recommended value: 0.1

NEVPT2 Parameter Type: Boolean

Specifies performing MS-NEVPT2 (Multi-State NEVPT2), constructing its own Q space for each reference state.

SDSPT2 Parameter Type: Boolean

Specifies performing SDSPT2 calculation. * The excited wave function coefficients use the perturbation method (Dyall Hamiltonian as H0). When calculating low-lying excited states, the Intruder State problem can be completely avoided.

DVRLS Parameter Type: Float

Specifies the Real Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{D}V) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.3

VDRLS Parameter Type: Float

Specifies the Real Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{V}D) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.3

DDRLS Parameter Type: Float

Specifies the Real Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{D}D) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.3

DVILS Parameter Type: Float

Specifies the Imaginary Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{D}V) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.1 * This parameter is not recommended for use.

VDILS Parameter Type: Float

Specifies the Imaginary Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{V}D) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.1 * This parameter is not recommended for use.

DDILS Parameter Type: Float

Specifies the Imaginary Level Shift parameter required to weaken the Intruder State problem in Q subspace (bar{D}D) for methods based on Dyall Hamiltonian as H0 such as NEVPT2 when calculating high-lying excited states. * Default value: 0.0 * Recommended value: 0.1 * This parameter is not recommended for use.

SAFock Parameter Type: Boolean

Specifies using state-averaged (SA) molecular orbital energies and integrals in NEVPT2, SDSPT2, and SDSCI calculations. * Default value: .true.

SDFock Parameter Type: Boolean

Specifies using state-specific (SS) molecular orbital energies and state-averaged (SA) molecular orbital integrals in NEVPT2, SDSPT2, and SDSCI calculations. * Default value: .false.

SSFock Parameter Type: Boolean

Specifies using state-specific (SS) molecular orbital energies and integrals in NEVPT2 calculation. * Default value: .false.

Nolan Parameter Type: Boolean

Specifies not calculating the Secondary states required for SDSPT2(f) and SDSCI(f). * This keyword is used by default.

  • For SDSPT2(f) and SDSCI(f) calculations with large active spaces, the keyword “Nolan” can be used to cancel the computationally expensive process of constructing Ps wave functions. The effective Hamiltonian matrix constructed by this method has a dimension of 2N, and in general, the calculation accuracy decreases slightly. However, it should be emphasized that when electronic states intersect during the calculation process (e.g., conical intersection points), the calculation accuracy may decrease to some extent.

Dylan Parameter Type: Boolean

Specifies truncated approximation calculation of Secondary states required for SDSPT2(f) and SDSCI(f).

  • For SDSPT2(f) and SDSCI(f) calculations with large active spaces, the keyword “Dylan” can be used to truncate the contribution of higher-energy Ps functions to Secondary states. The effective Hamiltonian matrix constructed by this method has a dimension of 3N. In general, calculation accuracy can be maintained, but the number of Ps functions selected varies for different molecular configurations.

Dolan Parameter Type: Boolean

Specifies using the Lanczos method to calculate Secondary states required for SDSPT2(f) and SDSCI(f).

  • For SDSPT2(f) and SDSCI(f) calculations with large active spaces, the computational cost of calculating Secondary states using the keyword “Dolan” is very large. The effective Hamiltonian matrix constructed by this method has a dimension of 3N. In general, calculation accuracy can be maintained, but the large computational cost makes this scheme not recommended.

DEPENST Parameter Type: Boolean

Specifies using state-specific Fock diagonal elements in the Dyall Hamiltonian. Default: state-averaged Fock matrix diagonal elements.

MR-NEVPT2 Parameter Type: Boolean

Specifies performing Multi-reference NEVPT2 calculation. * Constructs a globally orthogonal configuration space for all reference states.

NEVPT3 Parameter Type: Boolean

Specifies performing SS-NEVPT3 calculation. * The Q space is independent for each state.

CBMPRT2 Parameter Type: Boolean

Specifies performing CBMRPT2 calculation.

MR-CBMRPT2 Parameter Type: Boolean

Specifies performing MR-CBMPRT2 calculation. * Constructs a globally orthogonal configuration space for all reference states.

CBMRPT3 Parameter Type: Boolean

Specifies performing CBMRPT3 calculation. * The Q space is independent for each state.

Test Cases

test069.inp

Attention

The energies of SDSPT2(f), SDSCI(f), XSDSCI, and icMRCI take the results with +Q1 (Pople Correction). The energy of ucMRCI takes the result with +Q3 (Davidson Correction).

$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
pmin
1.d-3
qmindv
1.d-5
qminvd
1.d-5
epic
1.d-5
CASPT2 # MS-CASPT2 with generalized Fock as H0
DBLOCH # the threshold of solving BLOCH equation
1.d-4  # default : 1.d-4
RLS    # Real Level Shift
0.0    # default : 0.0
#ILS    # Imaginary Level Shift
#0.0    # default : 0.0
$end

Output :

CASPT2 calculation is completed.

NROOT        MC ENERGY       SS-CASPT2 ENERGY    MS-CASPT2 ENERGY    SS-CASPT3 ENERGY    MS-CASPT3 ENERGY
  1       -154.98370235       -155.47704723       -155.47704723          0.00000000          0.00000000
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
nevpt2
$end

Output:

NEVPT2 calculation is completed.

NROOT        MC ENERGY       SS-NEVPT2 ENERGY    MS-NEVPT2 ENERGY    SS-NEVPT3 ENERGY    MS-NEVPT3 ENERGY
  1       -154.98370416       -155.47772092       -155.47772092          0.00000000          0.00000000
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
sdspt2f
dbloch
1.d-4
rls
0.0
$end

Output:

MRPT2 calculation is completed.

NROOT   MC ENE      SS-CASPT2 ENE   MS-CASPT2 ENE    SDSPT2 ENE  SDSPT2+Q1 ENE  SDSPT2+Q2 ENE   SDSPT2+Q3 ENE   DAVCOEF
  1  -154.98370416  -155.47702635   -155.47702635 -155.41225671  -155.47144162  -155.47211363  -155.46852939   0.883932
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
sdspt2
$end

Output:

MRPT2 calculation is completed.

NROOT   MC ENE     SS-NEVPT2 ENE  MS-NEVPT2 ENE  SDSPT2 ENE    SDSPT2+Q1 ENE  SDSPT2+Q2 ENE   SDSPT2+Q3 ENE   DAVCOEF
  1  -154.98370416 -155.47772092  -155.47772092  -155.41222583 -155.47205111  -155.47273880   -155.46903845   0.882941
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
sdscif
$end

Output:

MRPT2 calculation is completed.

NROOT   MC ENE    SS-CASPT2 ENE  MS-CASPT2 ENE  SDSCI  ENE    SDSCI+Q1  ENE  SDSCI+Q2  ENE   SDSCI+Q3  ENE   DAVCOEF
  1 -154.98370416 -155.47702635  -155.47702635  -155.43865322 -155.51060490  -155.51155875   -155.50597757   0.871094
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
sdsci
$end

Output:

MRPT2 calculation is completed.

NROOT   MC ENE     SS-NEVPT2 ENE  MS-NEVPT2 ENE  SDSCI  ENE    SDSCI+Q1  ENE   SDSCI+Q2  ENE   SDSCI+Q3  ENE   DAVCOEF
  1  -154.98370416 -155.47772092  -155.47772092  -155.43734298 -155.50941634   -155.51037685   -155.50474252   0.870644
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
xsdsci
ncisave
10
$end

Output:

Roots of Heff are calculated are listed below:

                ENE             ENE + Pople       ENE + App Pople       ENE + DAV           ENE + MEISS
root   1   -155.44999113       -155.52660992       -155.52767146       -155.52133469       -155.51198622
$xianci
core
2 0 0 2
nroots
1
spin
1
symmetry
1
$end

Output:
Roots of Heff are calculated are listed below:
                  ENE           ENE + Pople       ENE + App Pople       ENE + DAV           ENE + MEISS
root   1    -155.45099589       -155.52816454       -155.52923990       -155.52280494       -155.51339548

test080.inp

test095.inp

test126.inp

test131.inp

test139.inp

test148.inp

Graphical Unitary Group Approach - DRT Module

The DRT module is used in conjunction with the MRCI module to generate the Distinct Row Table (DRT) based on the Hole-particle symmetry based Graphical Unitary Group Approach (HP-GUGA) method. It is used for computing uncontracted Multireference Configuration Interaction with Single and Double excitations (MRCISD).

Basic Control Parameters

Title Parameter Type: String

Input title; does not control the calculation, used only to label the calculation task.

Spin Parameter Type: Integer

Specifies the spin multiplicity of the electronic state to be calculated, value is 2S+1.

Symmetry Parameter Type: Integer

Specifies the symmetry of the electronic state to be calculated, i.e., the irreducible representation of the electronic state.

Electron Parameter Type: Integer

Specifies the total number of electrons for CI calculation. Does not include electrons on orbitals frozen (Frozen) in traint.

Nactel Parameter Type: Integer

Specifies the number of electrons in the active space for MRCI calculation.

Inactive Parameter Type: Integer Array

Specifies the number of doubly occupied orbitals for each irreducible representation in MRCI calculation.

Active Parameter Type: Integer Array

Specifies the number of active orbitals for each irreducible representation in MRCI calculation.

Reference Parameter Type: Integer Array

Specifies the reference states for MRCI calculation.

Ciall Parameter Type: Integer Array

Generates reference states using CAS method.

Multireference Configuration Interaction - MRCI Module

The MRCI module is used in conjunction with the DRT module to perform uncontracted MRCI calculations.

Basic Control Parameters

Nrroots Parameter Type: Integer

Specifies the number of roots for MRCI calculation.

PrintThresh Parameter Type: Integer

Default value: 0.05

Specifies the threshold for printing output CSFs.

Convergence Parameter Type: Float Array

Default values: 1.D-8, 1.D-6, 1.D-8

Specifies the convergence thresholds for MRCI calculation. Input three floating-point numbers, controlling the energy, wave function, and residual vector convergence thresholds for MRCI iteration respectively.

Maxiter Parameter Type: Integer

Specifies the maximum number of MRCI calculation iterations.

Cipro Parameter Type: Integer

Specifies calculation of the one-electron reduced density matrix and related properties, such as dipole moment, etc.

Vibrational general mean field configuration interaction method - VGMFCI module

Vgmfci perform vibrational general mean field calculations for diatom molecule. The non-adabatic calculate is performed and nuclear wave function is expanded by eigen-fucntion of Kratzer po tential.

Emethod Parameter Type: String

Specify electron structure calculation method. Supported methods are SCF, MCSCF and MRCI. For MCSCF, molecular orbitals are not optimized in MCSCF level. However, the CAS-CI (complete active space CI) is performed as the full CI calculation.

Nstate Parameter Type: integer

Number of states will be printed and analyzed.

$COMPASS
Title
  H2 Molecule. vgmfci example
Basis
 cc-pvdz
Geometry
 H 0.000  0.000    0.70018162
 H 0.000  0.000   -0.70018162
 X 0.000  0.000    0.80018162
 X 0.000  0.000   -0.80018162
 X 0.000  0.000    0.60018162
 X 0.000  0.000   -0.60018162
End geometry
Check
Unit
 Bohr
nosymm
Kratzer
# maxnu maxj ngausslag re         de
 10   0   50 1.40036324  0.365148
$END

$XUANYUAN
#masspol
$END

$vgmfci
emethod
 mcscf  # scf mrci
maxiter
 1
Nstate
 20
$end

$SCF
RHF
checklinear
tollin
 1.d-6
$END

$MCSCF
close
 0
actele
 2
spin
 1
roots
 1 40
CASCI
mcvgmfci
#diagcimat
$END