Quantum 3xplorer (Q3)
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
11
#include "
layer_4_computation/interpolator/method/wannier/settings/init.hpp
"
12
#include "
layer_4_computation/interpolator/method/wannier/subspace/init.hpp
"
13
#include "
layer_4_computation/interpolator/method/wannier/subspace/isolated_manifold_selection.hpp
"
14
#include "
layer_4_computation/interpolator/method/wannier/subspace/projectability_disentanglement_selection.hpp
"
15
16
namespace
q3
{
17
18
[[nodiscard]]
inline
std::unique_ptr<SubspaceSelection>
19
create_subspace_selection
(
const
WannierConstructionSettings
& settings) {
20
if
(settings.
disentangles
()) {
21
return
std::make_unique<ProjectabilityDisentanglementSelection>(*settings.
disentanglement
);
22
}
23
return
std::make_unique<IsolatedManifoldSelection>();
24
}
25
26
}
// namespace q3
isolated_manifold_selection.hpp
init.hpp
init.hpp
q3
Definition
q3_core_api.hpp:33
q3::create_subspace_selection
std::unique_ptr< SubspaceSelection > create_subspace_selection(const WannierConstructionSettings &settings)
Definition
factory.hpp:19
projectability_disentanglement_selection.hpp
q3::WannierConstructionSettings
Definition
init.hpp:31
q3::WannierConstructionSettings::disentangles
bool disentangles() const
Definition
init.hpp:76
q3::WannierConstructionSettings::disentanglement
std::optional< ProjectabilityDisentanglementSettings > disentanglement
Definition
init.hpp:38
src
layer_4_computation
interpolator
method
wannier
subspace
factory.hpp
Generated by
1.9.8