37#ifndef G4MAGINT_DRIVER_HH
38#define G4MAGINT_DRIVER_HH
51 G4int numberOfComponents = 6,
52 G4int statisticsVerbosity = 0);
85 void StreamInfo( std::ostream& os )
const override;
233 G4double fSmallestFraction = 1.0e-12;
237 const G4int fNoIntegrationVariables = 0;
238 const G4int fMinNoVars = 12;
239 const G4int fNoVars = 0;
242 G4int fMaxStepBase = 250;
251 G4int fStatisticsVerboseLevel = 0;
261 unsigned long fNoTotalSteps=0, fNoBadSteps=0;
262 unsigned long fNoSmallSteps=0, fNoInitialSmallSteps=0, fNoCalls=0;
263 G4double fDyerr_max=0.0, fDyerr_mx2=0.0;
264 G4double fDyerrPos_smTot=0.0, fDyerrPos_lgTot=0.0, fDyerrVel_lgTot=0.0;
265 G4double fSumH_sm=0.0, fSumH_lg=0.0;
268 G4int fVerboseLevel = 0;
274#include "G4MagIntegratorDriver.icc"
G4double GetPshrnk() const
void SetPshrnk(G4double valPs)
G4double ComputeNewStepSize_WithinLimits(G4double errMaxNorm, G4double hstepCurrent)
void SetMaxNoSteps(G4int val)
G4MagInt_Driver(const G4MagInt_Driver &)=delete
void SetPgrow(G4double valPg)
void OnStartTracking() override
G4MagInt_Driver(G4double hminimum, G4MagIntegratorStepper *pItsStepper, G4int numberOfComponents=6, G4int statisticsVerbosity=0)
void PrintStatus(const G4double *StartArr, G4double xstart, const G4double *CurrentArr, G4double xcurrent, G4double requestStep, G4int subStepNo)
~G4MagInt_Driver() override
void PrintStatisticsReport()
void SetHmin(G4double newval)
void SetVerboseLevel(G4int newLevel) override
G4double ComputeAndSetErrcon()
void SetEquationOfMotion(G4EquationOfMotion *equation) override
void RenewStepperAndAdjust(G4MagIntegratorStepper *pItsStepper) override
G4double GetErrcon() const
void SetSmallestFraction(G4double val)
const G4MagIntegratorStepper * GetStepper() const override
void SetSafety(G4double valS)
void OnComputeStep(const G4FieldTrack *=nullptr) override
G4MagInt_Driver & operator=(const G4MagInt_Driver &)=delete
G4bool QuickAdvance(G4FieldTrack &y_val, const G4double dydx[], G4double hstep, G4double &dchord_step, G4double &dyerr) override
G4double GetSafety() const
G4double AdvanceChordLimited(G4FieldTrack &track, G4double stepMax, G4double epsStep, G4double chordDistance) override
G4bool AccurateAdvance(G4FieldTrack &y_current, G4double hstep, G4double eps, G4double hinitial=0.0) override
void WarnSmallStepSize(G4double hnext, G4double hstep, G4double h, G4double xDone, G4int noSteps)
void GetDerivatives(const G4FieldTrack &y_curr, G4double dydx[]) const override
void WarnEndPointTooFar(G4double endPointDist, G4double hStepSize, G4double epsilonRelative, G4int debugFlag)
G4int GetMaxNoSteps() const
void SetErrcon(G4double valEc)
void OneGoodStep(G4double ystart[], const G4double dydx[], G4double &x, G4double htry, G4double eps, G4double &hdid, G4double &hnext)
G4double ComputeNewStepSize_WithoutReductionLimit(G4double errMaxNorm, G4double hstepCurrent)
G4int GetVerboseLevel() const override
G4EquationOfMotion * GetEquationOfMotion() override
void PrintStat_Aux(const G4FieldTrack &aFieldTrack, G4double requestStep, G4double actualStep, G4int subStepNo, G4double subStepSize, G4double dotVelocities)
G4double GetSmallestFraction() const
G4bool DoesReIntegrate() const override
G4double GetPgrow() const
G4double ComputeNewStepSize(G4double errMaxNorm, G4double hstepCurrent) override
void WarnTooManyStep(G4double x1start, G4double x2end, G4double xCurrent)
void StreamInfo(std::ostream &os) const override
void ReSetParameters(G4double new_safety=0.9)