Program Listing for File convention.hpp¶
↰ Return to documentation for file (SeQuant/domain/mbpt/convention.hpp)
//
// Created by Eduard Valeyev on 2019-04-01.
//
#ifndef SEQUANT_CONVENTION_HPP
#define SEQUANT_CONVENTION_HPP
#include <SeQuant/domain/mbpt/fwd.hpp>
#include <SeQuant/core/context.hpp>
#include <SeQuant/core/index_space_registry.hpp>
namespace sequant {
namespace mbpt {
enum class Convention {
Minimal,
SR,
MR,
MinimalMR,
F12,
QCiFS
};
enum class SpinConvention {
None,
Default,
Legacy,
};
void load(Convention conv = Convention::Minimal,
SpinConvention spconv = SpinConvention::Default);
std::wstring decorate_label(std::wstring label, bool up);
void add_fermi_spin(IndexSpaceRegistry& isr);
void add_ao_spaces(std::shared_ptr<IndexSpaceRegistry>& isr, bool vbs = false,
bool abs = false);
void add_df_spaces(std::shared_ptr<IndexSpaceRegistry>& isr);
void add_thc_spaces(std::shared_ptr<IndexSpaceRegistry>& isr);
void add_pao_spaces(std::shared_ptr<IndexSpaceRegistry>& isr);
void add_batching_spaces(std::shared_ptr<IndexSpaceRegistry>& isr);
std::shared_ptr<IndexSpaceRegistry> make_min_sr_spaces(
SpinConvention scv = SpinConvention::Default);
std::shared_ptr<IndexSpaceRegistry> make_F12_sr_spaces(
SpinConvention spconv = SpinConvention::Default);
std::shared_ptr<IndexSpaceRegistry> make_mr_spaces(
SpinConvention spconv = SpinConvention::Default);
std::shared_ptr<IndexSpaceRegistry> make_min_mr_spaces(
SpinConvention spconv = SpinConvention::Default);
std::shared_ptr<IndexSpaceRegistry> make_sr_spaces(
SpinConvention spconv = SpinConvention::Default);
std::shared_ptr<IndexSpaceRegistry> make_legacy_spaces(
SpinConvention spconv = SpinConvention::Default);
std::pair<std::shared_ptr<IndexSpaceRegistry>,
std::shared_ptr<IndexSpaceRegistry>>
make_fermi_and_bose_spaces(SpinConvention spconv = SpinConvention::Default);
inline void check_for_batching_space() {
SEQUANT_ASSERT(
sequant::get_default_context().index_space_registry()->contains(L"z"));
}
} // namespace mbpt
} // namespace sequant
#endif // SEQUANT_CONVENTION_HPP