22 #include "cell_chemistry/factories.h"
23 #include "cell_color/factories.h"
24 #include "cell_daughters/factories.h"
25 #include "cell_housekeep/factories.h"
26 #include "cell_split/factories.h"
27 #include "cell2cell_transport/factories.h"
30 #include "hamiltonian/factories.h"
36 #include <boost/property_tree/ptree.hpp>
41 using boost::property_tree::ptree;
44 static typename ComponentTraits<T>::ComponentType Helper(
const CoreData& cd,
const typename ComponentTraits<T>::MapType& map)
46 const auto it = map.find(cd.m_parameters->get<std::string>(ComponentTraits<T>::Label()));
47 return (it != map.end()) ? (it->second)(cd) :
typename ComponentTraits<T>::ComponentType();
51 static vector<string> ListHelper(
const typename ComponentTraits<T>::MapType& map)
54 for(
const auto& e : map) {
55 vec.push_back(e.first);
virtual std::vector< std::string > ListHamiltonian() const override final
virtual CellToCellTransportComponent CreateCellToCellTransport(const CoreData &cd) const override final
std::function< double(Cell *)> HamiltonianComponent
Hamiltonian component interface.
std::function< double(const NeighborNodes &, Node *, std::array< double, 3 >)> DeltaHamiltonianComponent
DeltaHamiltonian component interface.
Core data with mesh, parameters, random engine and time data.
virtual std::vector< std::string > ListCellToCellTransport() const override final
Core data used during model execution.
std::function< std::tuple< bool, bool, std::array< double, 3 >>(Cell *)> CellSplitComponent
CellSplit component interface.
WallChemistry component factory map.
std::function< std::array< double, 3 >()> MoveGeneratorComponent
MoveGenerator component interface.
const ComponentTraits< WallChemistryTag >::MapType g_component_factories
Stores cell chemistry component factories.
virtual CellHousekeepComponent CreateCellHousekeep(const CoreData &cd) const override final
virtual TimeEvolverComponent CreateTimeEvolver(const CoreData &cd) const override final
virtual std::vector< std::string > ListWallChemistry() const override final
virtual std::vector< std::string > ListCellSplit() const override final
std::function< void(Cell *, Cell *)> CellDaughtersComponent
CellDaughters component interface.
virtual CellSplitComponent CreateCellSplit(const CoreData &cd) const override final
virtual std::vector< std::string > ListCellDaughters() const override final
Namespace for components of the Default model group.
virtual MoveGeneratorComponent CreateMoveGenerator(const CoreData &cd) const override final
std::function< void(Wall *w, double *dchem_c1, double *dchem_c2)> CellToCellTransportBoundaryComponent
CellToCellTransport boundary condition component interface.
TimeEvolver component factory map.
virtual DeltaHamiltonianComponent CreateDeltaHamiltonian(const CoreData &cd) const override final
virtual CellDaughtersComponent CreateCellDaughters(const CoreData &cd) const override final
virtual std::vector< std::string > ListTimeEvolver() const override final
CellChemistry component factory map.
virtual std::vector< std::string > ListMoveGenerator() const override final
const ComponentTraits< CellToCellTransportTag >::MapType g_component_factories
Stores cell chemistry component factories.
Component factory for SimPT_Default model group.
virtual std::vector< std::string > ListCellHousekeep() const override final
const ComponentTraits< CellToCellTransportBoundaryTag >::MapType g_component_factories
Stores cell chemistry component factories.
const ComponentTraits< CellChemistryTag >::MapType g_component_factories
Stores cell chemistry component factories.
virtual std::vector< std::string > ListDeltaHamiltonian() const override final
const ComponentTraits< CellColorTag >::MapType g_component_factories
Stores cell color component factories.
std::function< void(Cell *, double *)> CellChemistryComponent
CellChemistry component interface.
std::function< void(Cell *)> CellHousekeepComponent
CellHousekeep component interface.
const ComponentTraits< CellSplitTag >::MapType g_component_factories
Stores CellChemistry component factories.
virtual CellChemistryComponent CreateCellChemistry(const CoreData &cd) const override final
CellToCellTransport component factory map.
const ComponentTraits< MoveGeneratorTag >::MapType g_component_factories
Stores MoveGenerator component factories.
virtual std::vector< std::string > ListCellColor() const override final
const ComponentTraits< CellDaughtersTag >::MapType g_component_factories
Stores cell chemistry component factories.
virtual CellColorComponent CreateCellColor(const string &select, const ptree &) const override final
static CellToCellTransportBoundaryComponent CreateCellToCellTransportBoundary(const CoreData &cd)
Create CellToCellTransportBoundaryFunction (internal use).
CellSplit component factory map.
std::function< void(Wall *, double *, double *)> WallChemistryComponent
Wall chemistry component interface.
const ComponentTraits< CellHousekeepTag >::MapType g_component_factories
Stores cell chemistry component factories.
virtual WallChemistryComponent CreateWallChemistry(const CoreData &cd) const override final
const ComponentTraits< TimeEvolverTag >::MapType g_component_factories
Stores cell chemistry component factories.
const ComponentTraits< DeltaHamiltonianTag >::MapType g_component_factories
Stores DeltaHamiltonian component factories.
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.
virtual std::vector< std::string > ListCellChemistry() const override final
const ComponentTraits< HamiltonianTag >::MapType g_component_factories
Stores Hamiltonian component factories.
std::function< void(Wall *, double *, double *)> CellToCellTransportComponent
CellToCellTransport component interface.
virtual HamiltonianComponent CreateHamiltonian(const CoreData &cd) const override final