Geant4-11
|
#include <G4BFieldIntegrationDriver.hh>
Public Member Functions | |
virtual G4bool | AccurateAdvance (G4FieldTrack &track, G4double hstep, G4double eps, G4double hinitial=0) override |
virtual G4double | AdvanceChordLimited (G4FieldTrack &track, G4double hstep, G4double eps, G4double chordDistance) override |
virtual G4double | ComputeNewStepSize (G4double errMaxNorm, G4double hstepCurrent) override |
virtual G4bool | DoesReIntegrate () const override |
G4BFieldIntegrationDriver (const G4BFieldIntegrationDriver &)=delete | |
G4BFieldIntegrationDriver (std::unique_ptr< G4VIntegrationDriver > smallStepDriver, std::unique_ptr< G4VIntegrationDriver > largeStepDriver) | |
virtual void | GetDerivatives (const G4FieldTrack &track, G4double dydx[]) const override |
virtual void | GetDerivatives (const G4FieldTrack &track, G4double dydx[], G4double field[]) const override |
virtual G4EquationOfMotion * | GetEquationOfMotion () override |
virtual const G4MagIntegratorStepper * | GetStepper () const override |
virtual G4MagIntegratorStepper * | GetStepper () override |
virtual G4int | GetVerboseLevel () const override |
virtual void | OnComputeStep () override |
virtual void | OnStartTracking () override |
const G4BFieldIntegrationDriver & | operator= (const G4BFieldIntegrationDriver &)=delete |
void | PrintStatistics () const |
virtual G4bool | QuickAdvance (G4FieldTrack &, const G4double[], G4double, G4double &, G4double &) |
virtual void | RenewStepperAndAdjust (G4MagIntegratorStepper *pItsStepper) |
virtual void | SetEquationOfMotion (G4EquationOfMotion *equation) override |
virtual void | SetVerboseLevel (G4int level) override |
virtual void | StreamInfo (std::ostream &os) const override |
Static Protected Attributes | |
static constexpr G4double | max_stepping_decrease = 0.1 |
static constexpr G4double | max_stepping_increase = 5 |
Private Member Functions | |
G4double | CurvatureRadius (const G4FieldTrack &track) const |
void | GetFieldValue (const G4FieldTrack &track, G4double Field[]) const |
Private Attributes | |
G4VIntegrationDriver * | fCurrDriver = nullptr |
G4Mag_EqRhs * | fEquation = nullptr |
G4int | fLargeDriverSteps = 0 |
std::unique_ptr< G4VIntegrationDriver > | fLargeStepDriver |
G4int | fSmallDriverSteps = 0 |
std::unique_ptr< G4VIntegrationDriver > | fSmallStepDriver |
Definition at line 42 of file G4BFieldIntegrationDriver.hh.
G4BFieldIntegrationDriver::G4BFieldIntegrationDriver | ( | std::unique_ptr< G4VIntegrationDriver > | smallStepDriver, |
std::unique_ptr< G4VIntegrationDriver > | largeStepDriver | ||
) |
Definition at line 62 of file G4BFieldIntegrationDriver.cc.
References FatalException, fLargeStepDriver, fSmallStepDriver, and G4Exception().
|
delete |
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 58 of file G4BFieldIntegrationDriver.hh.
References G4VIntegrationDriver::AccurateAdvance(), eps, and fCurrDriver.
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 78 of file G4BFieldIntegrationDriver.cc.
References G4VIntegrationDriver::AdvanceChordLimited(), CurvatureRadius(), fCurrDriver, fLargeDriverSteps, fLargeStepDriver, fSmallDriverSteps, fSmallStepDriver, G4INCL::Math::min(), G4VIntegrationDriver::OnComputeStep(), and twopi.
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 104 of file G4BFieldIntegrationDriver.hh.
References G4VIntegrationDriver::ComputeNewStepSize(), and fCurrDriver.
|
private |
Definition at line 117 of file G4BFieldIntegrationDriver.cc.
References DBL_MAX, eplus, G4Mag_EqRhs::FCof(), fEquation, GetFieldValue(), G4FieldTrack::GetMomentum(), CLHEP::Hep3Vector::mag2(), and G4Field::MAX_NUMBER_OF_COMPONENTS.
Referenced by AdvanceChordLimited().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 66 of file G4BFieldIntegrationDriver.hh.
References G4VIntegrationDriver::DoesReIntegrate(), and fCurrDriver.
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 72 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetDerivatives().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 79 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetDerivatives().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 88 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetEquationOfMotion().
|
private |
Definition at line 138 of file G4BFieldIntegrationDriver.cc.
References fEquation, G4EquationOfMotion::GetFieldValue(), G4FieldTrack::GetLabTimeOfFlight(), G4FieldTrack::GetPosition(), and pos.
Referenced by CurvatureRadius().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 94 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetStepper().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 99 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetStepper().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 116 of file G4BFieldIntegrationDriver.hh.
References fCurrDriver, and G4VIntegrationDriver::GetVerboseLevel().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 121 of file G4BFieldIntegrationDriver.hh.
References fLargeStepDriver, and fSmallStepDriver.
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 127 of file G4BFieldIntegrationDriver.hh.
References fLargeStepDriver, and fSmallStepDriver.
|
delete |
void G4BFieldIntegrationDriver::PrintStatistics | ( | ) | const |
Definition at line 148 of file G4BFieldIntegrationDriver.cc.
References fLargeDriverSteps, fSmallDriverSteps, and G4cout.
|
inlinevirtualinherited |
Reimplemented in G4FSALIntegrationDriver< T >, G4IntegrationDriver< T >, G4MagInt_Driver, G4OldMagIntDriver, and G4IntegrationDriver< G4BulirschStoer >.
Definition at line 83 of file G4VIntegrationDriver.hh.
|
virtualinherited |
Reimplemented in G4MagInt_Driver, G4OldMagIntDriver, and G4RKIntegrationDriver< T >.
Definition at line 34 of file G4VIntegrationDriver.cc.
References FatalException, and G4Exception().
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 109 of file G4BFieldIntegrationDriver.cc.
References fEquation, fLargeStepDriver, fSmallStepDriver, and anonymous_namespace{G4BFieldIntegrationDriver.cc}::toMagneticEquation().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 110 of file G4BFieldIntegrationDriver.hh.
References fLargeStepDriver, and fSmallStepDriver.
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 133 of file G4BFieldIntegrationDriver.hh.
References fLargeStepDriver, and fSmallStepDriver.
|
private |
Definition at line 153 of file G4BFieldIntegrationDriver.hh.
Referenced by AccurateAdvance(), AdvanceChordLimited(), ComputeNewStepSize(), DoesReIntegrate(), GetDerivatives(), GetEquationOfMotion(), GetStepper(), and GetVerboseLevel().
|
private |
Definition at line 154 of file G4BFieldIntegrationDriver.hh.
Referenced by CurvatureRadius(), GetFieldValue(), and SetEquationOfMotion().
|
private |
Definition at line 157 of file G4BFieldIntegrationDriver.hh.
Referenced by AdvanceChordLimited(), and PrintStatistics().
|
private |
Definition at line 152 of file G4BFieldIntegrationDriver.hh.
Referenced by AdvanceChordLimited(), G4BFieldIntegrationDriver(), OnComputeStep(), OnStartTracking(), SetEquationOfMotion(), SetVerboseLevel(), and StreamInfo().
|
private |
Definition at line 156 of file G4BFieldIntegrationDriver.hh.
Referenced by AdvanceChordLimited(), and PrintStatistics().
|
private |
Definition at line 151 of file G4BFieldIntegrationDriver.hh.
Referenced by AdvanceChordLimited(), G4BFieldIntegrationDriver(), OnComputeStep(), OnStartTracking(), SetEquationOfMotion(), SetVerboseLevel(), and StreamInfo().
|
staticconstexprprotectedinherited |
Definition at line 123 of file G4VIntegrationDriver.hh.
Referenced by G4MagInt_Driver::ComputeNewStepSize_WithinLimits(), and G4OldMagIntDriver::ComputeNewStepSize_WithinLimits().
|
staticconstexprprotectedinherited |
Definition at line 122 of file G4VIntegrationDriver.hh.
Referenced by G4OldMagIntDriver::ComputeNewStepSize(), G4MagInt_Driver::ComputeNewStepSize_WithinLimits(), G4OldMagIntDriver::ComputeNewStepSize_WithinLimits(), G4MagInt_Driver::ComputeNewStepSize_WithoutReductionLimit(), G4MagInt_Driver::OneGoodStep(), and G4OldMagIntDriver::OneGoodStep().