flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
flexiblesusy::runge_kutta Namespace Reference

Namespaces

namespace  anonymous_namespace{rk.hpp}
 

Classes

class  Basic_rk_integrator
 Class for integrating a system of first order ODEs. More...
 
class  Basic_rk_stepper
 Class to carry out a 5th order Runge-Kutta step. More...
 
class  RKF_integrator
 Class for integrating ODEs using a Runge-Kutta-Fehlberg method. More...
 

Functions

template<typename ArrayType , typename Derivs , typename Stepper = decltype(runge_kutta::odeStepper<ArrayType,Derivs>)>
void integrateOdes (ArrayType &ystart, double from, double to, double eps, double h1, double hmin, Derivs derivs, Stepper rkqs=runge_kutta::odeStepper< ArrayType, Derivs >, int max_steps=400)
 Organises integration of 1st order system of ODEs. More...
 
template<typename ArrayType , typename Derivs >
double odeStepper (ArrayType &y, const ArrayType &dydx, double &x, double htry, double eps, const ArrayType &yscal, Derivs derivs, int &max_step_dir)
 organises the variable step-size for Runge-Kutta evolution More...
 
template<typename ArrayType , typename Derivs >
void rungeKuttaStep (const ArrayType &y, const ArrayType &dydx, double x, double h, ArrayType &yout, ArrayType &yerr, Derivs derivs)
 

Function Documentation

◆ integrateOdes()

template<typename ArrayType , typename Derivs , typename Stepper = decltype(runge_kutta::odeStepper<ArrayType,Derivs>)>
void flexiblesusy::runge_kutta::integrateOdes ( ArrayType &  ystart,
double  from,
double  to,
double  eps,
double  h1,
double  hmin,
Derivs  derivs,
Stepper  rkqs = runge_kutta::odeStepper<ArrayType,Derivs>,
int  max_steps = 400 
)

Organises integration of 1st order system of ODEs.

Definition at line 158 of file rk.hpp.

References ERROR, flexiblesusy::sign(), and SLHAea::to().

Referenced by flexiblesusy::Lattice_RKRGE::evolve_to(), and flexiblesusy::runge_kutta::Basic_rk_integrator< StateType, Derivs, Stepper >::operator()().

◆ odeStepper()

template<typename ArrayType , typename Derivs >
double flexiblesusy::runge_kutta::odeStepper ( ArrayType &  y,
const ArrayType &  dydx,
double &  x,
double  htry,
double  eps,
const ArrayType &  yscal,
Derivs  derivs,
int &  max_step_dir 
)

organises the variable step-size for Runge-Kutta evolution

Definition at line 107 of file rk.hpp.

References ERROR, and rungeKuttaStep().

Referenced by flexiblesusy::Lattice_RKRGE::evolve_to(), and flexiblesusy::runge_kutta::Basic_rk_stepper< StateType, Derivs >::step().

◆ rungeKuttaStep()

template<typename ArrayType , typename Derivs >
void flexiblesusy::runge_kutta::rungeKuttaStep ( const ArrayType &  y,
const ArrayType &  dydx,
double  x,
double  h,
ArrayType &  yout,
ArrayType &  yerr,
Derivs  derivs 
)

A single step of Runge Kutta (5th order), input: y and dydx (derivative of y), x is independent variable. yout is value after step. derivs is a user-supplied function

Definition at line 52 of file rk.hpp.

Referenced by odeStepper(), and flexiblesusy::runge_kutta::Basic_rk_stepper< StateType, Derivs >::runge_kutta_step().