Function sequant::mbpt::bernoulli::hbar¶
Defined in File bernoulli.cpp
Function Documentation¶
-
ExprPtr sequant::mbpt::bernoulli::hbar(std::size_t N, std::size_t rank, bool skip1)¶
Tensor-level \(\bar{H} = \sum_{k=0}^{\mathrm{rank}} \bar{H}^{k}\) in the Bernoulli expansion, for \(\sigma = T-T^\dagger\) of rank
N. \(\bar{H}^{0},\ldots,\bar{H}^{4}\) are Eqs. (46)-(50), and higher orders are generated from Eq. (44), of 10.1063/1.5030344.The result is coefficient tensors times normal-ordered operators, not
mbpt::opoperators, and nothing is screened out of it, so the caller projects every term.Warning
Single-reference only. The N/R split expands general indices over the hole and particle spaces alone (see detail::expand_to_blocks) and classifies each one as wholly occupied or wholly unoccupied relative to the single-product vacuum. That classification does not represent multireference excitation semantics; for example, the active space in make_mr_spaces() is vacuum-unoccupied.
- Parameters:
N – cluster/excitation rank (also the N/R rank cutoff)
rank – highest Bernoulli order \(\bar{H}^{k}\) to include
skip1 – exclude singles from T
- Throws:
Exception – if CSV is enabled
- Pre:
a HF reference: \(F\) is taken to have no occupied-virtual block, which keeps \(F\) out of \(\bar{H}^{2}\) and higher (see the F-cancellation in bernoulli.cpp)
- Pre:
the reference is the Wick vacuum (enforced in every build)