Geant4-11
Public Member Functions | Protected Member Functions | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes
G4FSALIntegrationDriver< T > Class Template Reference

#include <G4FSALIntegrationDriver.hh>

Inheritance diagram for G4FSALIntegrationDriver< T >:
G4RKIntegrationDriver< T > G4ChordFinderDelegate< G4FSALIntegrationDriver< T > > G4VIntegrationDriver

Public Member Functions

virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0.0) override
 
virtual G4double AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override
 
G4double AdvanceChordLimitedImpl (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance)
 
virtual G4double ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent) override final
 
virtual G4bool DoesReIntegrate () const override
 
 G4FSALIntegrationDriver (const G4FSALIntegrationDriver &)=delete
 
 G4FSALIntegrationDriver (G4double hminimum, T *stepper, G4int numberOfComponents=6, G4int statisticsVerbosity=1)
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[]) const override
 
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[], G4double field[]) const override
 
virtual G4EquationOfMotionGetEquationOfMotion () override
 
G4double GetFirstFraction ()
 
G4double GetFractionLast ()
 
G4double GetFractionNextEstimate ()
 
G4double GetLastStepEstimateUnc ()
 
G4int GetMaxNoSteps () const
 
G4double GetMinimumStep () const
 
G4int GetNoCalls ()
 
G4int GetNoMaxTrials ()
 
G4int GetNoTrials ()
 
G4double GetPgrow () const
 
G4double GetPshrnk () const
 
G4double GetSafety () const
 
G4double GetSmallestFraction () const
 
virtual const T * GetStepper () const override
 
virtual T * GetStepper () override
 
virtual G4int GetVerboseLevel () const override
 
virtual void OnComputeStep () override
 
void OneGoodStep (G4double y[], G4double dydx[], G4double &curveLength, G4double htry, G4double eps, G4double &hdid, G4double &hnext)
 
virtual void OnStartTracking () override
 
G4FSALIntegrationDriveroperator= (const G4FSALIntegrationDriver &)=delete
 
virtual G4bool QuickAdvance (G4FieldTrack &fieldTrack, const G4double dydx[], G4double hstep, G4double &dchord_step, G4double &dyerr) override
 
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *stepper) override
 
void ReSetParameters (G4double safety=0.9)
 
void ResetStepEstimate ()
 
virtual void SetEquationOfMotion (G4EquationOfMotion *equation) override
 
void SetFirstFraction (G4double fractFirst)
 
void SetFractions_Last_Next (G4double fractLast=0.90, G4double fractNext=0.95)
 
void SetLastStepEstimateUnc (G4double stepEst)
 
void SetMaxNoSteps (G4int val)
 
void SetMinimumStep (G4double newval)
 
void SetSafety (G4double valS)
 
void SetSmallestFraction (G4double val)
 
virtual void SetVerboseLevel (G4int newLevel) override
 
void StreamDelegateInfo (std::ostream &os) const
 
virtual void StreamInfo (std::ostream &os) const override
 
void TestChordPrint (G4int noTrials, G4int lastStepTrial, G4double dChordStep, G4double fDeltaChord, G4double nextStepTrial)
 
virtual ~G4FSALIntegrationDriver () override
 

Protected Member Functions

G4double GrowStepSize (G4double h, G4double error) const
 
G4double GrowStepSize2 (G4double h, G4double error2) const
 
void IncrementQuickAdvanceCalls ()
 
G4double ShrinkStepSize (G4double h, G4double error) const
 
G4double ShrinkStepSize2 (G4double h, G4double error2) const
 
void UpdateErrorConstraints ()
 

Static Protected Attributes

static constexpr G4double max_stepping_decrease = 0.1
 
static constexpr G4double max_stepping_increase = 5
 

Private Types

using Base = G4RKIntegrationDriver< T >
 
using ChordFinderDelegate = G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >
 

Private Member Functions

void AccumulateStatistics (G4int noTrials)
 
void CheckStep (const G4ThreeVector &posIn, const G4ThreeVector &posOut, G4double hdid)
 
