1 #ifndef DEFAULT__COMPONENT_FACTORY_H_INCLUDED
2 #define DEFAULT__COMPONENT_FACTORY_H_INCLUDED
30 using boost::property_tree::ptree;
31 using std::shared_ptr;
35 class ComponentFactoryBase;
44 static std::shared_ptr<ComponentFactoryProxy>
Create(
const string& group_name,
bool throw_ok =
true);
84 std::vector<std::string>
ListCellColor(
bool default_ok =
true)
const;
93 std::vector<std::string>
ListCellSplit(
bool default_ok =
true)
const;
102 std::vector<std::string>
ListHamiltonian(
bool default_ok =
true)
const;
108 std::vector<std::string>
ListTimeEvolver(
bool default_ok =
true)
const;
123 vector<string> ListHelper(
bool default_ok)
const;
126 shared_ptr<ComponentFactoryBase> m_default;
127 shared_ptr<ComponentFactoryBase> m_factory;
132 #endif // end_of_include_guard
std::function< double(Cell *)> HamiltonianComponent
Hamiltonian component interface.
CellSplitComponent CreateCellSplit(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellSplit component.
std::function< double(const NeighborNodes &, Node *, std::array< double, 3 >)> DeltaHamiltonianComponent
DeltaHamiltonian component interface.
Core data with mesh, parameters, random engine and time data.
Interface of Component Factory.
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.
MoveGeneratorComponent CreateMoveGenerator(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellSplit component.
std::vector< std::string > ListCellSplit(bool default_ok=true) const
List components for CellSplit.
static std::shared_ptr< ComponentFactoryProxy > Create(const string &group_name, bool throw_ok=true)
Create a factory proxy.
std::function< void(Cell *, Cell *)> CellDaughtersComponent
CellDaughters component interface.
CellToCellTransportComponent CreateCellToCellTransport(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellToCellTransport component.
Namespace for the core simulator.
std::vector< std::string > ListTimeEvolver(bool default_ok=true) const
List components for TimeEvolver.
CellHousekeepComponent CreateCellHousekeep(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellHouskeep component.
std::vector< std::string > ListDeltaHamiltonian(bool default_ok=true) const
List components for DeltaHamiltonian.
CellColorComponent CreateCellColor(const string &select, const ptree &pt, bool default_ok=true, bool throw_ok=true) const
Create a CellColor component.
std::vector< std::string > ListCellColor(bool default_ok=true) const
List components for CellColor.
WallChemistryComponent CreateWallChemistry(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a WallChemistry component.
std::function< void(Cell *, double *)> CellChemistryComponent
CellChemistry component interface.
std::vector< std::string > ListCellDaughters(bool default_ok=true) const
List components for CellDaughters.
std::function< void(Cell *)> CellHousekeepComponent
CellHousekeep component interface.
Primary template never gets instantiated.
std::vector< std::string > ListCellHousekeep(bool default_ok=true) const
List components for CellHouseKeep.
CellDaughtersComponent CreateCellDaughters(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellDaughters component.
std::function< void(Wall *, double *, double *)> WallChemistryComponent
Wall chemistry component interface.
HamiltonianComponent CreateHamiltonian(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a Hamiltonian component.
std::vector< std::string > ListMoveGenerator(bool default_ok=true) const
List components for MoveGenerator.
std::vector< std::string > ListCellToCellTransport(bool default_ok=true) const
List components for CellToCellTransport.
std::vector< std::string > ListHamiltonian(bool default_ok=true) const
List components for Hamiltonian.
Proxy for interaction with Component Factory of model families.
DeltaHamiltonianComponent CreateDeltaHamiltonian(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a DeltaHamiltonian component.
std::function< std::array< double, 3 >(Cell *)> CellColorComponent
CellColor component interface.
CellChemistryComponent CreateCellChemistry(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a CellChemistry component.
std::function< std::tuple< SimTimingTraits::CumulativeTimings, bool >(double, SimPhase)> TimeEvolverComponent
Time Evolver component interface.
std::vector< std::string > ListCellChemistry(bool default_ok=true) const
List components for CellChemistry.
std::function< void(Wall *, double *, double *)> CellToCellTransportComponent
CellToCellTransport component interface.
TimeEvolverComponent CreateTimeEvolver(const CoreData &cd, bool default_ok=true, bool throw_ok=true) const
Create a TimeEvolver component.
std::vector< std::string > ListWallChemistry(bool default_ok=true) const
List components for WallChemistry.