VPTissue Reference Manual
ComponentInterfaces.h
Go to the documentation of this file.
1 #ifndef MODEL_COMPONENT_INTERFACES_H_INCLUDED
2 #define MODEL_COMPONENT_INTERFACES_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  */
22 namespace SimPT_Sim {
23 class Cell;
24 class NeighborNodes;
25 class Node;
26 class Wall;
27 }
28 
29 #include "sim/SimTimingTraits.h"
30 #include "sim/SimPhase.h"
31 
32 #include <array>
33 #include <functional>
34 #include <tuple>
35 
36 namespace SimPT_Sim {
37 
40  = std::function<void (Cell*, double*)>;
41 
43  using CellColorComponent
44  = std::function<std::array<double, 3> (Cell*)>;
45 
48  = std::function<void (Cell*, Cell*)>;
49 
52  = std::function<void (Cell*)>;
53 
55  using CellSplitComponent
56  = std::function<std::tuple<bool, bool, std::array<double, 3>> (Cell*)>;
57 
60  = std::function<void (Wall*, double*, double*)>;
61 
64  = std::function<void (Wall* w, double* dchem_c1, double* dchem_c2)>;
65 
68  = std::function<double (const NeighborNodes&, Node*, std::array<double, 3>)>;
69 
72  = std::function<double (Cell*)>;
73 
76  = std::function<std::array<double,3>()>;
77 
80  = std::function<std::tuple<SimTimingTraits::CumulativeTimings, bool>(double, SimPhase)>;
81 
84  = std::function<void (Wall*, double*, double*)>;
85 
86 } // namespace
87 
88 #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.
A cell contains walls and nodes.
Definition: Cell.h:48
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.
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.
Declaration of Timekeeper.
std::function< void(Cell *, double *)> CellChemistryComponent
CellChemistry component interface.
std::function< void(Cell *)> CellHousekeepComponent
CellHousekeep component interface.
SimPhase enum class.
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.