Coupled-Cluster Class

SeQuant’s coupled-cluster (CC) class (see sequant::mbpt::CC) supports derivations of ground and excited state methods, using traditional, unitary and orbital-optimized ansatze (see sequant::mbpt::CC::Ansatz). Expressions are generated in spin-orbital basis, and they can post-processed using SeQuant’s spin-tracing capabilities.

Examples

Here are some examples of using the CC class for deriving expressions.

CC amplitude equations

using namespace sequant::mbpt;
// Traditional CCSD
auto t_eqs = CC{2}.t();
std::wcout << "R[1]: " << to_latex(t_eqs[1]) << std::endl
           << "R[2]: " << to_latex(t_eqs[2]) << std::endl;

auto l_eqs = CC{2}.λ();
std::wcout << "L[1]: " << to_latex(l_eqs[1]) << std::endl
           << "L[2]: " << to_latex(l_eqs[2]) << std::endl;

// Unitary CCSD
auto Ut_eqs = CC{2, CC::Ansatz::U}.t();
std::wcout << "R[1]: " << to_latex(Ut_eqs[1]) << std::endl
           << "R[2]: " << to_latex(Ut_eqs[2]) << std::endl;

EOM-CC equations

Note

EOM-CC methods only support traditional ansatz for now

using namespace sequant::mbpt;
// EE-EOM-CCSD
auto r_eqs = CC{2}.eom_r(nₚ(2), nₕ(2));
std::wcout << "R[1]: " << to_latex(r_eqs[1]) << std::endl
           << "R[2]: " << to_latex(r_eqs[2]) << std::endl;

Spin-tracing generated expressions