Geant4-11
Public Member Functions | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes
G4IntegrationDriver< G4BulirschStoer > Class Reference

#include <G4BulirschStoerDriver.hh>

Inheritance diagram for G4IntegrationDriver< G4BulirschStoer >:
G4VIntegrationDriver G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >

Public Member Functions

virtual G4bool AccurateAdvance (G4FieldTrack &track, G4double stepLen, G4double eps, G4double beginStep=0) override
 ???? More...
 
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
 
virtual G4bool DoesReIntegrate () const override
 
 G4IntegrationDriver (const G4IntegrationDriver &)=delete
 
 G4IntegrationDriver (G4double hminimum, G4BulirschStoer *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
 
const G4EquationOfMotion * GetEquationOfMotion () const
 
virtual G4EquationOfMotion * GetEquationOfMotion () override
 
G4double GetFirstFraction ()
 
G4double GetFractionLast ()
 
G4double GetFractionNextEstimate ()
 
G4double GetLastStepEstimateUnc ()
 
G4int GetNoCalls ()
 
G4int GetNoMaxTrials ()
 
G4int GetNoTrials ()
 
virtual const G4MagIntegratorStepper * GetStepper () const override
 
virtual G4MagIntegratorStepper * GetStepper () override
 
virtual G4int GetVerboseLevel () const override
 
virtual void OnComputeStep () override
 
void OneGoodStep (G4double y[], const G4double dydx[], G4double &curveLength, G4double htry, G4double eps, G4double &hdid, G4double &hnext)
 
virtual void OnStartTracking () override
 
G4IntegrationDriver & operator= (const G4IntegrationDriver &)=delete
 
virtual G4bool QuickAdvance (G4FieldTrack &y_val, const G4double dydx[], G4double hstep, G4double &missDist, G4double &dyerr) override
 
virtual void RenewStepperAndAdjust (G4MagIntegratorStepper *pItsStepper)
 
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)
 
virtual void SetVerboseLevel (G4int level) 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)
 
 ~G4IntegrationDriver ()=default
 

Static Protected Attributes

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

Private Types

using ChordFinderDelegate = G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >
 

Private Member Functions

void AccumulateStatistics (G4int noTrials)
 
G4double FindNextChord (const G4FieldTrack &yStart, G4double stepMax, G4double epsStep, G4double chordDistance, G4FieldTrack &yEnd, G4double &dyErrPos, G4double &pStepForAccuracy)
 
G4IntegrationDriver< G4BulirschStoer > & GetDriver ()
 
G4int GetNumberOfVarialbles () const
 
G4double NewStep (G4double stepTrialOld, G4double dChordStep, G4double fDeltaChord, G4double &stepEstimate_Unconstrained)
 
void PrintStatistics ()
 

Private Attributes

G4BulirschStoer * bulirschStoer
 
G4double derivs [2][6][G4FieldTrack::ncompSVEC]
 
G4double dydxCurrent [G4FieldTrack::ncompSVEC]
 
G4double fFirstFraction
 
G4double fFractionLast
 
G4double fFractionNextEstimate
 
G4double fLastStepEstimate_Unconstrained
 
G4int fmaxTrials
 
G4ModifiedMidpoint fMidpointMethod
 
G4double fMinimumStep
 
G4int fNoCalls
 
G4int fTotalNoTrials
 
G4double fVerbosity
 
const G4int interval_sequence [2]
 
G4double yCurrent [G4FieldTrack::ncompSVEC]
 
G4double yError [G4FieldTrack::ncompSVEC]
 
G4double yIn [G4FieldTrack::ncompSVEC]
 
G4double yMid [G4FieldTrack::ncompSVEC]
 
G4double yMid2 [G4FieldTrack::ncompSVEC]
 
G4double yOut [G4FieldTrack::ncompSVEC]
 
G4double yOut2 [G4FieldTrack::ncompSVEC]
 

Detailed Description

Definition at line 43 of file G4BulirschStoerDriver.hh.

Member Typedef Documentation

◆ ChordFinderDelegate

Definition at line 145 of file G4BulirschStoerDriver.hh.

Constructor & Destructor Documentation

◆ G4IntegrationDriver() [1/2]

G4IntegrationDriver< G4BulirschStoer >::G4IntegrationDriver ( G4double  hminimum,
G4BulirschStoer *  stepper,
G4int  numberOfComponents = 6,
G4int  statisticsVerbosity = 1 
)

◆ ~G4IntegrationDriver()

◆ G4IntegrationDriver() [2/2]

Member Function Documentation

◆ AccumulateStatistics()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::AccumulateStatistics ( G4int  noTrials)
privateinherited

◆ AccurateAdvance()

