Template Function sequant::mbpt::detail::validate_ref_av_connections

Function Documentation

template<typename T>
void sequant::mbpt::detail::validate_ref_av_connections(const EVOptions<T> &opts, bool full_contractions)

Rejects connectivity constraints that ref_av cannot honor.

ref_av honors the constraints when it takes full contractions only, see ref_av_full_contractions(). Otherwise it contracts partially and the residual operators become RDMs after Wick’s theorem has run. An RDM of rank above one contains both connected and disconnected contributions (its cumulant and products of lower-rank cumulants), and the residual operators of a term can form an RDM of any rank, so whether the operators feeding it are connected is not a property of a term; neither connect nor do_not_connect can be given the meaning defined in EVOptions, and both are rejected.

Parameters:
  • opts – the options passed to ref_av

  • full_contractions – true if ref_av takes full contractions only, see ref_av_full_contractions()

Throws:

Exception – (or aborts, per SEQUANT_ENFORCE) if full_contractions is false and opts.connect or opts.do_not_connect is non-empty

Pre:

Called before any screening or operator-label lowering, so invalid requests are rejected regardless of the expression