Options

Options control the behavior of various calculations in ElemCo.jl. They are organized into categories such as wf (wavefunction), scf (self-consistent field), cc (coupled cluster), etc.

Setting Options

The recommended way to set options is using local options within calculation macros:

@cc ccsd begin
  @set wf charge=-1 ms2=1
  @set cc maxit=100
end

This ensures options are automatically restored after the calculation. See the Calculations page for more details.

Options can also be set globally using the @set macro:

@set cc maxit=100 thr=1.e-12

Options Structure

ElemCo.ECInfos.OptionsType

Options for ElemCo.jl.

  • wf::ElemCo.ECInfos.WfOptions: Wavefunction options (WfOptions).

  • scf::ElemCo.ECInfos.ScfOptions: SCF options (ScfOptions).

  • int::ElemCo.ECInfos.IntOptions: Integral options (IntOptions).

  • cc::ElemCo.ECInfos.CcOptions: Coupled-Cluster options (CcOptions).

  • eom::ElemCo.ECInfos.EomOptions: EOM options (EomOptions).

  • fci::ElemCo.ECInfos.FCIOptions: FCI options (FCIOptions).

  • ciphi::ElemCo.ECInfos.CIPHIOptions: CIPHI options (CIPHIOptions).

  • dmrg::ElemCo.ECInfos.DmrgOptions: DMRG options (DmrgOptions).

  • cholesky::ElemCo.ECInfos.CholeskyOptions: Cholesky options (CholeskyOptions).

  • laplace::ElemCo.ECInfos.LaplaceOptions: Laplace options (LaplaceOptions).

  • diis::ElemCo.ECInfos.DiisOptions: DIIS options (DiisOptions).

  • davidson::ElemCo.ECInfos.DavidsonOptions: Davidson options (DavidsonOptions).

  • print::ElemCo.ECInfos.PrintOptions: Print options (PrintOptions).

  • loc::ElemCo.ECInfos.LocOptions: Localization options (LocOptions).

  • region::ElemCo.ECInfos.RegionOptions: Region selection options (RegionOptions).

  • mem::ElemCo.ECInfos.MemoryOptions: Memory-management options (MemoryOptions).

source
ElemCo.ECInfos.CIPHIOptionsType

Option for CIΦ (CIPHI) calculations - Selected CI via Perturbation, Heat-Bath and Iterations.

  • target_selection::Int64: ⟨1_000_000⟩ Target (i.e., maximum) number of determinants to select

  • epsilon::Float64: ⟨3e-4⟩ Selection threshold

  • epsilon_h::Float64: ⟨epsilon/10⟩ CIPHI selection threshold. Note that a smaller value improves also the quality of the PT2 correction.

  • epsilon_c::Float64: ⟨epsilon_h⟩ instantaneous PT selection threshold.

  • epsilon_p::Float64: ⟨epsilon⟩ CIPSI selection threshold

  • tol::Float64: ⟨1e-6⟩ Energy convergence threshold

  • res_tol::Float64: ⟨1e-6⟩ Convergence tolerance for residual norm

  • properties::Bool: ⟨false⟩ calculate properties such as dipole moments.

  • max_iter::Int64: ⟨50⟩ Maximum CIPHI iterations

  • shift::Float64: ⟨0.1⟩ Level shift to improve convergence

  • verbose::Bool: ⟨true⟩ Print iteration details

  • compute_pt2::Bool: ⟨true⟩ Compute PT2 perturbative correction

  • epsilon_pt2::Float64: ⟨1e-6⟩ Threshold for PT2 contributions

  • epsilon_pt2_c::Float64: ⟨epsilon_pt2/2⟩ Threshold for instantaneous PT2 contributions

  • sort4pt2::Bool: ⟨true⟩ Sort determinants by absolute value of coefficients before computing PT2 correction

  • pt2_shift::Float64: ⟨1e-10⟩ Small value added to denominators in PT2 to avoid divergences

  • use_mp2::Bool: ⟨false⟩ Use uncontracted MP2 instead of EN2

  • renorm_pt2::Bool: ⟨false⟩ Use renormalized PT2 correction: E_PT2 → E_PT2 / (1 + T2^2) with T2 being the PT2 amplitudes.

  • nstates::Int64: ⟨1⟩ Number of states to compute (default: 1 = ground state only)

  • nsteps::Int64: ⟨2⟩ Number of steps in the iterative CIPHI selection (if > 1, the selection process is repeated after convergence)

  • use_small_space_guess::Bool: ⟨true⟩ Use small-space Hamiltonian for initial guess

  • small_space_size::Int64: ⟨0⟩ Size of small space (0 = auto: max(100, target÷10, 5*n_roots))

  • small_space_method::Symbol: ⟨:hybrid⟩ Selection method: :hybrid (energy + excitation)

  • print_level::Int64: ⟨1⟩ Level of printed output (0=none, 1=some, 2=detailed)

  • pt2_only::Bool: ⟨false⟩ Skip variational CIPHI iterations and only compute PT2 correction (use with restart)

  • thr_negligible::Float64: ⟨1e-10⟩ Threshold for neglecting small Hamiltonian (etc) elements

