Loading...
Searching...
No Matches
factory.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * create_subspace_selection — the settings decide the strategy, here and
5 * nowhere else. Mirrors create_overlap_operator(): the dispatch is on what
6 * was asked for, and the builder holds only the interface.
7 */
8
9#include <memory>
10
15
16namespace q3 {
17
18[[nodiscard]] inline std::unique_ptr<SubspaceSelection>
20 if (settings.disentangles()) {
21 return std::make_unique<ProjectabilityDisentanglementSelection>(*settings.disentanglement);
22 }
23 return std::make_unique<IsolatedManifoldSelection>();
24}
25
26} // namespace q3
std::unique_ptr< SubspaceSelection > create_subspace_selection(const WannierConstructionSettings &settings)
Definition factory.hpp:19
std::optional< ProjectabilityDisentanglementSettings > disentanglement
Definition init.hpp:38