G4double FindNextChord (const G4FieldTrack &yStart, G4double stepMax, G4double epsStep, G4double chordDistance, G4FieldTrack &yEnd, G4double &dyErrPos, G4double &pStepForAccuracy)
 
G4FSALIntegrationDriver< T > & GetDriver ()
 
G4double NewStep (G4double stepTrialOld, G4double dChordStep, G4double fDeltaChord, G4double &stepEstimate_Unconstrained)
 
void PrintStatistics ()
 
void RenewStepperAndAdjustImpl (T *stepper)
 

Private Attributes

G4double errorConstraintGrow
 
G4double errorConstraintShrink
 
G4double fFirstFraction
 
G4double fFractionLast
 
G4double fFractionNextEstimate
 
G4double fLastStepEstimate_Unconstrained
 
G4int fMaxNoSteps
 
G4int fMaxStepBase
 
G4int fmaxTrials
 
G4double fMinimumStep
 
G4int fNoAccurateAdvanceBadSteps
 
G4int fNoAccurateAdvanceCalls
 
G4int fNoAccurateAdvanceGoodSteps
 
G4int fNoCalls
 
G4int fNoQuickAvanceCalls
 
G4double fSmallestFraction
 
G4int fTotalNoTrials
 
G4int fVerboseLevel
 
G4double pgrow
 
T * pIntStepper = nullptr
 
G4double pshrnk
 
G4double safety
 

Detailed Description

template<class T>
class G4FSALIntegrationDriver< T >

Definition at line 41 of file G4FSALIntegrationDriver.hh.

Member Typedef Documentation

◆ Base

template<class T >
using G4FSALIntegrationDriver< T >::Base = G4RKIntegrationDriver<T>
private

Definition at line 139 of file G4FSALIntegrationDriver.hh.

◆ ChordFinderDelegate

template<class T >
using G4FSALIntegrationDriver< T >::ChordFinderDelegate = G4ChordFinderDelegate<G4FSALIntegrationDriver<T> >
private

Definition at line 140 of file G4FSALIntegrationDriver.hh.

Constructor & Destructor Documentation

◆ G4FSALIntegrationDriver() [1/2]

template<class T >
G4FSALIntegrationDriver< T >::G4FSALIntegrationDriver ( G4double  hminimum,
T *  stepper,
G4int  numberOfComponents = 6,
G4int  statisticsVerbosity = 1 
)

◆ ~G4FSALIntegrationDriver()

template<class T >
virtual G4FSALIntegrationDriver< T >::~G4FSALIntegrationDriver ( )
overridevirtual

◆ G4FSALIntegrationDriver() [2/2]

template<class T >
G4FSALIntegrationDriver< T >::G4FSALIntegrationDriver ( const G4FSALIntegrationDriver< T > &  )
delete

Member Function Documentation

◆ AccumulateStatistics()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::AccumulateStatistics ( G4int  noTrials)
privateinherited

◆ AccurateAdvance()

template<class T >
virtual G4bool G4FSALIntegrationDriver< T >::AccurateAdvance ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  hinitial = 0.0 
)
overridevirtual

Implements G4VIntegrationDriver.

◆ AdvanceChordLimited()

template<class T >
virtual G4double G4FSALIntegrationDriver< T >::AdvanceChordLimited ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
overridevirtual

Implements G4VIntegrationDriver.

◆ AdvanceChordLimitedImpl()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::AdvanceChordLimitedImpl ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
inherited

◆ CheckStep()

template<class T >
void G4FSALIntegrationDriver< T >::CheckStep ( const G4ThreeVector posIn,
const G4ThreeVector posOut,
G4double  hdid 
)
private

◆ ComputeNewStepSize()

template<class T >
virtual G4double G4RKIntegrationDriver< T >::ComputeNewStepSize ( G4double  errMaxNorm,
G4double  hstepCurrent 
)
finaloverridevirtualinherited

Implements G4VIntegrationDriver.

◆ DoesReIntegrate()

template<class T >
virtual G4bool G4FSALIntegrationDriver< T >::DoesReIntegrate ( ) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 69 of file G4FSALIntegrationDriver.hh.

69{ return true; }

