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
endThis 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-12Options Structure
ElemCo.ECInfos.Options — Type
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).
ElemCo.ECInfos.CIPHIOptions — Type
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 selectepsilon::Float64:⟨3e-4⟩Selection thresholdepsilon_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 thresholdtol::Float64:⟨1e-6⟩Energy convergence thresholdres_tol::Float64:⟨1e-6⟩Convergence tolerance for residual normmax_iter::Int64:⟨50⟩Maximum CIPHI iterationsshift::Float64:⟨0.1⟩Level shift to improve convergenceverbose::Bool:⟨true⟩Print iteration detailscompute_pt2::Bool:⟨true⟩Compute PT2 perturbative correctionepsilon_pt2::Float64:⟨1e-6⟩Threshold for PT2 contributionsepsilon_pt2_c::Float64:⟨epsilon_pt2/2⟩Threshold for instantaneous PT2 contributionssort4pt2::Bool:⟨true⟩Sort determinants by absolute value of coefficients before computing PT2 correctionpt2_shift::Float64:⟨1e-10⟩Small value added to denominators in PT2 to avoid divergencesuse_mp2::Bool:⟨false⟩Use uncontracted MP2 instead of EN2renorm_pt2::Bool:⟨false⟩Use renormalized PT2 correction:E_PT2 → E_PT2 / (1 + T2^2)withT2being 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 guesssmall_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
ElemCo.ECInfos.CcOptions — Type
Options for Coupled-Cluster calculation.
thr::Float64:⟨1.e-10⟩convergence threshold.conven::Float64:⟨0.1⟩energy convergence factor. The energy convergence threshold issqrt(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.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.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_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 fromstart*"_1".save::String:⟨"cc_amplitudes"⟩main part of filename to save amplitudes. For example, the singles amplitudes are saved tosave*"_1".start_lm::String:⟨"cc_multipliers"⟩main part of filename for start Lagrange multipliers. For example, the singles Lagrange multipliers are read fromstart_lm*"_1".save_lm::String:⟨"cc_multipliers"⟩main part of filename to save Lagrange multipliers. For example, the singles Lagrange multipliers are saved tosave_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.keepOQVorbitals::Bool:⟨false⟩keep the orbitals after rotations over iterations of orbital optimizations in the OQV-CCD/DCD.
ElemCo.ECInfos.CholeskyOptions — Type
Options for Cholesky decomposition.
thred::Float64:⟨1.e-6⟩threshold for elimination of redundancies in the auxiliary basis.thr::Float64:⟨1.e-4⟩threshold for integral decomposition.
ElemCo.ECInfos.DavidsonOptions — Type
Options for Davidson.
maxdav::Int64:⟨10⟩maximum number of Davidson vectors per state.use_overlap::Bool:⟨true⟩use overlap in hermitian Davidson.
ElemCo.ECInfos.DiisOptions — Type
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 dimensionmaxcrop=3is sufficient.maxcrop::Int64:⟨3⟩DIIS dimension for CROP-DIIS.
ElemCo.ECInfos.DmrgOptions — Type
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.
ElemCo.ECInfos.EomOptions — Type
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 fromstart*"_1^2".save::String:⟨"eigenvectors"⟩main part of filename to save eigenvectors. For example, the singles eigenvectors for state 2 are saved tosave*"_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.
ElemCo.ECInfos.FCIOptions — Type
Option for FCI calculations.
max_iter::Int64:⟨50⟩Maximum number of iterationsshift::Float64:⟨0.1⟩Level shift to improve convergenceconv_tol::Float64:⟨1e-8⟩Convergence tolerance for energyres_tol::Float64:⟨1e-6⟩Convergence tolerance for residual normnstates::Int64:⟨1⟩Number of states to computen_guess::Int64:⟨2⟩Number of guess vectors to usesubspace_size::Int64:⟨10⟩Maximum subspace size for Davidson diagonalizationcompute_rdms::Bool:⟨true⟩Compute 1-RDMs after convergencecompute_2rdm::Bool:⟨false⟩Compute 2-RDM after convergencejacobi_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 inclusionpspace_ciphi_epsilon::Float64:⟨1e-3⟩CIPHI selection threshold (epsilon_h) for P-space generationprint_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
ElemCo.ECInfos.IntOptions — Type
Options for integral calculation.
df::Bool:⟨true⟩use density-fitted 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.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).
ElemCo.ECInfos.LaplaceOptions — Type
Options for Laplace quadrature.
npoints::Int64:⟨8⟩number of Laplace quadrature points.algo::Symbol:⟨:minimax⟩algorithm for Laplace quadrature points. (:minimaxor:simplex)
ElemCo.ECInfos.PrintOptions — Type
Options for printing.
time::Int64:⟨2⟩verbosity level for printing timings.memory::Int64:⟨2⟩verbosity level for printing memory usage.
ElemCo.ECInfos.ScfOptions — Type
Options for SCF calculation.
thr::Float64:⟨1.e-10⟩convergence threshold.thren::Float64:⟨sqrt(thr)*0.1⟩energy convergence threshold (used additionally tothr).maxit::Int64:⟨50⟩maximum number of iterations.imagtol::Float64:⟨1.e-8⟩tolerance for imaginary part of MO coefs (for biorthogonal).direct::Bool:⟨false⟩direct calculation without storing integrals.guess::Symbol:⟨:SAD⟩orbital guess::HCOREfrom core Hamiltonian:SADfrom atomic densities:GWHnot implemented yet:ORBfrom previous orbitals stored in dump fileWfOptions.dump
guess_pos::Symbol:⟨:HCORE⟩positron orbital guess. Only:HCOREis 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::SOSecond Order Approximation:SCISuper CI:SO_SCISecond Order Approximation combing Super CI
initVecType::Symbol:⟨:GRADIENT_SETPLUS⟩Initial Vectors Type for MCSCF::INHERITfrom last macro/micro iterations:GRADIENT_SETb0 as [1,0,0,...], b1 as gradient:GRADIENT_SETPLUSb0, 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 HessiantrustScale::Any:⟨0.8⟩the trust region of sqrt(sum(x.^2)) should be [trustScale,1] * trustlambdaMax::Any:⟨1000.0⟩the maximum number of lambda when adjusting the level shiftdavErrorMin::Any:⟨1e-6⟩the minmum convergence threshold for davidson algorithminiDavMatSize::Any:⟨200⟩the size of initial Davidson projected matrixtrustShrinkScale::Any:⟨0.7⟩the shrink scale of trust regiontrustExpandScale::Any:⟨1.2⟩the expand scale of trust regionenerQuotientLowerBound::Any:⟨0.25⟩when energy quotient is lower than this value, the trust value should be smallerenerQuotientUpperBound::Any:⟨0.75⟩when energy quotient is higher than this value, the trust value should be largerpseudo::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.
ElemCo.ECInfos.WfOptions — Type
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,dumpwill be used.start::String:⟨""⟩filename to read starting amplitudes from (TREXIO format). If empty, amplitudes are read fromdump. If provided, amplitudes (and MOs/basis) are read from this file and projected to the current MO basis.npositron::Int64:⟨0⟩Number of positrons.core::Symbol:⟨:large⟩core type for frozen-core approximation::noneno frozen-core approximation,:smallsemi-core orbitals correlated,:largesemi-core orbitals frozen.
freeze_nocc::Int64:⟨-1⟩number of occupied (core) orbitals to freeze (overwrites core).freeze_nvirt::Int64:⟨0⟩number of virtual (highest) 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+3or equivalently1-3. Additionally, the spatial symmetry of the orbitals can be specified with the syntaxorb.sym, e.g.occa = "-5.1+-2.2+-4.3".occb::String:⟨"-"⟩occupied β orbitals. Ifoccb::Stringis empty, the occupied β orbitals are the same as the occupied α orbitals (closed-shell case).active::String:⟨"-"⟩active space. The active space is defined by the occupation string (cf.occa) or in the(#elec, #orb)format.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.