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.
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:
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):
The mass number A is approximated from the nuclear charge Z using [72, 73]:
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:
$BDF_TMPDIR/$BDFTASK.inporb
$BDF_TMPDIR/inporb
$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:
Same number and types of atoms;
Same atom ordering;
Same point group;
Same basis set;
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
Print Parameter Type: Integer
Default: 0
Options: 0, 1
Controls SCF print level (debugging).
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 setsEnable).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, andDeltaRmsDensity. 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(orDPR),JacobiDavidson, andOlsen.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 ifAllowConvergeis set.QuasiNewtonAlgorithm, string: Specifies the quasi-Newton algorithm. Options:BFGS(default),SR1, andDFP. 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
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
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:
Calculating coupling integrals between two electronic states of the same molecule based on Hartree-Fock (HF) theory;
Computing charge transfer integrals between two molecular fragments;
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
HungaryorSVDto 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