◆ FindNextChord()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::FindNextChord ( const G4FieldTrack yStart,
G4double  stepMax,
G4double  epsStep,
G4double  chordDistance,
G4FieldTrack yEnd,
G4double dyErrPos,
G4double pStepForAccuracy 
)
privateinherited

◆ GetDerivatives() [1/2]

template<class T >
virtual void G4RKIntegrationDriver< T >::GetDerivatives ( const G4FieldTrack track,
G4double  dydx[] 
) const
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ GetDerivatives() [2/2]

template<class T >
virtual void G4RKIntegrationDriver< T >::GetDerivatives ( const G4FieldTrack track,
G4double  dydx[],
G4double  field[] 
) const
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ GetDriver()

G4FSALIntegrationDriver< T > & G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetDriver ( )
privateinherited

◆ GetEquationOfMotion()

template<class T >
virtual G4EquationOfMotion * G4RKIntegrationDriver< T >::GetEquationOfMotion ( )
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ GetFirstFraction()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetFirstFraction ( )
inherited

◆ GetFractionLast()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetFractionLast ( )
inherited

◆ GetFractionNextEstimate()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetFractionNextEstimate ( )
inherited

◆ GetLastStepEstimateUnc()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetLastStepEstimateUnc ( )
inherited

◆ GetMaxNoSteps()

template<class T >
G4int G4RKIntegrationDriver< T >::GetMaxNoSteps ( ) const
inherited

◆ GetMinimumStep()

template<class T >
G4double G4FSALIntegrationDriver< T >::GetMinimumStep ( ) const

◆ GetNoCalls()

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetNoCalls ( )
inherited

◆ GetNoMaxTrials()

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetNoMaxTrials ( )
inherited

◆ GetNoTrials()

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::GetNoTrials ( )
inherited

◆ GetPgrow()

template<class T >
G4double G4RKIntegrationDriver< T >::GetPgrow ( ) const
inherited

◆ GetPshrnk()

template<class T >
G4double G4RKIntegrationDriver< T >::GetPshrnk ( ) const
inherited

◆ GetSafety()

template<class T >
G4double G4RKIntegrationDriver< T >::GetSafety ( ) const
inherited

◆ GetSmallestFraction()

template<class T >
G4double G4FSALIntegrationDriver< T >::GetSmallestFraction ( ) const

◆ GetStepper() [1/2]

template<class T >
virtual const T * G4RKIntegrationDriver< T >::GetStepper ( ) const
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ GetStepper() [2/2]

template<class T >
virtual T * G4RKIntegrationDriver< T >::GetStepper ( )
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ GetVerboseLevel()

template<class T >
virtual G4int G4FSALIntegrationDriver< T >::GetVerboseLevel ( ) const
overridevirtual

Implements G4VIntegrationDriver.

◆ GrowStepSize()

template<class T >
G4double G4RKIntegrationDriver< T >::GrowStepSize ( G4double  h,
G4double  error 
) const
protectedinherited

◆ GrowStepSize2()

template<class T >
G4double G4RKIntegrationDriver< T >::GrowStepSize2 ( G4double  h,
G4double  error2 
) const
protectedinherited

◆ IncrementQuickAdvanceCalls()

template<class T >
void G4FSALIntegrationDriver< T >::IncrementQuickAdvanceCalls ( )
protected

◆ NewStep()

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::NewStep ( G4double  stepTrialOld,
G4double  dChordStep,
G4double  fDeltaChord,
G4double stepEstimate_Unconstrained 
)
privateinherited

◆ OnComputeStep()

template<class T >
virtual void G4FSALIntegrationDriver< T >::OnComputeStep ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 67 of file G4FSALIntegrationDriver.hh.

67{}

◆ OneGoodStep()

template<class T >
void G4FSALIntegrationDriver< T >::OneGoodStep ( G4double  y[],
G4double  dydx[],
G4double curveLength,
G4double  htry,
G4double  eps,
G4double hdid,
G4double hnext 
)

◆ OnStartTracking()

template<class T >
virtual void G4FSALIntegrationDriver< T >::OnStartTracking ( )
inlineoverridevirtual

◆ operator=()

