5 #include "G4BogackiShampine45.hh" 6 #include "G4CashKarpRKF45.hh" 7 #include "G4TCashKarpRKF45.hh" 8 #include "G4ClassicalRK4.hh" 9 #include "G4TClassicalRK4.hh" 10 #include "G4DormandPrince745.hh" 11 #include "G4TDormandPrince45.hh" 13 #include "G4HelixExplicitEuler.hh" 14 #include "G4HelixHeum.hh" 15 #include "G4HelixImplicitEuler.hh" 16 #include "G4HelixSimpleRunge.hh" 17 #include "G4ImplicitEuler.hh" 18 #include "G4Mag_UsualEqRhs.hh" 19 #include "G4TMagFieldEquation.hh" 21 #include "G4NystromRK4.hh" 22 #include "G4SimpleHeum.hh" 23 #include "G4SimpleRunge.hh" 24 #include "G4TsitourasRK45.hh" 27 : G4MagIntegratorStepper(eq, 6), theEquation(eq), theDelta(del) {
42 if (
ss ==
"G4ClassicalRK4")
44 else if (
ss ==
"G4TClassicalRK4")
46 else if (
ss ==
"G4NystromRK4")
48 else if (
ss ==
"G4SimpleRunge")
50 else if (
ss ==
"G4SimpleHeum")
52 else if (
ss ==
"G4CashKarpRKF45")
54 else if (
ss ==
"G4TCashKarpRKF45")
56 else if (
ss ==
"G4DormandPrince745")
58 else if (
ss ==
"G4TDormandPrince45")
59 theStepper =
new G4TDormandPrince45<G4TMagFieldEquation<sim::Field>>(
60 dynamic_cast<G4TMagFieldEquation<sim::Field> *
>(
theEquation));
61 else if (
ss ==
"CMSTDormandPrince45")
64 else if (
ss ==
"G4BogackiShampine45")
66 else if (
ss ==
"G4TsitourasRK45")
68 else if (
ss ==
"G4ImplicitEuler")
70 else if (
ss ==
"G4HelixExplicitEuler")
72 else if (
ss ==
"G4HelixImplicitEuler")
74 else if (
ss ==
"G4HelixSimpleRunge")
76 else if (
ss ==
"G4HelixHeum")
80 <<
" FieldStepper <" <<
ss <<
"> is not known, defaulting to G4ClassicalRK4 ";
Log< level::Info, true > LogVerbatim
G4int IntegratorOrder() const override
G4double DistChord() const override
FieldStepper(G4Mag_UsualEqRhs *eq, double del, const std::string &name)
G4MagIntegratorStepper * theStepper
void selectStepper(const std::string &)
G4Mag_UsualEqRhs * theEquation
Log< level::Warning, false > LogWarning
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[]) override