15 #ifndef CORE_BEHAVIOR_GENE_REGULATION_H_
16 #define CORE_BEHAVIOR_GENE_REGULATION_H_
45 Base::Initialize(event);
47 auto* other =
event.existing_behavior;
53 "other was not of type GeneRegulation");
67 real_t initial_concentration) {
78 auto* param = sim->GetParam();
79 auto* scheduler = sim->GetScheduler();
81 const auto& timestep = param->simulation_time_step;
82 uint64_t simulated_steps = scheduler->GetSimulatedSteps();
83 const auto absolute_time = simulated_steps * timestep;
85 if (param->numerical_ode_solver == Param::NumericalODESolver::kEuler) {
91 }
else if (param->numerical_ode_solver == Param::NumericalODESolver::kRK4) {
94 real_t interval_midpoint = absolute_time + timestep / 2.0;
95 real_t interval_endpoint = absolute_time + timestep;
122 #endif // CORE_BEHAVIOR_GENE_REGULATION_H_