Struct IndexSpaceSpec

Struct Documentation

struct IndexSpaceSpec

what IndexBasisRegistry::add(label, type, spec) registers a space with besides its label and type: each member is given by name, and each is optional. A bare value in the brace list, {10}, is rejected (SEQUANT_DESIGNATED_INIT_ONLY): the members are set by name only, so that reordering them can never reinterpret a call site; the deprecated argument-list spelling of add() is where a bare number is the dimension.

roles

whether the space is the registry’s vacuum-occupied, reference-occupied, complete, hole or particle space (see IndexBasisRegistry::vacuum_occupied_space() and its kin)

bool vacuum_occupied = false
bool reference_occupied = false
bool complete = false
bool hole = false
bool particle = false

Public Members

SEQUANT_DESIGNATED_INIT_ONLY
std::optional<std::int64_t> dimension = {}

the dimension of the space; 10, the default of the IndexSpace ctor, if not given

Pre:

non-negative

std::optional<IndexSpace::QuantumNumbers> qns = {}

the quantum numbers of the space; none if not given

std::optional<Field> field = {}

the scalar field of the space’s own basis; Field::Complex, the default of the IndexSpace ctor, if not given