source
ElemCo.ECInfos.CcOptionsType

Options for Coupled-Cluster calculation.

  • thr::Float64: ⟨1.e-10⟩ convergence threshold.

  • conven::Float64: ⟨0.1⟩ energy convergence factor. The energy convergence threshold is sqrt(thr) * conven.

  • maxit::Int64: ⟨50⟩ maximum number of iterations.

  • shifts::Float64: ⟨0.15⟩ level shift for singles.

  • shiftp::Float64: ⟨0.2⟩ level shift for doubles.

  • shiftt::Float64: ⟨0.2⟩ level shift for triples.

  • orbdamp::Float64: ⟨1.0⟩ damping factor for the orbital-rotation step in orbital-optimized QV methods (OQV-CCD/DCD). The orbital update is scaled by orbdamp; 1.0 is the undamped step. Values < 1 (e.g. 0.15) stabilise the coupled orbital+amplitude iteration near strong correlation / instabilities (stretched bonds), at the cost of slower orbital convergence. Does not bias the solution: the fixed point (gradient = 0) is unchanged by the damping.

  • properties::Bool: ⟨false⟩ calculate properties.

  • ampsvdtol::Float64: ⟨1.e-5⟩ amplitude decomposition threshold.

  • ampsvdfac::Float64: ⟨1.e-2⟩ tightening amplitude decomposition factor (for the two-step decomposition).

  • use_kext::Bool: ⟨true⟩ use kext for doubles residual.

  • calc_d_vvvv::Bool: ⟨false⟩ calculate dressed <vv|vv>.

  • calc_d_vvvo::Bool: ⟨false⟩ calculate dressed <vv|vo>.

  • calc_d_vovv::Bool: ⟨false⟩ calculate dressed <vo|vv>.

  • calc_d_vvoo::Bool: ⟨false⟩ calculate dressed <vv|oo>.

  • fock_diag_thr::Float64: ⟨1.e-6⟩ threshold for checking Fock matrix diagonality in (T). If negative, no check is performed.

  • usedf::Bool: ⟨true⟩ use density fitting in SVD-DC-CCSDT instead of the integral decomposition.

  • usecholesky::Bool: ⟨true⟩ use Cholesky decomposition in SVD-DC-CCSDT instead of SVD in the integral decomposition.

  • calc_t3_for_decomposition::Bool: ⟨false⟩ calculate (T) for decomposition.

  • skip_pert_t::Bool: ⟨false⟩ skip (T) calculation in SVD-DC-CCSDT.

  • project_t3iii::Bool: ⟨true⟩ project out the T^iii contribution from the density matrix in decomposition in SVD-DC-CCSDT.

  • project_voXL::Bool: ⟨false⟩ calculated $V_{aX}^{iL}$ in SVD-DC-CCSDT using a projection to the X space as $V_{XZ}^{L} U^{iZ}_{a}$. This is an additional approximation, which reduces the scaling of the most expensive steps and is useful for large systems.

  • use_dense_decomposition::Bool: ⟨false⟩ use dense SVD for the amplitude decomposition in SVD-DC-CCSDT instead of LLAMA low-rank approximation. This is useful for small systems, but becomes unfeasible for large systems.

  • space4voXL::Symbol: ⟨:combined⟩ type of space for project_voXL. Possible values are :combined, :symcombined, :triples, :full.

  • deco_ishiftp::Float64: ⟨0.0⟩ imaginary shift for denominator in doubles decomposition.

  • deco_ishiftt::Float64: ⟨0.0⟩ imaginary shift for denominator in triples decomposition.

  • use_projx::Bool: ⟨false⟩ use a projected exchange for contravariant doubles amplitudes in SVD-DCSD, $\tilde T_{XY} = U^{†a}_{iX} U^{†b}_{jY} \tilde T^{ij}_{ab}$.

  • use_full_t2::Bool: ⟨false⟩ use full doubles amplitudes in SVD-DCSD. The decomposition is used only for $N^6$ scaling terms.

  • project_vovo_t2::Int64: ⟨2⟩ what to project in $v_{ak}^{ci} T^{kj}_{cb}$ in SVD-DCSD: 0: both, 1: amplitudes, 2: residual, 3: robust fit.

  • decompose_using_mp2::Bool: ⟨false⟩ use MP2 amplitudes for decomposition in SVD-DCSD. If false, one iteration of SVD-DCD is used for decomposition instead.

  • decompose_full_doubles::Bool: ⟨false⟩ decompose full doubles amplitudes in SVD-DCSD (slow).

  • start::String: ⟨"cc_amplitudes"⟩ main part of filename for start amplitudes. For example, the singles amplitudes are read from start*"_1".

  • save::String: ⟨"cc_amplitudes"⟩ main part of filename to save amplitudes. For example, the singles amplitudes are saved to save*"_1".

  • start_lm::String: ⟨"cc_multipliers"⟩ main part of filename for start Lagrange multipliers. For example, the singles Lagrange multipliers are read from start_lm*"_1".

  • save_lm::String: ⟨"cc_multipliers"⟩ main part of filename to save Lagrange multipliers. For example, the singles Lagrange multipliers are saved to save_lm*"_1".

  • nomp2::Int64: ⟨0⟩ Don't use MP2 amplitudes as starting guess for the CC amplitudes.

  • mp2_ssfac::Float64: ⟨0.33⟩ Factor for same-spin component in SCS-MP2.

  • mp2_osfac::Float64: ⟨1.2⟩ Factor for opposite-spin component in SCS-MP2.

  • mp2_ofac::Float64: ⟨0.0⟩ Factor for open-shell component in SCS-MP2.

  • mp2_sosfac::Float64: ⟨1.3⟩ Factor for opposite-spin component in SOS-MP2.

  • ccsd_ssfac::Float64: ⟨1.13⟩ Factor for same-spin component in SCS-CCSD.

  • ccsd_osfac::Float64: ⟨1.27⟩ Factor for opposite-spin component in SCS-CCSD.

  • ccsd_ofac::Float64: ⟨0.0⟩ Factor for open-shell component in SCS-CCSD.

  • dcsd_ssfac::Float64: ⟨1.15⟩ Factor for same-spin component in SCS-DCSD.

  • dcsd_osfac::Float64: ⟨1.05⟩ Factor for opposite-spin component in SCS-DCSD.

  • dcsd_ofac::Float64: ⟨0.15⟩ Factor for open-shell component in SCS-DCSD.

  • ignore_error::Bool: ⟨false⟩ ignore various errors in sanity checks.

  • ampsvd_pivotol_mode::Symbol: ⟨:maxdim⟩ pivot tolerance mode for LLAMA decomposition:

    • :adaptive use LLAMA's internal adaptive tol/sqrt(m_eff) pivot tolerance
    • :maxdim use tol/sqrt(max(m,n)) as pivot tolerance (more robust for difficult cases, e.g., ghost atoms)

    If ampsvd_pivotol > 0, use that explicit value instead (overrides mode).

  • ampsvd_pivotol::Float64: ⟨0.0⟩ explicit pivot tolerance for LLAMA. If > 0, overrides ampsvd_pivotol_mode.

  • localize::Bool: ⟨true⟩ localize orbitals (IBO for occupied, orthogonal PAOs for virtual) before amplitude decomposition in SVD-DC methods. The localization rotation is applied only to the matrices entering svd_decompose, and the resulting U vectors are transformed back to the canonical basis.

