ElemCo.jl global information
ElemCo.ECInfos — ModuleVarious global infos
Main structure
ElemCo.ECInfos.ECInfo — TypeECInfoGlobal information for ElemCo.
scr::String:⟨"system-tmpdir/elemcojlscr/jl_*"⟩path to scratch directory.ext::String:⟨".bin"⟩extension of temporary files.verbosity::Int64:⟨2⟩verbosity level.options::ElemCo.ECInfos.Options: options.system::AtomsBase.FlexibleSystem: molecular system.fd::ElemCo.FciDumps.TFDump: fcidump.files::Dict{String, String}: information about (temporary) files. The naming convention is:prefix_ +name(+extensionEC.extadded automatically).prefixcan be:dfor dressed integralsSfor overlap matrixffor Fock matrixefor orbital energiesDfor density matrixhfor core HamiltonianCfor transformation from one basis to anotherTfor amplitudesUfor trial vectors or Lagrange multipliers
nameis given by the subspaces involved:ofor occupiedvfor virtualOfor occupied-βVfor virtual-βmfor (full) MO spaceMfor (full) β-MO spaceAfor AO basisafor active orbitalsdfor doubly-occupied (closed-shell) orbitalssfor singly-occupied (open-shell) orbitalsSfor singly-occupied with β electron (open-shell) orbitalsPfor auxiliary orbitals (fitting basis)Lfor auxiliary orbitals (Cholesky decomposition, orthogonal)Xfor auxiliary orbitals (amplitudes decomposition)
The order of subspaces is important, e.g.,
ovis occupied-virtual,vois virtual-occupied. Normally, the first subspaces correspond to subscripts of the tensor. For example,T_vocontains the singles amplitudes $T_{a}^{i}$. Disambiguity can be resolved by introducing^to separate the subscripts from the superscripts, e.g.,d_XXcontains $\hat v_{XY}$ andd_^XXcontains $\hat v^{XY}$ integrals.
space::Dict{Char, Vector{Int64}}: subspaces: 'o'ccupied, 'v'irtual, 'O'ccupied-β, 'V'irtual-β, ':'/'m'/'M' full MO.
Exported functions
ElemCo.ECInfos.file_description — Methodfile_description(EC::ECInfo, name::String)Return description of file name in ECInfo.
ElemCo.ECInfos.flipspin — Methodflipspin(sp::Char)Flip spin for a given space character.
ElemCo.ECInfos.freeze_core! — Functionfreeze_core!(EC::ECInfo, core::Symbol, freeze_nocc::Int, freeze_orbs=[])Freeze freeze_nocc occupied orbitals or orbitals on the freeze_orbs list. If freeze_nocc is negative and freeze_orbs is empty: guess the number of core orbitals.
core as in MSystem.guess_ncore.
ElemCo.ECInfos.freeze_nocc! — Methodfreeze_nocc!(EC::ECInfo, freeze)Freeze occupied orbitals from the freeze list.
ElemCo.ECInfos.freeze_nvirt! — Functionfreeze_nvirt!(EC::ECInfo, nfreeze::Int, freeze_orbs=[])Freeze nfreeze virtual orbitals or orbitals on the freeze_orbs list.
ElemCo.ECInfos.get_occvirt — Methodget_occvirt(occas::String, occbs::String, norb, nelec; ms2=0, orbsym=Vector{Int}, ignore_error=false)Use a +/- string to specify the occupation. If occbs=="-", the occupation from occas is used (closed-shell). If both are "-", the occupation is deduced from nelec and ms2. The optional argument orbsym is a vector with length norb of orbital symmetries (1 to 8) for each orbital.
ElemCo.ECInfos.is_closed_shell — Methodis_closed_shell(EC::ECInfo)Check if the system is closed-shell according the to the reference occupation and FCIDump.
ElemCo.ECInfos.isalphaspin — Methodisalphaspin(sp1::Char,sp2::Char)Try to guess spin of an electron: lowcase α, uppercase β, non-letters skipped. Return true for α spin. Throws an error if cannot decide.
ElemCo.ECInfos.len_spaces — Methodlen_spaces(EC::ECInfo, spaces::String)Return lengths of spaces (e.g., "vo" for occupied and virtual orbitals).
ElemCo.ECInfos.n_occ_orbs — Methodn_occ_orbs(EC::ECInfo)Return number of occupied orbitals (for UHF: α).
ElemCo.ECInfos.n_occb_orbs — Methodn_occb_orbs(EC::ECInfo)Return number of occupied orbitals (β).
ElemCo.ECInfos.n_orbs — Methodn_orbs(EC::ECInfo)Return number of orbitals.
ElemCo.ECInfos.n_virt_orbs — Methodn_virt_orbs(EC::ECInfo)Return number of virtual orbitals (for UHF: α).
ElemCo.ECInfos.n_virtb_orbs — Methodn_virtb_orbs(EC::ECInfo)Return number of virtual orbitals (β).
ElemCo.ECInfos.parse_orbstring — Methodparse_orbstring(orbs::String; orbsym=Vector{Int})Parse a string specifying some list of orbitals, e.g., -3+5-8+10-12 → [1 2 3 5 6 7 8 10 11 12] or use ':' and ';' instead of '-' and '+', respectively.
ElemCo.ECInfos.reset_wf_info! — Methodreset_wf_info!(EC::ECInfo)Reset ECInfos.WfOptions to default.
ElemCo.ECInfos.restore_space! — Methodrestore_space!(EC::ECInfo, space)Restore the space.
ElemCo.ECInfos.save_space — Methodsave_space(EC::ECInfo)Save the current subspaces of space.
ElemCo.ECInfos.set_options! — Methodset_options!(opt, allopts)Set options for option opt from allopts.
ElemCo.ECInfos.set_options! — Methodset_options!(opt; kwargs...)Set options for option opt using keyword arguments.
ElemCo.ECInfos.setup_space! — Methodsetup_space!(EC::ECInfo, norb, nelec, ms2, orbsym)Setup EC.space from norb, nelec, ms2, orbsym or occa/occb.
ElemCo.ECInfos.setup_space_fd! — Methodsetup_space_fd!(EC::ECInfo)Setup EC.space from fcidump EC.fd.
ElemCo.ECInfos.setup_space_system! — Methodsetup_space_system(EC::ECInfo)Setup EC.space from molecular system EC.system.
ElemCo.ECInfos.space4spin — Methodspace4spin(sp::Char, alpha::Bool)Return the space character for a given spin. sp on input has to be lowercase.
ElemCo.ECInfos.spin4space — Methodspin4space(sp::Char)Return spin for a given space character.
File management
ElemCo.ECInfos.file_exists — Functionfile_exists(EC::ECInfo, name::String)Check if file name exists in ECInfo.
ElemCo.ECInfos.add_file! — Functionadd_file!(EC::ECInfo, name::String, descr::String; overwrite=false)Add file name to ECInfo with (space-separated) descriptions descr. Possible description: tmp (temporary).
ElemCo.ECInfos.copy_file! — Functioncopy_file!(EC::ECInfo, from::AbstractString, to::AbstractString; overwrite=false)Copy file from to to.
ElemCo.ECInfos.delete_file! — Functiondelete_file!(EC::ECInfo, name::AbstractString)Delete file name from ECInfo.
ElemCo.ECInfos.delete_files! — Functiondelete_files!(EC::ECInfo, which::AbstractString)Delete files in ECInfo which match description in which.
which can be a space-separated string of descriptions (then all descriptions have to match) Examples:
delete_files!(EC, "tmp")deletes all temporary files.delete_files!(EC, "tmp orbs")deletes all temporary files with additional description "orbs"
delete_files!(EC::ECInfo, which::AbstractArray{String})Delete files in ECInfo which match any description in array which.
Examples:
delete_files!(EC, ["tmp","orbs"])deletes all temporary files and all files with description "orbs".delete_files!(EC, ["tmp orbs","tmp2"])deletes all temporary files with description "orbs" and all files with description "tmp2".
ElemCo.ECInfos.delete_temporary_files! — Functiondelete_temporary_files!(EC::ECInfo)Delete all temporary files in ECInfo.
Internal functions
ElemCo.ECInfos.symorb2orb — Methodsymorb2orb(symorb::AbstractString, symoffset::Vector{Int})Convert a symorb (like 1.3 [orb.sym]) to an orbital number. If no sym given, just return the orbital number converted to Int.
Abstract types
ElemCo.AbstractEC — ModuleAbstract types to resolve circular dependencies