template<class T >
G4FSALIntegrationDriver & G4FSALIntegrationDriver< T >::operator= ( const G4FSALIntegrationDriver< T > &  )
delete

◆ PrintStatistics()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::PrintStatistics ( )
privateinherited

◆ QuickAdvance()

template<class T >
virtual G4bool G4FSALIntegrationDriver< T >::QuickAdvance ( G4FieldTrack fieldTrack,
const G4double  dydx[],
G4double  hstep,
G4double dchord_step,
G4double dyerr 
)
overridevirtual

Reimplemented from G4VIntegrationDriver.

◆ RenewStepperAndAdjust()

template<class T >
virtual void G4RKIntegrationDriver< T >::RenewStepperAndAdjust ( G4MagIntegratorStepper stepper)
overridevirtualinherited

Reimplemented from G4VIntegrationDriver.

◆ RenewStepperAndAdjustImpl()

template<class T >
void G4RKIntegrationDriver< T >::RenewStepperAndAdjustImpl ( T *  stepper)
inlineprivateinherited

◆ ReSetParameters()

template<class T >
void G4RKIntegrationDriver< T >::ReSetParameters ( G4double  safety = 0.9)
inherited

◆ ResetStepEstimate()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::ResetStepEstimate ( )
inherited

◆ SetEquationOfMotion()

template<class T >
virtual void G4RKIntegrationDriver< T >::SetEquationOfMotion ( G4EquationOfMotion equation)
overridevirtualinherited

Implements G4VIntegrationDriver.

◆ SetFirstFraction()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::SetFirstFraction ( G4double  fractFirst)
inherited

◆ SetFractions_Last_Next()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::SetFractions_Last_Next ( G4double  fractLast = 0.90,
G4double  fractNext = 0.95 
)
inherited

◆ SetLastStepEstimateUnc()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::SetLastStepEstimateUnc ( G4double  stepEst)
inherited

◆ SetMaxNoSteps()

template<class T >
void G4RKIntegrationDriver< T >::SetMaxNoSteps ( G4int  val)
inherited

◆ SetMinimumStep()

template<class T >
void G4FSALIntegrationDriver< T >::SetMinimumStep ( G4double  newval)

◆ SetSafety()

template<class T >
void G4RKIntegrationDriver< T >::SetSafety ( G4double  valS)
inherited

◆ SetSmallestFraction()

template<class T >
void G4FSALIntegrationDriver< T >::SetSmallestFraction ( G4double  val)

◆ SetVerboseLevel()

template<class T >
virtual void G4FSALIntegrationDriver< T >::SetVerboseLevel ( G4int  newLevel)
overridevirtual

Implements G4VIntegrationDriver.

◆ ShrinkStepSize()

template<class T >
G4double G4RKIntegrationDriver< T >::ShrinkStepSize ( G4double  h,
G4double  error 
) const
protectedinherited

◆ ShrinkStepSize2()

template<class T >
G4double G4RKIntegrationDriver< T >::ShrinkStepSize2 ( G4double  h,
G4double  error2 
) const
protectedinherited

◆ StreamDelegateInfo()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::StreamDelegateInfo ( std::ostream &  os) const
inherited

◆ StreamInfo()

template<class T >
virtual void G4FSALIntegrationDriver< T >::StreamInfo ( std::ostream &  os) const
overridevirtual

Reimplemented from G4RKIntegrationDriver< T >.

◆ TestChordPrint()

void G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::TestChordPrint ( G4int  noTrials,
G4int  lastStepTrial,
G4double  dChordStep,
G4double  fDeltaChord,
G4double  nextStepTrial 
)
inherited

◆ UpdateErrorConstraints()

template<class T >
void G4RKIntegrationDriver< T >::UpdateErrorConstraints ( )
protectedinherited

Field Documentation

◆ errorConstraintGrow

template<class T >
G4double G4RKIntegrationDriver< T >::errorConstraintGrow
privateinherited

Definition at line 122 of file G4RKIntegrationDriver.hh.

◆ errorConstraintShrink

template<class T >
G4double G4RKIntegrationDriver< T >::errorConstraintShrink
privateinherited