source
ElemCo.ECInfos.CholeskyOptionsType

Options for Cholesky decomposition.

  • thred::Float64: ⟨1.e-6⟩ threshold for elimination of redundancies in the auxiliary basis.

  • thr::Float64: ⟨1.e-5⟩ threshold for integral decomposition.

  • sigma::Float64: ⟨0.01⟩ span factor for two-step Cholesky batch qualification.

  • usesvd::Bool: ⟨false⟩ use SVD (real) / Takagi (complex) instead of Cholesky for the J matrix in step II.

source
ElemCo.ECInfos.DavidsonOptionsType

Options for Davidson.

  • maxdav::Int64: ⟨10⟩ maximum number of Davidson vectors per state.

  • use_overlap::Bool: ⟨true⟩ use overlap in hermitian Davidson.

source
ElemCo.ECInfos.DiisOptionsType

Options for DIIS.

  • maxdiis::Int64: ⟨6⟩ maximum number of DIIS vectors.

  • resthr::Float64: ⟨10.0⟩ DIIS residual threshold.

  • crop::Bool: ⟨false⟩ CROP-DIIS (see JCTC 11, 1518 (2015)). Usually the DIIS dimension maxcrop=3 is sufficient.

  • maxcrop::Int64: ⟨3⟩ DIIS dimension for CROP-DIIS.

