VPTissue Reference Manual
Default/components/ComponentFactory.h
Go to the documentation of this file.
1 #ifndef DEFAULT_COMPONENT_FACTORY_H_INCLUDED
2 #define DEFAULT_COMPONENT_FACTORY_H_INCLUDED
3 /*
4  * Copyright 2011-2016 Universiteit Antwerpen
5  *
6  * Licensed under the EUPL, Version 1.1 or as soon they will be approved by
7  * the European Commission - subsequent versions of the EUPL (the "Licence");
8  * You may not use this work except in compliance with the Licence.
9  * You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl5
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the Licence is distributed on an "AS IS" basis,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the Licence for the specific language governing
15  * permissions and limitations under the Licence.
16  */
23 #include "model/ComponentTraits.h"
24 
25 namespace SimPT_Sim { struct CoreData; }
26 
27 namespace SimPT_Default {
28 
29 using namespace SimPT_Sim;
30 using namespace std;
31 using boost::property_tree::ptree;
32 
37 {
38 public:
40  virtual CellChemistryComponent CreateCellChemistry(const CoreData& cd) const override final;
41 
43  virtual CellColorComponent CreateCellColor(const string& select, const ptree&) const override final;
44 
46  virtual CellDaughtersComponent CreateCellDaughters(const CoreData& cd) const override final;
47 
49  virtual CellHousekeepComponent CreateCellHousekeep(const CoreData& cd) const override final;
50 
52  virtual CellSplitComponent CreateCellSplit(const CoreData& cd) const override final;
53 
55  virtual CellToCellTransportComponent CreateCellToCellTransport(const CoreData& cd) const override final;
56 
58  static CellToCellTransportBoundaryComponent CreateCellToCellTransportBoundary(const CoreData& cd);
59 
61  virtual DeltaHamiltonianComponent CreateDeltaHamiltonian(const CoreData& cd) const override final;
62 
64  virtual HamiltonianComponent CreateHamiltonian(const CoreData& cd) const override final;
65 
67  virtual MoveGeneratorComponent CreateMoveGenerator(const CoreData& cd) const override final;
68 
70  virtual TimeEvolverComponent CreateTimeEvolver(const CoreData& cd) const override final;
71 
73  virtual WallChemistryComponent CreateWallChemistry(const CoreData& cd) const override final;
74 
75 public:
77  virtual std::vector<std::string> ListCellChemistry() const override final;
78 
80  virtual std::vector<std::string> ListCellColor() const override final;
81 
83  virtual std::vector<std::string> ListCellDaughters() const override final;
84 
86  virtual std::vector<std::string> ListCellHousekeep() const override final;
87 
89  virtual std::vector<std::string> ListCellSplit() const override final;
90 
92  virtual std::vector<std::string> ListCellToCellTransport() const override final;
93 
95  virtual std::vector<std::string> ListDeltaHamiltonian() const override final;
96 
98  virtual std::vector<std::string> ListHamiltonian() const override final;
99 
101  virtual std::vector<std::string> ListMoveGenerator() const override final;
102 
104  virtual std::vector<std::string> ListTimeEvolver() const override final;
105 
107  virtual std::vector<std::string> ListWallChemistry() const override final;
108 };
109 
110 } // namespace
111 
112 #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 with mesh, parameters, random engine and time data.
Definition: CoreData.h:38
STL namespace.
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.
Interface for ComponentFactory.
std::function< void(Cell *, Cell *)> CellDaughtersComponent
CellDaughters component interface.
Namespace for components of the Default model group.
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.
std::function< void(Wall *, double *, double *)> WallChemistryComponent
Wall chemistry component interface.
Model component .
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.
Component factory for SimPT_Default model group.
std::function< void(Wall *, double *, double *)> CellToCellTransportComponent
CellToCellTransport component interface.