1 #ifndef MODEL_COMPONENT_TRAITS_H_INLUDED
2 #define MODEL_COMPONENT_TRAITS_H_INLUDED
25 #include <boost/property_tree/ptree_fwd.hpp>
37 using boost::property_tree::ptree;
60 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
61 static const std::string Label() {
return "model.cell_chemistry"; }
69 using MapType = std::map<const std::string, const std::function<ComponentType (const ptree&)>>;
70 static const std::string Label() {
return "cell_color"; }
78 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
79 static const std::string Label() {
return "model.cell_daughters"; }
87 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
88 static const std::string Label() {
return "model.cell_housekeep"; }
96 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
97 static const std::string Label() {
return "model.cell_split"; }
105 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
106 static const std::string Label() {
return "model.cell2cell_transport"; }
114 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
115 static const std::string Label() {
return "model.cell2cell_transport_boundary"; }
123 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
124 static const std::string Label() {
return "model.mc_hamiltonian"; }
132 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
133 static const std::string Label() {
return "model.mc_hamiltonian"; }
141 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
142 static const std::string Label() {
return "model.mc_move_generator"; }
150 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
151 static const std::string Label() {
return "model.time_evolver"; }
159 using MapType = std::map<const std::string, const std::function<ComponentType (const CoreData&)>>;
160 static const std::string Label() {
return "model.wall_chemistry"; }
165 #endif // end_of_include_guard
std::function< double(Cell *)> HamiltonianComponent
Hamiltonian component interface.
std::function< double(const NeighborNodes &, Node *, std::array< double, 3 >)> DeltaHamiltonianComponent
DeltaHamiltonian component interface.
Core data used during model execution.
std::function< std::tuple< bool, bool, std::array< double, 3 >>(Cell *)> CellSplitComponent
CellSplit component interface.
std::function< std::array< double, 3 >()> MoveGeneratorComponent
MoveGenerator component interface.
Interface of Model Components.
std::function< void(Cell *, Cell *)> CellDaughtersComponent
CellDaughters component interface.
std::function< void(Wall *w, double *dchem_c1, double *dchem_c2)> CellToCellTransportBoundaryComponent
CellToCellTransport boundary condition component interface.
Namespace for the core simulator.
std::function< void(Cell *, double *)> CellChemistryComponent
CellChemistry component interface.
std::function< void(Cell *)> CellHousekeepComponent
CellHousekeep component interface.
Primary template never gets instantiated.
std::function< void(Wall *, double *, double *)> WallChemistryComponent
Wall chemistry component interface.
std::function< std::array< double, 3 >(Cell *)> CellColorComponent
CellColor component interface.
std::function< std::tuple< SimTimingTraits::CumulativeTimings, bool >(double, SimPhase)> TimeEvolverComponent
Time Evolver component interface.
std::function< void(Wall *, double *, double *)> CellToCellTransportComponent
CellToCellTransport component interface.