source
ElemCo.ECInfos.DmrgOptionsType

Options for DMRG calculation.

  • nsweeps::Int64: ⟨10⟩ number of sweeps.

  • maxdim::Vector{Int64}: ⟨[100, 200]⟩ maximum size for the bond dimension.

  • cutoff::Float64: ⟨1e-6⟩ cutoff for the singular value decomposition.

  • noise::Vector{Float64}: ⟨[1e-6, 1e-7, 1e-8, 0.0]⟩ strength of the noise term used to aid convergence.

source
ElemCo.ECInfos.EomOptionsType

Options for excited states calculation.

  • thr::Float64: ⟨1.e-6⟩ convergence threshold.

  • nstates::Int64: ⟨1⟩ number of states to calculate.

  • maxit::Int64: ⟨50⟩ maximum number of iterations.

  • shift::Float64: ⟨0.0⟩ level shift for the Davidson algorithm.

  • start::String: ⟨"eigenvectors"⟩ main part of filename for start eigenvectors. For example, the singles eigenvectors for state 2 are read from start*"_1^2".

  • save::String: ⟨"eigenvectors"⟩ main part of filename to save eigenvectors. For example, the singles eigenvectors for state 2 are saved to save*"_1^2".

  • ampsvdtol::Float64: ⟨1.e-5⟩ amplitude decomposition threshold.

  • svd_space_option::Int64: ⟨6⟩ Choice how excited state SVD basis is generated. Default is decomposition of full U2.

source
ElemCo.ECInfos.FCIOptionsType