Definition at line 121 of file G4RKIntegrationDriver.hh.

◆ fFirstFraction

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fFirstFraction
privateinherited

Definition at line 101 of file G4ChordFinderDelegate.hh.

◆ fFractionLast

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fFractionLast
privateinherited

Definition at line 102 of file G4ChordFinderDelegate.hh.

◆ fFractionNextEstimate

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fFractionNextEstimate
privateinherited

Definition at line 103 of file G4ChordFinderDelegate.hh.

◆ fLastStepEstimate_Unconstrained

G4double G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fLastStepEstimate_Unconstrained
privateinherited

Definition at line 104 of file G4ChordFinderDelegate.hh.

◆ fMaxNoSteps

template<class T >
G4int G4RKIntegrationDriver< T >::fMaxNoSteps
privateinherited

Definition at line 107 of file G4RKIntegrationDriver.hh.

◆ fMaxStepBase

template<class T >
G4int G4RKIntegrationDriver< T >::fMaxStepBase
privateinherited

Definition at line 109 of file G4RKIntegrationDriver.hh.

◆ fmaxTrials

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fmaxTrials
privateinherited

Definition at line 108 of file G4ChordFinderDelegate.hh.

◆ fMinimumStep

template<class T >
G4double G4FSALIntegrationDriver< T >::fMinimumStep
private

Definition at line 121 of file G4FSALIntegrationDriver.hh.

◆ fNoAccurateAdvanceBadSteps

template<class T >
G4int G4FSALIntegrationDriver< T >::fNoAccurateAdvanceBadSteps
private

Definition at line 136 of file G4FSALIntegrationDriver.hh.

◆ fNoAccurateAdvanceCalls

template<class T >
G4int G4FSALIntegrationDriver< T >::fNoAccurateAdvanceCalls
private

Definition at line 135 of file G4FSALIntegrationDriver.hh.

◆ fNoAccurateAdvanceGoodSteps

template<class T >
G4int G4FSALIntegrationDriver< T >::fNoAccurateAdvanceGoodSteps
private

Definition at line 137 of file G4FSALIntegrationDriver.hh.

◆ fNoCalls

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fNoCalls
privateinherited

Definition at line 107 of file G4ChordFinderDelegate.hh.

◆ fNoQuickAvanceCalls

template<class T >
G4int G4FSALIntegrationDriver< T >::fNoQuickAvanceCalls
private

Definition at line 134 of file G4FSALIntegrationDriver.hh.

◆ fSmallestFraction

template<class T >
G4double G4FSALIntegrationDriver< T >::fSmallestFraction
private

Definition at line 124 of file G4FSALIntegrationDriver.hh.

◆ fTotalNoTrials

G4int G4ChordFinderDelegate< G4FSALIntegrationDriver< T > >::fTotalNoTrials
privateinherited

Definition at line 106 of file G4ChordFinderDelegate.hh.

◆ fVerboseLevel

template<class T >
G4int G4FSALIntegrationDriver< T >::fVerboseLevel
private

Definition at line 130 of file G4FSALIntegrationDriver.hh.

◆ max_stepping_decrease

constexpr G4double G4VIntegrationDriver::max_stepping_decrease = 0.1
staticconstexprprotectedinherited

◆ max_stepping_increase

constexpr G4double G4VIntegrationDriver::max_stepping_increase = 5
staticconstexprprotectedinherited

◆ pgrow

template<class T >
G4double G4RKIntegrationDriver< T >::pgrow
privateinherited

Definition at line 117 of file G4RKIntegrationDriver.hh.

◆ pIntStepper

template<class T >
T* G4RKIntegrationDriver< T >::pIntStepper = nullptr
privateinherited

Definition at line 124 of file G4RKIntegrationDriver.hh.

◆ pshrnk

template<class T >
G4double G4RKIntegrationDriver< T >::pshrnk
privateinherited

Definition at line 116 of file G4RKIntegrationDriver.hh.

◆ safety

template<class T >
G4double G4RKIntegrationDriver< T >::safety
privateinherited

Definition at line 115 of file G4RKIntegrationDriver.hh.


The documentation for this class was generated from the following file: