ElemCo.jl global information

Main structure

ElemCo.ECInfos.ECInfoType
ECInfo

Global 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::ElemCo.MSystems.MSystem: molecular system.

  • fd::ElemCo.FciDumps.TFDump: fcidump.

  • dump::ElemCo.ECInfos.ECDump: dump with calculation information (for restarts etc).

  • files::Dict{String, String}: information about (temporary) files. The naming convention is: prefix_ + name (+extension EC.ext added automatically). prefix can be:

    • d for dressed integrals
    • S for overlap matrix
    • f for Fock matrix
    • e for orbital energies
    • D for density matrix
    • h for core Hamiltonian
    • C for transformation from one basis to another
    • T for amplitudes
    • U for trial vectors or Lagrange multipliers

    name is given by the subspaces involved:

    • o for occupied
    • v for virtual
    • O for occupied-β
    • V for virtual-β
    • m for (full) MO space
    • M for (full) β-MO space
    • A for AO basis
    • a for active orbitals
    • d for doubly-occupied (closed-shell) orbitals
    • s for singly-occupied (open-shell) orbitals
    • S for singly-occupied with β electron (open-shell) orbitals
    • P for auxiliary orbitals (fitting basis)
    • L for auxiliary orbitals (Cholesky decomposition, orthogonal)
    • X for auxiliary orbitals (amplitudes decomposition)

    The order of subspaces is important, e.g., ov is occupied-virtual, vo is virtual-occupied. Normally, the first subspaces correspond to subscripts of the tensor. For example, T_vo contains the singles amplitudes $T_{a}^{i}$. Disambiguity can be resolved by introducing ^ to separate the subscripts from the superscripts, e.g., d_XX contains $\hat v_{XY}$ and d_^XX contains $\hat v^{XY}$ integrals. Subspaces with multiple characters are possible using {}, e.g., C_vo{bX} contains $U_{a}^{i\bar X}$.

  • space::Dict{Char, Vector{Int64}}: subspaces: 'o'ccupied, 'v'irtual, 'O'ccupied-β, 'V'irtual-β, ':'/'m'/'M' full MO.
source

Exported functions

ElemCo.ECInfos.freeze_core!Function
freeze_core!(EC::ECInfo, core::Symbol, freeze_nocc::Int, freeze_orbs=[]; verbose=true)

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 MSystems.guess_ncore.

source
ElemCo.ECInfos.freeze_nvirt!Function
freeze_nvirt!(EC::ECInfo, nfreeze::Int, freeze_orbs=[]; verbose=true)

Freeze nfreeze virtual orbitals or orbitals on the freeze_orbs list.

source
ElemCo.ECInfos.fullfilenameMethod

fullfilename(EC::ECInfo, name::String)

Return the full filename for file name in ECInfo.

The file is assumed to be in the scratch directory EC.scr with extension EC.ext. The filename is canonicalized by canonicalize_filename(name) and the extension is added.

source
ElemCo.ECInfos.get_occvirtMethod
get_occvirt(occas::String, occbs::String, norb, nelec; ms2=0, orbsym=Vector{Int}, ignore_error=false, verbose=true)

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.

source
ElemCo.ECInfos.isalphaspinMethod
isalphaspin(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.

source
ElemCo.ECInfos.parse_orbstringMethod
parse_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.

source
ElemCo.ECInfos.setup_space!Method
setup_space!(EC::ECInfo, norb, nelec, ms2, orbsym; verbose=true)

Setup EC.space from norb, nelec, ms2, orbsym or occa/occb.

source

File management

ElemCo.ECInfos.add_file!Function
add_file!(EC::ECInfo, name::String, descr::String; overwrite=false)

Add file name to ECInfo with (space-separated) descriptions descr. Possible description: tmp (temporary).

source
ElemCo.ECInfos.delete_files!Function
delete_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"
source
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".
source

Internal functions

ElemCo.ECInfos.active_spaceMethod
active_space(EC::ECInfo)

Return active space and the new doubly-occupied (closed-shell) space.

EC.space has to be set up. The active space is defined either

  • from the option wf.active, if set up. The format is either an occupation string, or (#elec, #orb).
  • from the singly-occupied orbitals in the reference occupation (from EC.space).
source
ElemCo.ECInfos.canonicalize_filenameMethod
canonicalize_filename(name::String)

Canonicalize a filename by stripping whitespace and changing each capital letter to the corresponding lowercase letter plus 'ß'.

source
ElemCo.ECInfos.check_systemMethod
check_system(EC::ECInfo; file::HDF5.Group=EC.dump.file, fcidump="")

Check if the system in the HDF5 file is the same as the one in the ECInfo object. file is the HDF5 file where the system is stored. fcidump is the path to the fcidump file.

source
ElemCo.ECInfos.checkndump_systemMethod
checkndump_system(EC::ECInfo; path::AbstractString="current", fcidump="")

Dump the system to the HDF5 file for the ECInfo object. path is the path in the HDF5 file where the system is stored. fcidump is the path to the fcidump file.

source
ElemCo.ECInfos.create_empty_dumpMethod
create_empty_dump(filename::AbstractString)

Create an empty HDF5 dump file with the given filename and information about the package.

Returns an "EC" group in HDF5 file.

source
ElemCo.ECInfos.dump_systemMethod
dump_system(EC::ECInfo; path::AbstractString="", file::HDF5.Group=EC.dump.file, fcidump="")

Dump the system to the HDF5 file for the ECInfo object. path is the path in the HDF5 file where the system is stored. fcidump is the path to the fcidump file.

source
ElemCo.ECInfos.remove_orbs_from_spaces!Method
remove_orbs_from_spaces!(EC::ECInfo, orbs; exclude=[':', 'm', 'M'])

Remove orbs from all subspaces in EC.space.

exclude is a list of subspaces to exclude (by default, exclude full MO spaces).

source
ElemCo.ECInfos.symorb2orbMethod
symorb2orb(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.

source

Abstract types