VPTissue Reference Manual
Grow.h
Go to the documentation of this file.
1 #ifndef SIMPT_DEFAULT_TIME_EVOLVER_GROW_H_INCLUDED
2 #define SIMPT_DEFAULT_TIME_EVOLVER_GROW_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 #include "sim/CoreData.h"
23 #include "sim/SimPhase.h"
24 #include "sim/SimTimingTraits.h"
25 
26 #include <functional>
27 
28 namespace SimPT_Default {
29 namespace TimeEvolver {
30 
31 using namespace SimPT_Sim;
32 
36 class Grow : public SimTimingTraits
37 {
38 public:
40  Grow(const CoreData& cd);
41 
43  void Initialize(const CoreData& cd);
44 
46  std::tuple<SimTimingTraits::CumulativeTimings, bool>
47  operator()(double time_slice = 0.0, SimPhase phase = SimPhase::NONE);
48 
49 private:
50  CoreData m_cd;
51  double m_mc_cell_step_size;
52  double m_mc_abs_tolerance;
53  unsigned int m_mc_retry_limit;
54  unsigned int m_mc_sliding_window;
55  double m_mc_step_size;
56  unsigned int m_mc_sweep_limit;
57  double m_mc_temperature;
58  bool m_stationarity_check;
59 
60 private:
61  std::function<bool (double, double)> m_within_tolerance;
62 };
63 
64 } // namespace
65 } // namespace
66 
67 #endif // end-of-include-guard
Core data with mesh, parameters, random engine and time data.
Definition: CoreData.h:38
Core data used during model execution.
Types related to timekeeping.
Definition: ClockTraits.h:36
Namespace for components of the Default model group.
Namespace for the core simulator.
Declaration of Timekeeper.
Growth and division time evolution algorithm.
Definition: Grow.h:36
SimPhase enum class.