1 #ifndef CONNECTIONSFILLER_HPP 2 #define CONNECTIONSFILLER_HPP 4 #include "QuantumSystem/Connections.hpp" 23 template <
class T,
class O>
25 Connections &connections)
27 for (
auto &connection : connections.map)
29 int to = connection.first.at(0);
30 double value = connection.second;
43 template <
class T,
class O>
45 Connections &connections)
47 for (
auto &connection : connections.map)
49 int from = connection.first.at(0);
50 int to = connection.first.at(1);
51 double value = connection.second;
65 template <
class T,
class O>
67 Connections &connections,
68 const std::string &name)
72 if constexpr (O::locality == 1)
74 LocalConnectionRepacking<T, O>(hamiltonian, connections);
76 else if constexpr (O::locality == 2)
78 NonLocalConnectionRepacking<T, O>(hamiltonian, connections);
93 Connections &connections,
94 const std::string &name)
96 ConnectionsRepacking<T, Spinfull::ChemicalTerm>(hamiltonian, connections, name);
97 ConnectionsRepacking<T, Spinfull::ProxTerm>(hamiltonian, connections, name);
98 ConnectionsRepacking<T, Spinfull::ZeemanXTerm>(hamiltonian, connections, name);
99 ConnectionsRepacking<T, Spinfull::ZeemanYTerm>(hamiltonian, connections, name);
100 ConnectionsRepacking<T, Spinfull::ZeemanZTerm>(hamiltonian, connections, name);
101 ConnectionsRepacking<T, Spinfull::KineticTerm>(hamiltonian, connections, name);
102 ConnectionsRepacking<T, Spinfull::RashbaXTerm>(hamiltonian, connections, name);
103 ConnectionsRepacking<T, Spinfull::RashbaYTerm>(hamiltonian, connections, name);
104 ConnectionsRepacking<T, Spinfull::RashbaZTerm>(hamiltonian, connections, name);
117 Connections &connections,
118 const std::string &name)
120 ConnectionsRepacking<T, Spinless::ChemicalTerm>(hamiltonian, connections, name);
121 ConnectionsRepacking<T, Spinless::ProxTerm>(hamiltonian, connections, name);
122 ConnectionsRepacking<T, Spinless::KineticTerm>(hamiltonian, connections, name);
135 ParametersConnections ¶meterConnections)
137 for (
auto &[name, connections] : parameterConnections.map)
152 ParametersConnections ¶meterConnections)
154 for (
auto &[name, connections] : parameterConnections.map)
static void SpinlessSwitch(Hamiltonian< T > &hamiltonian, Connections &connections, const std::string &name)
List of all Spinless terms which are avaliable from ParametersConnections.
Definition: ConnectionsFiller.hpp:116
static void NonLocalConnectionRepacking(Hamiltonian< T > &hamiltonian, Connections &connections)
Repacking non-local (2-sites) term O.
Definition: ConnectionsFiller.hpp:44
class for filling Hamiltonian matrix elements from ParametersConnections
Definition: ConnectionsFiller.hpp:12
Hamiltonian class for counting MZM in non-interacting systems.
Definition: Hamiltonian.hpp:13
static class for spinfull model term filler
Definition: Filler.hpp:47
static void LocalConnectionRepacking(Hamiltonian< T > &hamiltonian, Connections &connections)
Repacking local (1-site) term O.
Definition: ConnectionsFiller.hpp:24
static void SpinfullSwitch(Hamiltonian< T > &hamiltonian, Connections &connections, const std::string &name)
List of all Spinfull terms which are avaliable from ParametersConnections.
Definition: ConnectionsFiller.hpp:92
static void Spinfull(Hamiltonian< T > &hamiltonian, ParametersConnections ¶meterConnections)
constructing Spinfull terms from ParametersConnections
Definition: ConnectionsFiller.hpp:134
static void ConnectionsRepacking(Hamiltonian< T > &hamiltonian, Connections &connections, const std::string &name)
Repacking all terms (local and non-local)
Definition: ConnectionsFiller.hpp:66
static void Spinless(Hamiltonian< T > &hamiltonian, ParametersConnections ¶meterConnections)
constructing Spinless terms from ParametersConnections
Definition: ConnectionsFiller.hpp:151