Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VIntegrationDriver Class Referenceabstract

#include <G4VIntegrationDriver.hh>

Inheritance diagram for G4VIntegrationDriver:

Public Member Functions

virtual ~G4VIntegrationDriver ()=default
virtual G4double AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance)=0
virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0)=0
virtual void SetEquationOfMotion (G4EquationOfMotion *equation)=0
virtual G4EquationOfMotionGetEquationOfMotion ()=0
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *pItsStepper)
virtual void SetVerboseLevel (G4int level)=0
virtual G4int GetVerboseLevel () const =0
virtual void OnComputeStep (const G4FieldTrack *=nullptr)=0
virtual void OnStartTracking ()=0
virtual G4bool DoesReIntegrate () const =0
virtual void StreamInfo (std::ostream &os) const =0
virtual G4bool QuickAdvance (G4FieldTrack &, const G4double[], G4double, G4double &, G4double &)
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[]) const =0
virtual void GetDerivatives (const G4FieldTrack &track, G4double dydx[], G4double field[]) const =0
virtual const G4MagIntegratorStepperGetStepper () const =0
virtual G4MagIntegratorStepperGetStepper ()=0
virtual G4double ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent)=0

Static Protected Attributes

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

Friends

std::ostream & operator<< (std::ostream &os, const G4VIntegrationDriver &id)

Detailed Description

Definition at line 53 of file G4VIntegrationDriver.hh.

Constructor & Destructor Documentation

◆ ~G4VIntegrationDriver()

virtual G4VIntegrationDriver::~G4VIntegrationDriver ( )
virtualdefault

Default Destructor.

Member Function Documentation

◆ AccurateAdvance()

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

Advances integration accurately by relative accuracy better than 'eps'. On output the track is replaced by the value at the end of interval.

Parameters
[in,out]trackThe current track in field.
[in]hstepProposed step length.
[in]epsRequested accuracy, y_err/hstep.
[in]hinitialInitial minimum integration step.
Returns
true if integration succeeds.

Implemented in G4BFieldIntegrationDriver, G4BorisDriver, G4FSALIntegrationDriver< T >, G4IntegrationDriver< T >, G4IntegrationDriver< G4BulirschStoer >, G4InterpolationDriver< T, StepperCachesDchord >, G4InterpolationDriver< T, true >, G4MagInt_Driver, and G4OldMagIntDriver.

Referenced by G4BrentLocator::EstimateIntersectionPoint().

◆ AdvanceChordLimited()

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

Computes the step to take, based on chord limits.

Parameters
[in,out]trackThe current track in field.
[in]hstepProposed step length.
[in]epsRequested accuracy, y_err/hstep.
[in]chordDistanceMaximum sagitta distance.
Returns
The length of step taken.

Implemented in G4BFieldIntegrationDriver, G4BorisDriver, G4FSALIntegrationDriver< T >, G4IntegrationDriver< T >, G4IntegrationDriver< G4BulirschStoer >, G4InterpolationDriver< T, StepperCachesDchord >, G4InterpolationDriver< T, true >, G4MagInt_Driver, G4OldMagIntDriver, and G4QSSDriver< T >.

Referenced by G4BFieldIntegrationDriver::AdvanceChordLimited().

◆ ComputeNewStepSize()

virtual G4double G4VIntegrationDriver::ComputeNewStepSize ( G4double errMaxNorm,
G4double hstepCurrent )
pure virtual

◆ DoesReIntegrate()

virtual G4bool G4VIntegrationDriver::DoesReIntegrate ( ) const
pure virtual

◆ GetDerivatives() [1/2]

virtual void G4VIntegrationDriver::GetDerivatives ( const G4FieldTrack & track,
G4double dydx[] ) const
pure virtual

◆ GetDerivatives() [2/2]

virtual void G4VIntegrationDriver::GetDerivatives ( const G4FieldTrack & track,
G4double dydx[],
G4double field[] ) const
pure virtual

◆ GetEquationOfMotion()

◆ GetStepper() [1/2]

virtual const G4MagIntegratorStepper * G4VIntegrationDriver::GetStepper ( ) const
pure virtual

◆ GetStepper() [2/2]

◆ GetVerboseLevel()

◆ OnComputeStep()

◆ OnStartTracking()

virtual void G4VIntegrationDriver::OnStartTracking ( )
pure virtual

◆ QuickAdvance()

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

◆ RenewStepperAndAdjust()

void G4VIntegrationDriver::RenewStepperAndAdjust ( G4MagIntegratorStepper * pItsStepper)
virtual

Method for compatibility – relevant only for G4MagIntegratorDriver.

Reimplemented in G4MagInt_Driver, G4OldMagIntDriver, and G4RKIntegrationDriver< T >.

Definition at line 34 of file G4VIntegrationDriver.cc.

35{
36 G4Exception("G4VIntegrationDriver::RenewStepperAndAdjust",
37 "Geometry001", FatalException,
38 "This method exists only for the original G4MagIntegratorDriver class. "
39 "Not defined for other classes derived from G4VIntegrationDriver");
40}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)

◆ SetEquationOfMotion()

virtual void G4VIntegrationDriver::SetEquationOfMotion ( G4EquationOfMotion * equation)
pure virtual

◆ SetVerboseLevel()

◆ StreamInfo()

virtual void G4VIntegrationDriver::StreamInfo ( std::ostream & os) const
pure virtual

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const G4VIntegrationDriver & id )
friend

Streaming operator.

Definition at line 42 of file G4VIntegrationDriver.cc.

43{
44 id.StreamInfo( os );
45 return os;
46}

Member Data Documentation

◆ max_stepping_decrease

G4double G4VIntegrationDriver::max_stepping_decrease = 0.1
staticconstexprprotected

◆ max_stepping_increase


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