Properties

Shared helpers for method-level property work live here, including dipoles, natural-orbital rotations, and related post-processing that can be reused by SCF, correlated, and CI drivers.

ElemCo.PropertiesModule
Properties

Shared property post-processing helpers for SCF, correlated, and CI methods.

source

Exported functions

ElemCo.Properties.add_dipole_entriesMethod
add_dipole_entries(energies::OutDict, method::String, dipole; include_method_aliases=false)

Merge dipole components and magnitude into an output dictionary using the standard DM* and mu* keys. When include_method_aliases=true, also add method-qualified aliases such as METHOD-DMX and METHOD-mu.

source
ElemCo.Properties.calc_dipole_momentMethod
calc_dipole_moment(EC::ECInfo, cMO::SpinMatrix, rdm::SpinMatrix; basis=nothing)

Calculate total molecular dipole components in Debye from a MO-space 1-RDM. Returns (μx, μy, μz, |μ|) or nothing when the AO basis / geometry is unavailable.

For a restricted rdm, rdm.α is taken to be the total (spin-summed) density; for an unrestricted rdm, rdm.α and rdm.β are the per-spin densities.

source
ElemCo.Properties.natural_orbital_rotationMethod
natural_orbital_rotation(EC::ECInfo, rdm)

Diagonalize a MO-space 1-RDM and return the descending occupations together with the rotation matrix that transforms the current orbitals into natural orbitals. For unrestricted densities, alpha and beta blocks are treated independently.

source

Internal functions

ElemCo.Properties._dipole_output_pairsMethod
_dipole_output_pairs(method::String, dipole; include_method_aliases=false)

Build the standard dipole output key/value/description tuples for insertion into an OutDict, optionally including method-qualified aliases.

source
ElemCo.Properties._insert_before_lastMethod
_insert_before_last(energies::OutDict, pairs...)

Insert additional output entries immediately before the final element of an OutDict, preserving the convention that the last entry remains the primary energy.

source
ElemCo.Properties.real_part_if_smallMethod
real_part_if_small(EC::ECInfo, value, label::AbstractString)

Return the real part of value when its imaginary contribution is below the configured SCF tolerance, otherwise emit a warning before dropping it.

source