Function sequant::mbpt::add_ao_basis¶
Defined in File convention.cpp
Function Documentation¶
registers the AO bases as named instances of the orbital spaces they span, with a general metric (the AOs are not orthonormal)
The OBS AO basis
μspans the complete space (p, ormwithvbs); withvbsthe VBS AO basisΑspanseandΓ=μ+Αspans their union; withabsthe ABS AO basisσspans ‘α’,ρ=μ+σspans the union of the OBS andα’, and with \p vbs alsoΡ=Γ+σ‘ spans the union of all three. Every space a basis spans must be registered. The extents default to the spaces’ dimensions (populate them with IndexBasisRegistry::extent(label, n) before the registry is given to a Context, which holds it immutable). No spin-cased counterparts (μ↑,μ↓, …) are registered, unlike by add_pao_basis(): the AO bases are the target of csv_transform() after spin tracing, and spin-casing an index in one throws (see make_spinalpha()) unless they are registered by hand.- Parameters:
isr – the IndexBasisRegistry to which add the AO bases
spin_any – the quantum numbers of the spin-agnostic orbital spaces in the target convention (Spin::null for SpinConvention::Legacy, else Spin::any)
vbs – if true, have separate virtual basis
abs – if true, have an auxiliary (F12) basis
instance – the basis instance of the AO bases
- Throws:
Exception – if a label is already registered or a space an AO basis spans is not; the registry is then left untouched