Option for FCI calculations.

  • max_iter::Int64: ⟨50⟩ Maximum number of iterations

  • shift::Float64: ⟨0.1⟩ Level shift to improve convergence

  • conv_tol::Float64: ⟨1e-8⟩ Convergence tolerance for energy

  • res_tol::Float64: ⟨1e-6⟩ Convergence tolerance for residual norm

  • properties::Bool: ⟨false⟩ calculate properties such as dipole moments.

  • nstates::Int64: ⟨1⟩ Number of states to compute

  • n_guess::Int64: ⟨2⟩ Number of guess vectors to use

  • subspace_size::Int64: ⟨10⟩ Maximum subspace size for Davidson diagonalization

  • compute_rdms::Bool: ⟨true⟩ Compute 1-RDMs after convergence

  • compute_2rdm::Bool: ⟨false⟩ Compute 2-RDM after convergence

  • jacobi_davidson::Bool: ⟨true⟩ Use projected Jacobi-Davidson correction (prevents linear dependency)

  • max_pspace_size::Int64: ⟨1000⟩ Maximum P-space size (typically 100-1000)

  • pspace_selection_method::Symbol: ⟨:hybrid⟩ Selection method for P-space generation (:hybrid, :excitation, :energy, :ciphi)

  • max_pspace_excitation::Int64: ⟨4⟩ Maximum excitation level from HF reference (0=HF, 1=S, 2=SD, etc.)

  • pspace_energy_threshold::Float64: ⟨5.0⟩ Energy cutoff for determinant inclusion

  • pspace_ciphi_epsilon::Float64: ⟨1e-3⟩ CIPHI selection threshold (epsilon_h) for P-space generation

  • print_level::Int64: ⟨1⟩ Level of printed output (0=none, 1=some, 2=detailed)

  • thr_negligible::Float64: ⟨1e-12⟩ Threshold for neglecting small Hamiltonian (etc) elements

source
ElemCo.ECInfos.IntOptionsType

