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;
235 G4double fSmallestFraction = 1.0e-12;
239 const G4int fNoIntegrationVariables = 0;
240 const G4int fMinNoVars = 12;
241 const G4int fNoVars = 0;
244 G4int fMaxStepBase = 250;
253 G4int fStatisticsVerboseLevel = 0;
263 unsigned long fNoTotalSteps=0, fNoBadSteps=0;
264 unsigned long fNoSmallSteps=0, fNoInitialSmallSteps=0, fNoCalls=0;
265 G4double fDyerr_max=0.0, fDyerr_mx2=0.0;
266 G4double fDyerrPos_smTot=0.0, fDyerrPos_lgTot=0.0, fDyerrVel_lgTot=0.0;
267 G4double fSumH_sm=0.0, fSumH_lg=0.0;
270 G4int fVerboseLevel = 0;
276#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
virtual void GetDerivatives(const G4FieldTrack &y_curr, G4double dydx[]) const override
void SetPgrow(G4double valPg)
void PrintStatus(const G4double *StartArr, G4double xstart, const G4double *CurrentArr, G4double xcurrent, G4double requestStep, G4int subStepNo)
virtual G4double AdvanceChordLimited(G4FieldTrack &track, G4double stepMax, G4double epsStep, G4double chordDistance) override
virtual ~G4MagInt_Driver() override
void PrintStatisticsReport()
void SetHmin(G4double newval)
virtual void OnStartTracking() override
virtual void OnComputeStep() override
G4double ComputeAndSetErrcon()
virtual void SetEquationOfMotion(G4EquationOfMotion *equation) override
virtual void RenewStepperAndAdjust(G4MagIntegratorStepper *pItsStepper) override
G4double GetErrcon() const
void SetSmallestFraction(G4double val)
virtual const G4MagIntegratorStepper * GetStepper() const override
void SetSafety(G4double valS)
G4MagInt_Driver & operator=(const G4MagInt_Driver &)=delete
virtual G4bool QuickAdvance(G4FieldTrack &y_val, const G4double dydx[], G4double hstep, G4double &dchord_step, G4double &dyerr) override
G4double GetSafety() const
virtual void SetVerboseLevel(G4int newLevel) override
virtual 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)
virtual G4int GetVerboseLevel() 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)
virtual G4EquationOfMotion * GetEquationOfMotion() override
void PrintStat_Aux(const G4FieldTrack &aFieldTrack, G4double requestStep, G4double actualStep, G4int subStepNo, G4double subStepSize, G4double dotVelocities)
G4double GetSmallestFraction() const
G4double GetPgrow() const
virtual G4bool DoesReIntegrate() const override
virtual 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)