28 #include <boost/property_tree/ptree.hpp>
31 namespace TimeEvolver {
43 assert( cd.
Check() &&
"CoreData not ok.");
47 std::tuple<SimTimingTraits::CumulativeTimings, bool>
VPTissue::operator()(
double time_slice, SimPhase phase)
50 bool is_stationary =
true;
52 if (phase == SimPhase::_1 || phase == SimPhase::NONE) {
57 const auto tup1 = transporter(time_slice);
58 timings.
Merge(get<0>(tup1));
59 is_stationary &= get<1>(tup1);
62 if (phase == SimPhase::_2 || phase == SimPhase::NONE) {
67 const auto tup2 = grow_housekeep();
68 timings.
Merge(get<0>(tup2));
69 is_stationary &= get<1>(tup2);
75 return make_tuple(timings, is_stationary);
Interface for SimPT time evolver.
std::tuple< SimTimingTraits::CumulativeTimings, bool > operator()(double time_slice, SimPhase phase=SimPhase::NONE)
Take a time step.
Core data with mesh, parameters, random engine and time data.
Time evolution of reaction, diffusion and active transport process.
VPTissue(const CoreData &cd)
Initializing constructor.
Namespace for components of the Default model group.
Utility class to record durations in a cumulative manner.
Time evolver for diffusion and active transport.
Macro defs for debug and logging.
HousekeepGrow time step is a composite: Grow then Housekeep.
void Initialize(const CoreData &cd)
Initialize or re-initialize.
void Merge(const CumulativeRecords< U > &extra)
Merge an extra set of records (casting durations if required).
Time evolver for Housekeep plus Grow.
Header file for Exception class.
bool Check() const
Verify all pointers non-null.
Namespace for clock and timekeeping related classes.