Geant4-11
Public Member Functions | Protected Member Functions | Static Protected Attributes | Private Member Functions | Private Attributes
G4RKIntegrationDriver< T > Class Template Referenceabstract

#include <G4RKIntegrationDriver.hh>

Inheritance diagram for G4RKIntegrationDriver< T >:
G4VIntegrationDriver G4FSALIntegrationDriver< T > G4IntegrationDriver< T > G4InterpolationDriver< T >

Public Member Functions

virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0)=0
 
virtual G4double AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance)=0
 
virtual G4double ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent) override final
 
virtual G4bool DoesReIntegrate () const =0
 
 G4RKIntegrationDriver (const G4RKIntegrationDriver &)=delete
 
 G4RKIntegrationDriver (T *stepper)
 
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
 
G4int GetMaxNoSteps () const
 
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 =0
 
virtual void OnComputeStep ()=0
 
virtual void OnStartTracking ()=0
 
G4RKIntegrationDriveroperator= (const G4RKIntegrationDriver &)=delete
 
virtual G4bool QuickAdvance (G4FieldTrack &, const G4double[], G4double, G4double &, G4double &)
 
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *stepper) override
 
void ReSetParameters (G4double safety=0.9)
 
virtual void SetEquationOfMotion (G4EquationOfMotion *equation) override
 
void SetMaxNoSteps (G4int val)
 
void SetSafety (G4double valS)
 
void SetSmallestFraction (G4double val)
 
virtual void SetVerboseLevel (G4int level)=0
 
virtual void StreamInfo (std::ostream &os) const override
 

Protected Member Functions

G4double GrowStepSize (G4double h, G4double error) const
 
G4double GrowStepSize2 (G4double h, G4double error2) const
 
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 Member Functions

void RenewStepperAndAdjustImpl (T *stepper)
 

Private Attributes

G4double errorConstraintGrow
 
G4double errorConstraintShrink
 
G4int fMaxNoSteps
 
G4int fMaxStepBase
 
G4double pgrow
 
T * pIntStepper = nullptr
 
G4double pshrnk
 
G4double safety
 

Detailed Description

template<class T>
class G4RKIntegrationDriver< T >

Definition at line 41 of file G4RKIntegrationDriver.hh.

Constructor & Destructor Documentation

◆ G4RKIntegrationDriver() [1/2]

template<class T >
G4RKIntegrationDriver< T >::G4RKIntegrationDriver ( T *  stepper)

◆ G4RKIntegrationDriver() [2/2]

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

Member Function Documentation

◆ AccurateAdvance()

virtual G4bool G4VIntegrationDriver::AccurateAdvance ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  hinitial = 0 
)
pure virtualinherited

◆ AdvanceChordLimited()

virtual G4double G4VIntegrationDriver::AdvanceChordLimited ( G4FieldTrack track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
pure virtualinherited

◆ ComputeNewStepSize()

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

Implements G4VIntegrationDriver.

◆ DoesReIntegrate()

virtual G4bool G4VIntegrationDriver::DoesReIntegrate ( ) const
pure virtualinherited

◆ GetDerivatives() [1/2]

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

Implements G4VIntegrationDriver.

◆ GetDerivatives() [2/2]

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

Implements G4VIntegrationDriver.

◆ GetEquationOfMotion()

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

Implements G4VIntegrationDriver.

◆ GetMaxNoSteps()

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

◆ GetPgrow()

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

◆ GetPshrnk()

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

◆ GetSafety()

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

◆ GetSmallestFraction()

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

◆ GetStepper() [1/2]

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

Implements G4VIntegrationDriver.

◆ GetStepper() [2/2]

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

Implements G4VIntegrationDriver.

◆ GetVerboseLevel()

virtual G4int G4VIntegrationDriver::GetVerboseLevel ( ) const
pure virtualinherited

◆ GrowStepSize()

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

◆ GrowStepSize2()

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

◆ OnComputeStep()

virtual void G4VIntegrationDriver::OnComputeStep ( )
pure virtualinherited

◆ OnStartTracking()

virtual void G4VIntegrationDriver::OnStartTracking ( )
pure virtualinherited

◆ operator=()

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

◆ QuickAdvance()

virtual G4bool G4VIntegrationDriver::QuickAdvance ( G4FieldTrack ,
const  G4double[],
G4double  ,
G4double ,
G4double  
)
inlinevirtualinherited

◆ RenewStepperAndAdjust()

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

Reimplemented from G4VIntegrationDriver.

◆ RenewStepperAndAdjustImpl()

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

◆ ReSetParameters()

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

◆ SetEquationOfMotion()

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

Implements G4VIntegrationDriver.

◆ SetMaxNoSteps()

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

◆ SetSafety()

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

◆ SetSmallestFraction()

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

◆ SetVerboseLevel()

virtual void G4VIntegrationDriver::SetVerboseLevel ( G4int  level)
pure virtualinherited

◆ ShrinkStepSize()

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

◆ ShrinkStepSize2()

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

◆ StreamInfo()

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

◆ UpdateErrorConstraints()

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

Field Documentation

◆ errorConstraintGrow

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

Definition at line 122 of file G4RKIntegrationDriver.hh.

◆ errorConstraintShrink

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

Definition at line 121 of file G4RKIntegrationDriver.hh.

◆ fMaxNoSteps

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

Definition at line 107 of file G4RKIntegrationDriver.hh.

◆ fMaxStepBase

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

Definition at line 109 of file G4RKIntegrationDriver.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
private

Definition at line 117 of file G4RKIntegrationDriver.hh.

◆ pIntStepper

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

Definition at line 124 of file G4RKIntegrationDriver.hh.

◆ pshrnk

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

Definition at line 116 of file G4RKIntegrationDriver.hh.

◆ safety

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

Definition at line 115 of file G4RKIntegrationDriver.hh.


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