virtual G4bool G4IntegrationDriver< G4BulirschStoer >::AccurateAdvance ( G4FieldTrack &  track,
G4double  stepLen,
G4double  eps,
G4double  beginStep = 0 
)
overridevirtual

????

Implements G4VIntegrationDriver.

◆ AdvanceChordLimited()

virtual G4double G4IntegrationDriver< G4BulirschStoer >::AdvanceChordLimited ( G4FieldTrack &  track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 59 of file G4BulirschStoerDriver.hh.

63 {
65 AdvanceChordLimitedImpl(track, hstep, eps, chordDistance);
66 }
static const G4double eps
G4double AdvanceChordLimitedImpl(G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance)

References G4ChordFinderDelegate< G4IntegrationDriver< T > >::AdvanceChordLimitedImpl(), and eps.

◆ AdvanceChordLimitedImpl()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::AdvanceChordLimitedImpl ( G4FieldTrack &  track,
G4double  hstep,
G4double  eps,
G4double  chordDistance 
)
inherited

◆ ComputeNewStepSize()

virtual G4double G4IntegrationDriver< G4BulirschStoer >::ComputeNewStepSize ( G4double  errMaxNorm,
G4double  hstepCurrent 
)
overridevirtual

Implements G4VIntegrationDriver.

◆ DoesReIntegrate()

virtual G4bool G4IntegrationDriver< G4BulirschStoer >::DoesReIntegrate ( ) const
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 75 of file G4BulirschStoerDriver.hh.

75{ return false; }

◆ FindNextChord()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::FindNextChord ( const G4FieldTrack &  yStart,
G4double  stepMax,
G4double  epsStep,
G4double  chordDistance,
G4FieldTrack &  yEnd,
G4double &  dyErrPos,
G4double &  pStepForAccuracy 
)
privateinherited

◆ GetDerivatives() [1/2]

virtual void G4IntegrationDriver< G4BulirschStoer >::GetDerivatives ( const G4FieldTrack &  track,
G4double  dydx[] 
) const
overridevirtual

Implements G4VIntegrationDriver.

◆ GetDerivatives() [2/2]

virtual void G4IntegrationDriver< G4BulirschStoer >::GetDerivatives ( const G4FieldTrack &  track,
G4double  dydx[],
G4double  field[] 
) const
overridevirtual

Implements G4VIntegrationDriver.

◆ GetDriver()

◆ GetEquationOfMotion() [1/2]

const G4EquationOfMotion * G4IntegrationDriver< G4BulirschStoer >::GetEquationOfMotion ( ) const

◆ GetEquationOfMotion() [2/2]

virtual G4EquationOfMotion * G4IntegrationDriver< G4BulirschStoer >::GetEquationOfMotion ( )
overridevirtual

Implements G4VIntegrationDriver.

◆ GetFirstFraction()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::GetFirstFraction ( )
inherited

◆ GetFractionLast()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::GetFractionLast ( )
inherited

◆ GetFractionNextEstimate()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::GetFractionNextEstimate ( )
inherited

◆ GetLastStepEstimateUnc()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::GetLastStepEstimateUnc ( )
inherited

◆ GetNoCalls()

◆ GetNoMaxTrials()

G4int G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::GetNoMaxTrials ( )
inherited

◆ GetNoTrials()

◆ GetNumberOfVarialbles()

G4int G4IntegrationDriver< G4BulirschStoer >::GetNumberOfVarialbles ( ) const
private

◆ GetStepper() [1/2]

virtual const G4MagIntegratorStepper * G4IntegrationDriver< G4BulirschStoer >::GetStepper ( ) const
overridevirtual

Implements G4VIntegrationDriver.

◆ GetStepper() [2/2]

virtual G4MagIntegratorStepper * G4IntegrationDriver< G4BulirschStoer >::GetStepper ( )
overridevirtual

Implements G4VIntegrationDriver.

◆ GetVerboseLevel()

virtual G4int G4IntegrationDriver< G4BulirschStoer >::GetVerboseLevel ( ) const
overridevirtual

Implements G4VIntegrationDriver.

◆ NewStep()

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::NewStep ( G4double  stepTrialOld,
G4double  dChordStep,
G4double  fDeltaChord,
G4double &  stepEstimate_Unconstrained 
)
privateinherited

◆ OnComputeStep()

virtual void G4IntegrationDriver< G4BulirschStoer >::OnComputeStep ( )
inlineoverridevirtual

Implements G4VIntegrationDriver.

Definition at line 73 of file G4BulirschStoerDriver.hh.

73{};

◆ OneGoodStep()

void G4IntegrationDriver< G4BulirschStoer >::OneGoodStep ( G4double  y[],
const G4double  dydx[],
G4double &  curveLength,
G4double  htry,
G4double  eps,
G4double &  hdid,
G4double &  hnext 
)

◆ OnStartTracking()

virtual void G4IntegrationDriver< G4BulirschStoer >::OnStartTracking ( )
inlineoverridevirtual

◆ operator=()

◆ PrintStatistics()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::PrintStatistics ( )
privateinherited

◆ QuickAdvance()

virtual G4bool G4IntegrationDriver< G4BulirschStoer >::QuickAdvance ( G4FieldTrack &  y_val,
const G4double  dydx[],
G4double  hstep,
G4double &  missDist,
G4double &  dyerr 
)
overridevirtual

Reimplemented from G4VIntegrationDriver.

◆ RenewStepperAndAdjust()

void G4VIntegrationDriver::RenewStepperAndAdjust ( G4MagIntegratorStepper *  pItsStepper)
virtualinherited

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)
Definition: G4Exception.cc:35

