36#ifndef G4TSimpleRunge_HH
37#define G4TSimpleRunge_HH
47template <
class T_Equation,
int N>
57 EqRhs, numberOfVariables)
58 , fNumberOfVariables(numberOfVariables)
59 , fEquation_Rhs(EqRhs)
71 fEquation_Rhs->T_Equation::RightHandSide(y, dydx);
79 yTemp[7] = yOut[7] = yIn[7];
81 for(
G4int i = 0; i <
N; ++i)
83 yTemp[i] = yIn[i] + 0.5 * h * dydx[i];
88 for(
G4int i = 0; i <
N; ++i)
90 yOut[i] = yIn[i] + h * (dydxTemp[i]);
98 G4int fNumberOfVariables;
102 T_Equation* fEquation_Rhs;
G4int GetNumberOfStateVariables() const
G4TMagErrorStepper(T_Equation *EqRhs, G4int numberOfVariables, G4int numStateVariables=12)
static constexpr double IntegratorCorrection
G4int IntegratorOrder() const
void DumbStepper(const G4double yIn[], const G4double dydx[], G4double h, G4double yOut[])
~G4TSimpleRunge()=default
G4TSimpleRunge(T_Equation *EqRhs, G4int numberOfVariables=6)
void RightHandSide(G4double y[], G4double dydx[])