62 G4int noIntegrationVariables,
65 fLastStepLength(0.), fAuxStepper(nullptr)
67 const G4int numberOfVariables = noIntegrationVariables;
141 b31 = 0. , b32 = 3.0/4.0 ,
142 b41 = 2.0/9.0, b42 = 1.0/3.0 , b43 = 4.0/9.0;
144 const G4double dc1 = b41 - 7.0/24.0 , dc2 = b42 - 1.0/4.0 ,
145 dc3 = b43 - 1.0/3.0 , dc4 = - 0.125 ;
156 for(i=0;i<numberOfVariables;i++)
162 for(i=0;i<numberOfVariables;i++)
164 yTemp[i] =
yIn[i] + b21*Step*DyDx[i] ;
168 for(i=0;i<numberOfVariables;i++)
170 yTemp[i] =
yIn[i] + Step*(b31*DyDx[i] + b32*
ak2[i]) ;
174 for(i=0;i<numberOfVariables;i++)
176 yOut[i] =
yIn[i] + Step*(b41*DyDx[i] + b42*
ak2[i] + b43*
ak3[i]) ;
183 for(i=0;i<numberOfVariables;i++)
185 yErr[i] = Step*(dc1*DyDx[i] + dc2*
ak2[i] + dc3*
ak3[i] +
222 if (initialPoint != finalPoint)
225 distChord = distLine;
229 distChord = (midPoint-initialPoint).mag();
T max(const T t1, const T t2)
brief Return the largest of the two arguments
CLHEP::Hep3Vector G4ThreeVector
G4double * fLastInitialVector
static G4double Distline(const G4ThreeVector &OtherPnt, const G4ThreeVector &LinePntA, const G4ThreeVector &LinePntB)
G4double * pseudoDydx_for_DistChord
G4double * fLastFinalVector
G4double DistChord() const
G4BogackiShampine23 * fAuxStepper
G4int GetNumberOfStateVariables() const
void RightHandSide(const double y[], double dydx[]) const
void SetIntegrationOrder(int order)
G4int GetNumberOfVariables() const
void Stepper(const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])
void SetFSAL(bool flag=true)
G4BogackiShampine23(G4EquationOfMotion *EqRhs, G4int numberOfVariables=6, G4bool primary=true)