Options for integral calculation.

  • df::Bool: ⟨true⟩ use density-fitted integrals.

  • ao_direct::Bool: ⟨true⟩ for exact (non-DF) AO integrals: run closed-shell CCSD/DCSD AO-direct (contract the AO integrals on the fly, no MO integral dump; frozen core is folded into an effective 1-electron Hamiltonian). Set to false to instead derive a transient MO integral dump from the AO integrals (as for CCSDT/FCI). No effect on DF integrals.

  • fcidump::String: ⟨""⟩ store integrals in FCIDump format.

  • cartesian::Bool: ⟨false⟩ use Cartesian subshells instead of Spherical.

  • target_batch_length::Int64: ⟨1000⟩ target batch length for the integral transformation.

  • screen::Float64: ⟨1e-12⟩ Cauchy–Schwarz prescreening threshold for the exact AO integrals: a shell quartet whose bound sqrt((pr|pr))·sqrt((qs|qs)) stays below this is skipped (and stored as zero). Set to 0 to disable screening and compute every quartet.

  • use_fallback_basis::Bool: ⟨false⟩ use fallback basis sets (in case of missing basis sets).

  • check_fit_basis::Bool: ⟨true⟩ sanity check of the fit basis (i.e., that it's not an AO basis)

  • split_ashells::Bool: ⟨true⟩ split independent angular shells (important for efficiency).

source
ElemCo.ECInfos.LaplaceOptionsType

Options for Laplace quadrature.

  • npoints::Int64: ⟨8⟩ number of Laplace quadrature points.

  • algo::Symbol: ⟨:minimax⟩ algorithm for Laplace quadrature points. (:minimax or :simplex)

source
ElemCo.ECInfos.LocOptionsType

Options for orbital localization.

  • virtual::Bool: ⟨true⟩ localize virtual orbitals using orthogonal PAOs (OPAO) in addition to occupied.

  • exponent::Int64: ⟨0⟩ Localization exponent: 0 for automatic (4 for IBO, 2 for PM), or set explicitly.

  • method::String: ⟨"ibo"⟩ Localization method: "ibo" (Intrinsic Bond Orbitals), "pm" (Pipek-Mezey with Mulliken charges), or "boys" (Foster-Boys).

  • opaofac::Float64: ⟨3⟩ Factor multiplying the AO basis redundancy threshold scf.redthr to form the relative eigenvalue threshold for detecting redundant PAOs in the orthogonalized-PAO (OPAO) construction (@localize, @region). Eigenvectors of the PAO overlap with eigenvalue below opaofac * scf.redthr * λmax are treated as redundant and the corresponding (least independent) PAO is dropped. Larger values prune more aggressively.

  • minao::String: ⟨""⟩ Minimal basis set for IAO construction. If empty, use "minao" type from basis Dict, or "minao" basis as fallback.

  • localize_core::Bool: ⟨false⟩ Localize core orbitals among themselves (separately from valence).

source
ElemCo.ECInfos.MemoryOptionsType
MemoryOptions

Options for memory management (used to size blocked/streaming scratch allocations so they adapt to the machine and honor an explicit user budget).

  • budget::Float64: ⟨-1.0⟩ memory budget in GB for large scratch allocations (e.g. the 4-index integral transformation). -1.0 (default) estimates the budget automatically from the node's free memory. Set explicitly (e.g. on fat nodes) to allow larger blocks and fewer passes over the integrals.

  • fraction::Float64: ⟨0.8⟩ fraction of the currently available memory (node free memory, capped by any cgroup / SLURM limit) to use when the budget is estimated automatically (budget ≤ 0).

source
ElemCo.ECInfos.PrintOptionsType

Options for printing.

  • time::Int64: ⟨2⟩ verbosity level for printing timings.

  • memory::Int64: ⟨2⟩ verbosity level for printing memory usage.

  • ncoeff::Int64: ⟨10⟩ maximum number of coefficients to print.

source
ElemCo.ECInfos.RegionOptionsType

Options for region-fragment orbital selection.

  • mode::Symbol: ⟨:inclusive⟩ occupied-selection mode for centers passed directly to @region.
    • :inclusive: treat @region(centers) as additional inclusive centers
    • :exclusive: treat @region(centers) as additional exclusive centers
  • inclusive_centers::Vector{Int64}: ⟨Int[]⟩ additional atom indices selected with the inclusive occupied-orbital rule, e.g. [1]. The orbitals with significant contributions from these centers are added to the fragment.

  • exclusive_centers::Vector{Int64}: ⟨Int[]⟩ additional atom indices selected with the exclusive occupied-orbital rule, e.g. [1, 2]. The orbitals with significant contributions exclusively from these centers are added to the fragment.

  • pi::Symbol: ⟨:none⟩ π-space selection mode.

    • :none: use the default IBO/PAO region selection
    • :occupied: select occupied π orbitals and keep PAO-defined virtuals
    • :both: select both occupied and virtual π orbitals
  • pi_electrons::Int64: ⟨-1⟩ override for the total number of π electrons used by the PiOS counting model. Use -1 to keep the automatic chemistry-based count.

  • pi_occupied::Int64: ⟨-1⟩ override for the number of occupied π orbitals to keep in restricted PiOS runs. Use -1 to keep the full automatically determined occupied π space.

  • pi_virtual::Int64: ⟨-1⟩ override for the number of virtual π orbitals to keep in restricted region.pi=:both runs. Use -1 to keep the full automatically determined virtual π space.

  • virtual::Symbol: ⟨:complement⟩ fragment virtual-space construction mode.

    • :complement: build antibonding-like virtual targets by projecting fragment IAOs into the virtual space, then augment them with support-atom OPAOs selected from accumulated fragment charge
    • :support_opao: use the support-atom OPAO construction directly
  • occ_charge_thr::Float64: ⟨0.2⟩ threshold for selecting localized occupied orbitals from the requested centers.

  • atom_charge_thr::Float64: ⟨0.2⟩ threshold for adding atoms to the PAO support of the selected fragment.

  • pao_centers::Vector{Int64}: ⟨Int[]⟩ additional atom indices whose PAOs are added to the fragment virtual space, e.g. [3]. These centers extend the automatically determined PAO support and are always included regardless of atom_charge_thr.

  • pseudo::Bool: ⟨false⟩ pseudo-canonicalize the selected fragment occupied and virtual subspaces.

source
ElemCo.ECInfos.ScfOptionsType

Options for SCF calculation.

  • thr::Float64: ⟨1.e-10⟩ convergence threshold.

  • thren::Float64: ⟨sqrt(thr)*0.1⟩ energy convergence threshold (used additionally to thr).

  • maxit::Int64: ⟨50⟩ maximum number of iterations.

  • imagtol::Float64: ⟨1.e-8⟩ tolerance for imaginary part of MO coefs (for biorthogonal).

  • redthr::Float64: ⟨1.e-8⟩ threshold for removing linearly-dependent (redundant) orbitals. Eigenvectors of the AO overlap matrix with eigenvalues below this threshold are discarded via canonical orthogonalization. This makes HF robust for redundant basis sets (e.g. Cartesian basis sets with 6 instead of 5 d functions).

  • direct::Bool: ⟨false⟩ direct calculation without storing integrals.

  • guess::Symbol: ⟨:SAD⟩ orbital guess:

    • :HCORE from core Hamiltonian
    • :SAD from atomic densities
    • :GWH not implemented yet
    • :ORB from previous orbitals stored in dump file WfOptions.dump
  • guess_pos::Symbol: ⟨:HCORE⟩ positron orbital guess. Only :HCORE is implemented.

  • bisecdamp::Float64: ⟨0.5⟩ damping factor for bisection search in augmented Hessian tuning.

  • maxit4lambda::Int64: ⟨3⟩ maximum number of iterations for searching for lambda value to get a reasonalbe guess within trust radius for MCSCF.

  • HessianType::Symbol: ⟨:SO_SCI⟩ Hessian Type for MCSCF:

    • :SO Second Order Approximation
    • :SCI Super CI
    • :SO_SCI Second Order Approximation combing Super CI
  • initVecType::Symbol: ⟨:GRADIENT_SETPLUS⟩ Initial Vectors Type for MCSCF:
    • :INHERIT from last macro/micro iterations
    • :GRADIENT_SET b0 as [1,0,0,...], b1 as gradient
    • :GRADIENT_SETPLUS b0, b1 as GRADIENT_SET, b2 as zeros but 1 at the first closed-virtual rotation parameter
  • temperature_guess::Float64: ⟨0.0⟩ Fermi-Dirac temperature for starting guess (at the moment works only for BO-HF).

  • gamaDavScale::Float64: ⟨0.1⟩ the threshold of davidson convergence residure norm scaled to norm of g the gradient, for MCSCF.

  • SO_SCI_origin::Any: ⟨true⟩ if true then use the original SO_SCI Hessian

  • trustScale::Any: ⟨0.8⟩ the trust region of sqrt(sum(x.^2)) should be [trustScale,1] * trust

  • lambdaMax::Any: ⟨1000.0⟩ the maximum number of lambda when adjusting the level shift

  • davErrorMin::Any: ⟨1e-6⟩ the minmum convergence threshold for davidson algorithm

  • iniDavMatSize::Any: ⟨200⟩ the size of initial Davidson projected matrix

  • trustShrinkScale::Any: ⟨0.7⟩ the shrink scale of trust region

  • trustExpandScale::Any: ⟨1.2⟩ the expand scale of trust region

  • enerQuotientLowerBound::Any: ⟨0.25⟩ when energy quotient is lower than this value, the trust value should be smaller

  • enerQuotientUpperBound::Any: ⟨0.75⟩ when energy quotient is higher than this value, the trust value should be larger

  • pseudo::Bool: ⟨false⟩ Generate pseudo-canonical basis instead of solving the SCF problem, i.e., build and block-diagonalize the Fock matrix without changing the Fermi level. At the moment, it works only for BO-HF.

  • minao::String: ⟨""⟩ Minimal basis set for SAD guess. If empty, use "minao" type from basis Dict, or "minao" basis as fallback.

source
ElemCo.ECInfos.WfOptionsType

Options for wavefunction/orbitals.

  • ms2::Int64: ⟨-1⟩ spin magnetic quantum number times two (2×mₛ) of the system.

  • nelec::Int64: ⟨-1⟩ number of electrons. If < 0, the number of electrons is read from the FCIDump file or guessed for the neutral system.

  • charge::Int64: ⟨0⟩ charge of the system (relative to nelec/FCIDump/neutral system!).

  • dump::String: ⟨"wf.h5"⟩ filename for wavefunction dump (stored in TREXIO format).

  • store::String: ⟨""⟩ filename to store the output wavefunction dump (stored in TREXIO format). If empty, dump will be used.

  • natorb::String: ⟨""⟩ filename to store correlated natural orbitals and occupations (stored in TREXIO format). If non-empty, the correlated 1-RDM is still written to the usual dump/store file.

  • start::String: ⟨""⟩ filename to read starting amplitudes from (TREXIO format). If empty, amplitudes are read from dump. If provided, amplitudes (and MOs/basis) are read from this file and projected to the current MO basis.

  • dump4core_only::Bool: ⟨false⟩ in a geometry-change restart of orbital-optimized methods, use the dump file for the frozen-core orbitals only and take the correlating orbitals from start. The reused orbitals in start carry the frozen core from the previous geometry; with dump4core_only=true the frozen core is instead taken from dump — a fresh HF at the current geometry — while the correlating orbitals come from start (projected and orthogonalized against the new core). Typical use: run @dfhf at the new geometry (writes dump), then @set wf start="cc.h5" dump4core_only=true (no need to set dump="").

  • npositron::Int64: ⟨0⟩ Number of positrons.

  • core::Symbol: ⟨:auto⟩ core type for frozen-core approximation:

    • :auto freeze the orbitals tagged Core in the wf dump if present, otherwise fall back to :large,
    • :none no frozen-core approximation,
    • :small semi-core orbitals correlated,
    • :large semi-core orbitals frozen.

    Setting core to anything other than :auto (or setting freeze_nocc) overrides the dump-derived core.

  • freeze_nocc::Int64: ⟨-1⟩ number of occupied (core) orbitals to freeze (overwrites core).

  • freeze_nvirt::Int64: ⟨-1⟩ number of virtual (highest) orbitals to freeze. -1 (auto) drops the orbitals tagged Deleted in the wf dump (e.g. from @region); a value ≥ 0 overrides this and freezes exactly that many highest virtuals.

  • freeze_nvirt_pos::Int64: ⟨0⟩ number of virtual (highest) positron orbitals to freeze.

  • occa::String: ⟨"-"⟩ occupied α (or closed-shell) orbitals. The occupation strings can be given as a + separated list, e.g. occa = 1+2+3 or equivalently 1-3. Additionally, the spatial symmetry of the orbitals can be specified with the syntax orb.sym, e.g. occa = "-5.1+-2.2+-4.3". Orbital indices always refer to the full MO space (including frozen core): for ElemCo-generated dumps with frozen core/deleted virtuals the list is automatically translated to the active space. (Externally-read FCIDUMP files have no frozen-orbital information, so their indices are taken as-is.)

  • occb::String: ⟨"-"⟩ occupied β orbitals. If occb::String is empty, the occupied β orbitals are the same as the occupied α orbitals (closed-shell case). Like occa, indices refer to the full MO space.

  • active::String: ⟨"-"⟩ active space. The active space is defined by the occupation string (cf. occa) or in the (#elec, #orb) format. As for occa, an orbital-list string refers to the full MO space and is translated to the active space; the (#elec, #orb) format is relative to the current (post-freeze) space.

  • ignore_error::Bool: ⟨false⟩ ignore various errors in sanity checks.

  • print_nlargest::Int64: ⟨5⟩ number of largest orbitals to print.

  • print_thr::Float64: ⟨0.1⟩ threshold for orbital coefficients to print.

source