|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4MagIntegratorStepper is an abstract base class for integrator of particle's equation of motion, used in tracking in space dependent magnetic field. More...
#include <G4MagIntegratorStepper.hh>
Protected Member Functions | |
| void | SetIntegrationOrder (G4int order) |
| void | SetFSAL (G4bool flag=true) |
G4MagIntegratorStepper is an abstract base class for integrator of particle's equation of motion, used in tracking in space dependent magnetic field.
Definition at line 58 of file G4MagIntegratorStepper.hh.
| G4MagIntegratorStepper::G4MagIntegratorStepper | ( | G4EquationOfMotion * | Equation, |
| G4int | numIntegrationVariables, | ||
| G4int | numStateVariables = 12, | ||
| G4bool | isFSAL = false ) |
Constructor for G4MagIntegratorStepper.
| [in] | Equation | Pointer to the provided equation of motion. |
| [in] | numIntegrationVariables | The number of integration variables. |
| [in] | numStateVariables | The number of state variables. |
| [in] | isFSAL | Flag to indicate if it is an FSAL (First Same As Last) type driver. |
Definition at line 36 of file G4MagIntegratorStepper.cc.
Referenced by G4BogackiShampine23::G4BogackiShampine23(), G4BogackiShampine45::G4BogackiShampine45(), G4CashKarpRKF45::G4CashKarpRKF45(), G4DoLoMcPriRK34::G4DoLoMcPriRK34(), G4DormandPrince745::G4DormandPrince745(), G4DormandPrinceRK56::G4DormandPrinceRK56(), G4DormandPrinceRK78::G4DormandPrinceRK78(), G4MagHelicalStepper::G4MagHelicalStepper(), G4MagIntegratorStepper(), G4NystromRK4::G4NystromRK4(), G4QSStepper::G4QSStepper(), G4RK547FEq1::G4RK547FEq1(), G4RK547FEq2::G4RK547FEq2(), G4RK547FEq3::G4RK547FEq3(), G4RKG3_Stepper::G4RKG3_Stepper(), G4TCashKarpRKF45< T_Equation, N >::G4TCashKarpRKF45(), G4TDormandPrince45< T_Equation, N >::G4TDormandPrince45(), G4TMagErrorStepper< T_Stepper, T_Equation, N >::G4TMagErrorStepper(), G4TsitourasRK45::G4TsitourasRK45(), operator=(), and G4HelixMixedStepper::SetupStepper().
|
virtualdefault |
Default virtual Destructor.
|
delete |
Copy constructor and assignment operator not allowed.
|
pure virtual |
Estimates the maximum distance of a chord from the true path over the segment last integrated.
Implemented in G4BogackiShampine23, G4BogackiShampine45, G4CashKarpRKF45, G4ConstRK4, G4DoLoMcPriRK34, G4DormandPrince745, G4DormandPrinceRK56, G4DormandPrinceRK78, G4ExactHelixStepper, G4HelixExplicitEuler, G4HelixMixedStepper, G4MagErrorStepper, G4MagHelicalStepper, G4NystromRK4, G4QSStepper, G4RK547FEq1, G4RK547FEq2, G4RK547FEq3, G4RKG3_Stepper, G4TCashKarpRKF45< T_Equation, N >, G4TDormandPrince45< T_Equation, N >, G4TMagErrorStepper< T_Stepper, T_Equation, N >, G4TMagErrorStepper< G4TClassicalRK4< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TExplicitEuler< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleHeum< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleRunge< T_Equation, N >, T_Equation, N >, and G4TsitourasRK45.
|
inline |
Methods returning the pointer to the associated equation of motion. As some steppers (e.g. RKG3) require other methods of Eq_Rhs this function allows for access to them.
Referenced by G4DormandPrince745::GetSpecificEquation(), G4NystromRK4::SetDistanceForConstantField(), G4RKG3_Stepper::StepNoErr(), and G4RKG3_Stepper::Stepper().
|
inline |
|
inline |
Methods for counting/resetting the number of calls to RHS method(s).
|
inline |
Returns the number of variables of state variables (>= above, integration).
Referenced by G4BogackiShampine45::G4BogackiShampine45(), G4CashKarpRKF45::G4CashKarpRKF45(), G4SimpleRunge::G4SimpleRunge(), G4TSimpleRunge< T_Equation, N >::G4TSimpleRunge(), G4TsitourasRK45::G4TsitourasRK45(), G4ConstRK4::Stepper(), G4MagErrorStepper::Stepper(), and G4TMagErrorStepper< T_Stepper, T_Equation, N >::Stepper().
|
inline |
Returns the number of variables that the stepper will integrate over.
Referenced by G4ClassicalRK4::DumbStepper(), G4ExplicitEuler::DumbStepper(), G4ImplicitEuler::DumbStepper(), G4ChordFinder::G4ChordFinder(), G4BogackiShampine45::GetLastDydx(), G4DoLoMcPriRK34::Interpolate(), G4TsitourasRK45::Interpolate(), G4DormandPrince745::Interpolate4thOrder(), G4DormandPrince745::Interpolate5thOrder(), G4DormandPrinceRK56::Interpolate_high(), G4DormandPrinceRK56::Interpolate_low(), G4BogackiShampine45::InterpolateHigh(), G4DormandPrinceRK56::SetupInterpolate_high(), G4DormandPrinceRK56::SetupInterpolate_low(), G4DormandPrince745::SetupInterpolation5thOrder(), G4BogackiShampine45::SetupInterpolationHigh(), G4BogackiShampine45::Stepper(), G4CashKarpRKF45::Stepper(), G4DoLoMcPriRK34::Stepper(), G4DormandPrince745::Stepper(), G4DormandPrinceRK56::Stepper(), G4DormandPrinceRK78::Stepper(), G4MagErrorStepper::Stepper(), and G4TsitourasRK45::Stepper().
|
inline |
Replacement method - using new data member.
|
pure virtual |
Returns the order of the integrator, i.e. its error behaviour is of the order O(h^order).
Implemented in G4BogackiShampine23, G4BogackiShampine45, G4CashKarpRKF45, G4ClassicalRK4, G4ConstRK4, G4DoLoMcPriRK34, G4DormandPrince745, G4DormandPrinceRK56, G4DormandPrinceRK78, G4ExactHelixStepper, G4ExplicitEuler, G4HelixExplicitEuler, G4HelixHeum, G4HelixImplicitEuler, G4HelixMixedStepper, G4HelixSimpleRunge, G4ImplicitEuler, G4NystromRK4, G4QSStepper, G4RK547FEq1, G4RK547FEq2, G4RK547FEq3, G4RKG3_Stepper, G4SimpleHeum, G4SimpleRunge, G4TCashKarpRKF45< T_Equation, N >, G4TClassicalRK4< T_Equation, N >, G4TDormandPrince45< T_Equation, N >, G4TExplicitEuler< T_Equation, N >, G4TSimpleHeum< T_Equation, N >, G4TSimpleRunge< T_Equation, N >, and G4TsitourasRK45.
Referenced by G4MagErrorStepper::Stepper().
|
inline |
Returns true if the stepper is of FSAL (First Same As Last) type.
|
inline |
Returns true if the stepper is of QSS (Quantum State Simulation) type.
Referenced by G4ChordFinder::G4ChordFinder().
|
inline |
Simple utility function to (re)normalise 'unit spin' vector.
Referenced by G4ClassicalRK4::DumbStepper(), G4SimpleHeum::DumbStepper(), G4TClassicalRK4< T_Equation, N >::DumbStepper(), and G4TSimpleHeum< T_Equation, N >::DumbStepper().
|
inline |
Simple utility function to (re)normalise 'unit velocity' vector.
|
delete |
|
inline |
Utility method to supply the standard Evaluation of the Right Hand side of the associated equation.
Referenced by G4ClassicalRK4::DumbStepper(), G4ImplicitEuler::DumbStepper(), G4SimpleHeum::DumbStepper(), G4SimpleRunge::DumbStepper(), G4DormandPrinceRK56::SetupInterpolate_high(), G4DormandPrinceRK56::SetupInterpolate_low(), G4DormandPrince745::SetupInterpolation5thOrder(), G4BogackiShampine45::SetupInterpolationHigh(), G4BogackiShampine45::Stepper(), G4CashKarpRKF45::Stepper(), G4DoLoMcPriRK34::Stepper(), G4DormandPrince745::Stepper(), G4DormandPrinceRK56::Stepper(), G4DormandPrinceRK78::Stepper(), G4MagErrorStepper::Stepper(), and G4TsitourasRK45::Stepper().
|
inline |
Calculates 'dydx' and 'field' at point 'y'.
|
inline |
Setter for the equation of motion.
|
inlineprotected |
Referenced by G4BogackiShampine23::G4BogackiShampine23().
|
inlineprotected |
Setters for the integration order and FSAL type.
Referenced by G4BogackiShampine23::G4BogackiShampine23().
|
inline |
Referenced by G4QSStepper::G4QSStepper().
|
pure virtual |
The stepper for the Runge Kutta integration. The stepsize is fixed, with the step size given by 'h'. Integrates ODE starting values y[0 to 6]. Outputs yout[] and its estimated error yerr[].
| [in] | y | Starting values array of integration variables. |
| [in] | dydx | Derivatives array. |
| [in] | h | The given step size. |
| [out] | yout | Integration output. |
| [out] | yerr | The estimated error. |
Implemented in G4BogackiShampine23, G4BogackiShampine45, G4CashKarpRKF45, G4ConstRK4, G4DoLoMcPriRK34, G4DormandPrince745, G4DormandPrinceRK56, G4DormandPrinceRK78, G4ExactHelixStepper, G4HelixMixedStepper, G4MagErrorStepper, G4MagHelicalStepper, G4NystromRK4, G4QSStepper, G4RK547FEq1, G4RK547FEq2, G4RK547FEq3, G4RKG3_Stepper, G4TCashKarpRKF45< T_Equation, N >, G4TDormandPrince45< T_Equation, N >, G4TMagErrorStepper< T_Stepper, T_Equation, N >, G4TMagErrorStepper< G4TClassicalRK4< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TExplicitEuler< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleHeum< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleRunge< T_Equation, N >, T_Equation, N >, and G4TsitourasRK45.
|
inlinevirtual |
Returns the stepper type ID ('kUserStepper'). This function should be overriden in derived classes.
Reimplemented in G4BogackiShampine23, G4BogackiShampine45, G4CashKarpRKF45, G4ClassicalRK4, G4ConstRK4, G4DoLoMcPriRK34, G4DormandPrince745, G4DormandPrinceRK56, G4DormandPrinceRK78, G4ExactHelixStepper, G4ExplicitEuler, G4HelixExplicitEuler, G4HelixHeum, G4HelixImplicitEuler, G4HelixMixedStepper, G4HelixSimpleRunge, G4ImplicitEuler, G4NystromRK4, G4QSStepper, G4RK547FEq1, G4RK547FEq2, G4RK547FEq3, G4RKG3_Stepper, G4SimpleHeum, G4SimpleRunge, G4TCashKarpRKF45< T_Equation, N >, G4TDormandPrince45< T_Equation, N >, G4TMagErrorStepper< T_Stepper, T_Equation, N >, G4TMagErrorStepper< G4TClassicalRK4< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TExplicitEuler< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleHeum< T_Equation, N >, T_Equation, N >, G4TMagErrorStepper< G4TSimpleRunge< T_Equation, N >, T_Equation, N >, and G4TsitourasRK45.
Definition at line 152 of file G4MagIntegratorStepper.hh.