References FatalException, and G4Exception().

◆ ResetStepEstimate()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::ResetStepEstimate ( )
inherited

◆ SetEquationOfMotion()

virtual void G4IntegrationDriver< G4BulirschStoer >::SetEquationOfMotion ( G4EquationOfMotion *  equation)
overridevirtual

Implements G4VIntegrationDriver.

◆ SetFirstFraction()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::SetFirstFraction ( G4double  fractFirst)
inherited

◆ SetFractions_Last_Next()

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

◆ SetLastStepEstimateUnc()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::SetLastStepEstimateUnc ( G4double  stepEst)
inherited

◆ SetVerboseLevel()

virtual void G4IntegrationDriver< G4BulirschStoer >::SetVerboseLevel ( G4int  level)
overridevirtual

Implements G4VIntegrationDriver.

◆ StreamDelegateInfo()

void G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::StreamDelegateInfo ( std::ostream &  os) const
inherited

◆ StreamInfo()

virtual void G4IntegrationDriver< G4BulirschStoer >::StreamInfo ( std::ostream &  os) const
overridevirtual

Implements G4VIntegrationDriver.

◆ TestChordPrint()

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

Field Documentation

◆ bulirschStoer

Definition at line 128 of file G4BulirschStoerDriver.hh.

◆ derivs

Definition at line 141 of file G4BulirschStoerDriver.hh.

◆ dydxCurrent

Definition at line 138 of file G4BulirschStoerDriver.hh.

◆ fFirstFraction

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fFirstFraction
privateinherited

Definition at line 101 of file G4ChordFinderDelegate.hh.

◆ fFractionLast

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fFractionLast
privateinherited

Definition at line 102 of file G4ChordFinderDelegate.hh.

◆ fFractionNextEstimate

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fFractionNextEstimate
privateinherited

Definition at line 103 of file G4ChordFinderDelegate.hh.

◆ fLastStepEstimate_Unconstrained

G4double G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fLastStepEstimate_Unconstrained
privateinherited

Definition at line 104 of file G4ChordFinderDelegate.hh.

◆ fmaxTrials

G4int G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fmaxTrials
privateinherited

Definition at line 108 of file G4ChordFinderDelegate.hh.

◆ fMidpointMethod

Definition at line 127 of file G4BulirschStoerDriver.hh.

◆ fMinimumStep

G4double G4IntegrationDriver< G4BulirschStoer >::fMinimumStep
private

Definition at line 124 of file G4BulirschStoerDriver.hh.

◆ fNoCalls

Definition at line 107 of file G4ChordFinderDelegate.hh.

◆ fTotalNoTrials

G4int G4ChordFinderDelegate< G4IntegrationDriver< G4BulirschStoer > >::fTotalNoTrials
privateinherited

Definition at line 106 of file G4ChordFinderDelegate.hh.

◆ fVerbosity

Definition at line 125 of file G4BulirschStoerDriver.hh.

◆ interval_sequence

const G4int G4IntegrationDriver< G4BulirschStoer >::interval_sequence[2]
private

Definition at line 143 of file G4BulirschStoerDriver.hh.

◆ max_stepping_decrease

constexpr G4double G4VIntegrationDriver::max_stepping_decrease = 0.1
staticconstexprprotectedinherited

◆ max_stepping_increase

constexpr G4double G4VIntegrationDriver::max_stepping_increase = 5
staticconstexprprotectedinherited

◆ yCurrent

Definition at line 139 of file G4BulirschStoerDriver.hh.

◆ yError

Definition at line 135 of file G4BulirschStoerDriver.hh.

◆ yIn

Definition at line 130 of file G4BulirschStoerDriver.hh.

◆ yMid

Definition at line 131 of file G4BulirschStoerDriver.hh.

◆ yMid2

Definition at line 132 of file G4BulirschStoerDriver.hh.

◆ yOut

Definition at line 133 of file G4BulirschStoerDriver.hh.

◆ yOut2

Definition at line 134 of file G4BulirschStoerDriver.hh.


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