diff --git a/CaseStudies/noPCM/src/Cpp/Calculations.cpp b/CaseStudies/noPCM/src/Cpp/Calculations.cpp index 07732ef3..2b1de13b 100644 --- a/CaseStudies/noPCM/src/Cpp/Calculations.cpp +++ b/CaseStudies/noPCM/src/Cpp/Calculations.cpp @@ -10,9 +10,11 @@ using std::vector; vector func_T_W(InputParameters inParams) { NoPCMODE ode = NoPCMODE(inParams.T_C, inParams.tau_W); - vector T_W(0); + vector T_W; vector init {inParams.T_init}; - boost::numeric::odeint::integrate_const(boost::numeric::odeint::make_controlled(inParams.A_tol, inParams.R_tol, boost::numeric::odeint::runge_kutta_dopri5>()), ode, init, 0.0, inParams.t_final, inParams.t_step, Populate_T_W(T_W)); + boost::numeric::odeint::runge_kutta_dopri5> rk = boost::numeric::odeint::runge_kutta_dopri5>(); + auto stepper = boost::numeric::odeint::make_controlled(inParams.A_tol, inParams.R_tol, rk); + boost::numeric::odeint::integrate_const(stepper, ode, init, 0.0, inParams.t_final, inParams.t_step, Populate_T_W(T_W)); return T_W; } \ No newline at end of file diff --git a/CaseStudies/noPCM/src/Cpp/NoPCMODE.cpp b/CaseStudies/noPCM/src/Cpp/NoPCMODE.cpp index 0dd735f2..f7d99065 100644 --- a/CaseStudies/noPCM/src/Cpp/NoPCMODE.cpp +++ b/CaseStudies/noPCM/src/Cpp/NoPCMODE.cpp @@ -9,12 +9,12 @@ NoPCMODE::NoPCMODE(double T_C, double tau_W) { this->tau_W = tau_W; } -void NoPCMODE::operator()(vector T_W , vector &dT_Wdt , double t) { +void NoPCMODE::operator()(vector T_W, vector &dT_Wdt, double t) { dT_Wdt.at(0) = (1/tau_W) * (T_C - T_W.at(0)); } Populate_T_W::Populate_T_W(vector &T_W) : T_W(T_W) {} -void Populate_T_W::operator() (vector &T_W , double t) { - this->T_W.push_back(T_W.at(0)); +void Populate_T_W::operator() (vector &y , double t) { + this->T_W.push_back(y.at(0)); } \ No newline at end of file diff --git a/CaseStudies/noPCM/src/Cpp/NoPCMODE.hpp b/CaseStudies/noPCM/src/Cpp/NoPCMODE.hpp index f90aee98..e119a5b2 100644 --- a/CaseStudies/noPCM/src/Cpp/NoPCMODE.hpp +++ b/CaseStudies/noPCM/src/Cpp/NoPCMODE.hpp @@ -25,7 +25,7 @@ class Populate_T_W { Populate_T_W(vector &T_W); - void operator() (vector &T_W, double t); + void operator() (vector &y, double t); }; #endif \ No newline at end of file