Geant4-11
|
#include <G4MagIntegratorDriver.hh>
Protected Member Functions | |
void | PrintStat_Aux (const G4FieldTrack &aFieldTrack, G4double requestStep, G4double actualStep, G4int subStepNo, G4double subStepSize, G4double dotVelocities) |
void | PrintStatisticsReport () |
void | PrintStatus (const G4double *StartArr, G4double xstart, const G4double *CurrentArr, G4double xcurrent, G4double requestStep, G4int subStepNo) |
void | PrintStatus (const G4FieldTrack &StartFT, const G4FieldTrack &CurrentFT, G4double requestStep, G4int subStepNo) |
void | WarnEndPointTooFar (G4double endPointDist, G4double hStepSize, G4double epsilonRelative, G4int debugFlag) |
void | WarnSmallStepSize (G4double hnext, G4double hstep, G4double h, G4double xDone, G4int noSteps) |
void | WarnTooManyStep (G4double x1start, G4double x2end, G4double xCurrent) |
Static Protected Attributes | |
static constexpr G4double | max_stepping_decrease = 0.1 |
static constexpr G4double | max_stepping_increase = 5 |
Private Types | |
using | ChordFinderDelegate = G4ChordFinderDelegate< G4MagInt_Driver > |
Private Member Functions | |
void | AccumulateStatistics (G4int noTrials) |
G4double | FindNextChord (const G4FieldTrack &yStart, G4double stepMax, G4double epsStep, G4double chordDistance, G4FieldTrack &yEnd, G4double &dyErrPos, G4double &pStepForAccuracy) |
G4MagInt_Driver & | GetDriver () |
G4double | NewStep (G4double stepTrialOld, G4double dChordStep, G4double fDeltaChord, G4double &stepEstimate_Unconstrained) |
void | PrintStatistics () |
Private Attributes | |
G4double | errcon |
G4double | fDyerr_max =0.0 |
G4double | fDyerr_mx2 =0.0 |
G4double | fDyerrPos_lgTot =0.0 |
G4double | fDyerrPos_smTot =0.0 |
G4double | fDyerrVel_lgTot =0.0 |
G4double | fFirstFraction |
G4double | fFractionLast |
G4double | fFractionNextEstimate |
G4double | fLastStepEstimate_Unconstrained |
G4int | fMaxNoSteps |
G4int | fMaxStepBase = 250 |
G4int | fmaxTrials |
G4double | fMinimumStep = 0.0 |
const G4int | fMinNoVars = 12 |
unsigned long | fNoBadSteps =0 |
unsigned long | fNoCalls =0 |
unsigned long | fNoInitialSmallSteps =0 |
const G4int | fNoIntegrationVariables = 0 |
unsigned long | fNoSmallSteps =0 |
unsigned long | fNoTotalSteps =0 |
const G4int | fNoVars = 0 |
G4double | fSmallestFraction = 1.0e-12 |
G4int | fStatisticsVerboseLevel = 0 |
G4double | fSumH_lg =0.0 |
G4double | fSumH_sm =0.0 |
G4int | fTotalNoTrials |
G4int | fVerboseLevel = 0 |
G4double | pgrow |
G4MagIntegratorStepper * | pIntStepper = nullptr |
G4double | pshrnk |
G4double | safety |
Definition at line 44 of file G4MagIntegratorDriver.hh.
|
private |
Definition at line 273 of file G4MagIntegratorDriver.hh.
G4MagInt_Driver::G4MagInt_Driver | ( | G4double | hminimum, |
G4MagIntegratorStepper * | pItsStepper, | ||
G4int | numberOfComponents = 6 , |
||
G4int | statisticsVerbosity = 0 |
||
) |
Definition at line 49 of file G4MagIntegratorDriver.cc.
References fMaxNoSteps, fMaxStepBase, fMinimumStep, fStatisticsVerboseLevel, fVerboseLevel, G4cout, G4endl, G4MagIntegratorStepper::IntegratorOrder(), pIntStepper, and RenewStepperAndAdjust().
|
overridevirtual |
Definition at line 85 of file G4MagIntegratorDriver.cc.
References fStatisticsVerboseLevel, and PrintStatisticsReport().
|
delete |
|
privateinherited |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 96 of file G4MagIntegratorDriver.cc.
References ComputeNewStepSize(), G4FieldTrack::DumpToArray(), eps, EventMustBeAborted, FatalException, fDyerr_max, fDyerrPos_smTot, fMaxNoSteps, fMinimumStep, fNoBadSteps, fNoInitialSmallSteps, fNoIntegrationVariables, fNoSmallSteps, fNoTotalSteps, fNoVars, fSmallestFraction, fSumH_sm, G4cerr, G4cout, G4endl, G4Exception(), G4ThreadLocal, G4FieldTrack::GetCurveLength(), Hmin(), JustWarning, G4FieldTrack::LoadFromArray(), G4FieldTrack::ncompSVEC, OneGoodStep(), perMillion, perThousand, pIntStepper, CLHEP::prec, PrintStatus(), G4DriverReporter::PrintStatus(), QuickAdvance(), G4MagIntegratorStepper::RightHandSide(), G4FieldTrack::SetCurveLength(), WarnEndPointTooFar(), WarnSmallStepSize(), and WarnTooManyStep().
Referenced by G4RKPropagation::FieldTransport().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
|
inherited |
|
inline |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 755 of file G4MagIntegratorDriver.cc.
References ComputeNewStepSize_WithoutReductionLimit().
Referenced by AccurateAdvance(), and QuickAdvance().
G4double G4MagInt_Driver::ComputeNewStepSize_WithinLimits | ( | G4double | errMaxNorm, |
G4double | hstepCurrent | ||
) |
Definition at line 771 of file G4MagIntegratorDriver.cc.
References errcon, GetPgrow(), GetPshrnk(), GetSafety(), G4VIntegrationDriver::max_stepping_decrease, and G4VIntegrationDriver::max_stepping_increase.
G4double G4MagInt_Driver::ComputeNewStepSize_WithoutReductionLimit | ( | G4double | errMaxNorm, |
G4double | hstepCurrent | ||
) |
Definition at line 726 of file G4MagIntegratorDriver.cc.
References GetPgrow(), GetPshrnk(), GetSafety(), and G4VIntegrationDriver::max_stepping_increase.
Referenced by ComputeNewStepSize().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
Definition at line 66 of file G4MagIntegratorDriver.hh.
Referenced by PrintInfo(), and StreamInfo().
|
privateinherited |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1000 of file G4MagIntegratorDriver.cc.
References G4FieldTrack::DumpToArray(), G4FieldTrack::ncompSVEC, pIntStepper, and G4MagIntegratorStepper::RightHandSide().
|
overridevirtual |
Implements G4VIntegrationDriver.
|
privateinherited |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1009 of file G4MagIntegratorDriver.cc.
References G4MagIntegratorStepper::GetEquationOfMotion(), and pIntStepper.
|
inline |
Referenced by PrintInfo().
|
inherited |
|
inherited |
|
inherited |
|
inline |
Referenced by PrintInfo().
|
inherited |
|
inline |
Referenced by PrintInfo().
|
inherited |
|
inherited |
|
inherited |
|
inline |
Referenced by ComputeNewStepSize_WithinLimits(), ComputeNewStepSize_WithoutReductionLimit(), OneGoodStep(), and PrintInfo().
|
inline |
Referenced by ComputeNewStepSize_WithinLimits(), ComputeNewStepSize_WithoutReductionLimit(), OneGoodStep(), and PrintInfo().
|
inline |
Referenced by ComputeNewStepSize_WithinLimits(), ComputeNewStepSize_WithoutReductionLimit(), OneGoodStep(), and PrintInfo().
|
inline |
Referenced by PrintInfo().
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1019 of file G4MagIntegratorDriver.cc.
References pIntStepper.
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1024 of file G4MagIntegratorDriver.cc.
References pIntStepper.
|
overridevirtual |
Implements G4VIntegrationDriver.
Referenced by PrintInfo().
|
inline |
Referenced by AccurateAdvance(), and WarnSmallStepSize().
|
privateinherited |
|
inlineoverridevirtual |
void G4MagInt_Driver::OneGoodStep | ( | G4double | ystart[], |
const G4double | dydx[], | ||
G4double & | x, | ||
G4double | htry, | ||
G4double | eps, | ||
G4double & | hdid, | ||
G4double & | hnext | ||
) |
Definition at line 485 of file G4MagIntegratorDriver.cc.
References errcon, fMinimumStep, fNoIntegrationVariables, G4endl, G4Exception(), G4ThreadLocal, GetPgrow(), GetPshrnk(), GetSafety(), JustWarning, G4INCL::Math::max(), G4VIntegrationDriver::max_stepping_increase, G4FieldTrack::ncompSVEC, pIntStepper, and sqr().
Referenced by AccurateAdvance().
|
inlineoverridevirtual |
Implements G4VIntegrationDriver.
|
delete |
|
protected |
Definition at line 891 of file G4MagIntegratorDriver.cc.
References G4cout, G4endl, G4ThreadLocal, G4FieldTrack::GetCurveLength(), G4FieldTrack::GetKineticEnergy(), G4FieldTrack::GetMomentumDir(), G4FieldTrack::GetPosition(), CLHEP::Hep3Vector::mag2(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().
Referenced by PrintStatus().
|
privateinherited |
|
protected |
Definition at line 956 of file G4MagIntegratorDriver.cc.
References fNoBadSteps, fNoInitialSmallSteps, fNoSmallSteps, fNoTotalSteps, G4cout, and G4endl.
Referenced by ~G4MagInt_Driver().
|
protected |
Definition at line 803 of file G4MagIntegratorDriver.cc.
References fNoIntegrationVariables, G4FieldTrack::LoadFromArray(), PrintStatus(), and G4FieldTrack::SetCurveLength().
Referenced by AccurateAdvance(), PrintStatus(), and QuickAdvance().
|
protected |
Definition at line 828 of file G4MagIntegratorDriver.cc.
References CLHEP::Hep3Vector::dot(), fVerboseLevel, G4cout, G4endl, G4FieldTrack::GetCurveLength(), G4FieldTrack::GetMomentumDir(), G4FieldTrack::GetPosition(), noPrecision, and PrintStat_Aux().
G4bool G4MagInt_Driver::QuickAdvance | ( | G4FieldTrack & | y_posvel, |
const G4double | dydx[], | ||
G4double | hstep, | ||
G4double & | dchord_step, | ||
G4double & | dyerr_pos_sq, | ||
G4double & | dyerr_mom_rel_sq | ||
) |
Definition at line 611 of file G4MagIntegratorDriver.cc.
References FatalException, G4Exception(), G4FieldTrack::GetPosition(), and CLHEP::Hep3Vector::mag2().
|
overridevirtual |
Reimplemented from G4VIntegrationDriver.
Definition at line 630 of file G4MagIntegratorDriver.cc.
References ComputeNewStepSize(), G4FieldTrack::DumpToArray(), eps, fNoIntegrationVariables, fVerboseLevel, G4cout, G4endl, G4ThreadLocal, G4FieldTrack::GetCurveLength(), G4FieldTrack::LoadFromArray(), G4FieldTrack::ncompSVEC, pIntStepper, PrintStatus(), G4FieldTrack::SetCurveLength(), and sqr().
Referenced by AccurateAdvance().
|
overridevirtual |
Reimplemented from G4VIntegrationDriver.
Definition at line 1029 of file G4MagIntegratorDriver.cc.
References pIntStepper, and ReSetParameters().
Referenced by G4MagInt_Driver().
|
inline |
Referenced by RenewStepperAndAdjust().
|
inherited |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1014 of file G4MagIntegratorDriver.cc.
References pIntStepper, and G4MagIntegratorStepper::SetEquationOfMotion().
|
inline |
|
inherited |
|
inherited |
|
inline |
|
inherited |
|
inline |
|
inline |
|
inline |
|
inline |
void G4MagInt_Driver::SetSmallestFraction | ( | G4double | val | ) |
Definition at line 973 of file G4MagIntegratorDriver.cc.
References fSmallestFraction, G4endl, G4Exception(), and JustWarning.
|
overridevirtual |
Implements G4VIntegrationDriver.
|
inherited |
|
overridevirtual |
Implements G4VIntegrationDriver.
Definition at line 1036 of file G4MagIntegratorDriver.cc.
References DoesReIntegrate(), errcon, fMaxNoSteps, fMaxStepBase, fMinimumStep, fMinNoVars, fNoIntegrationVariables, fNoVars, fSmallestFraction, fVerboseLevel, pgrow, pshrnk, and safety.
|
inherited |
|
protected |
Definition at line 449 of file G4MagIntegratorDriver.cc.
References eps, G4endl, G4Exception(), G4ThreadLocal, G4GeometryTolerance::GetInstance(), G4GeometryTolerance::GetSurfaceTolerance(), and JustWarning.
Referenced by AccurateAdvance().
|
protected |
Definition at line 400 of file G4MagIntegratorDriver.cc.
References fVerboseLevel, G4endl, G4Exception(), G4ThreadLocal, Hmin(), and JustWarning.
Referenced by AccurateAdvance().
|
protected |
Definition at line 432 of file G4MagIntegratorDriver.cc.
References G4endl, G4Exception(), and JustWarning.
Referenced by AccurateAdvance().
|
private |
Definition at line 250 of file G4MagIntegratorDriver.hh.
Referenced by ComputeNewStepSize_WithinLimits(), OneGoodStep(), and StreamInfo().
|
private |
Definition at line 265 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance().
|
private |
Definition at line 265 of file G4MagIntegratorDriver.hh.
|
private |
Definition at line 266 of file G4MagIntegratorDriver.hh.
|
private |
Definition at line 266 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance().
|
private |
Definition at line 266 of file G4MagIntegratorDriver.hh.
|
privateinherited |
Definition at line 101 of file G4ChordFinderDelegate.hh.
|
privateinherited |
Definition at line 102 of file G4ChordFinderDelegate.hh.
|
privateinherited |
Definition at line 103 of file G4ChordFinderDelegate.hh.
|
privateinherited |
Definition at line 104 of file G4ChordFinderDelegate.hh.
|
private |
Definition at line 243 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), G4MagInt_Driver(), and StreamInfo().
|
private |
Definition at line 244 of file G4MagIntegratorDriver.hh.
Referenced by G4MagInt_Driver(), and StreamInfo().
|
privateinherited |
Definition at line 108 of file G4ChordFinderDelegate.hh.
|
private |
Definition at line 233 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), G4MagInt_Driver(), OneGoodStep(), and StreamInfo().
|
private |
Definition at line 240 of file G4MagIntegratorDriver.hh.
Referenced by StreamInfo().
|
private |
Definition at line 263 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), and PrintStatisticsReport().
|
private |
Definition at line 264 of file G4MagIntegratorDriver.hh.
|
private |
Definition at line 264 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), and PrintStatisticsReport().
|
private |
Definition at line 239 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), OneGoodStep(), PrintStatus(), QuickAdvance(), and StreamInfo().
|
private |
Definition at line 264 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), and PrintStatisticsReport().
|
private |
Definition at line 263 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), and PrintStatisticsReport().
|
private |
Definition at line 241 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), and StreamInfo().
|
private |
Definition at line 235 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), SetSmallestFraction(), and StreamInfo().
|
private |
Definition at line 253 of file G4MagIntegratorDriver.hh.
Referenced by G4MagInt_Driver(), and ~G4MagInt_Driver().
|
private |
Definition at line 267 of file G4MagIntegratorDriver.hh.
|
private |
Definition at line 267 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance().
|
privateinherited |
Definition at line 106 of file G4ChordFinderDelegate.hh.
|
private |
Definition at line 270 of file G4MagIntegratorDriver.hh.
Referenced by G4MagInt_Driver(), PrintStatus(), QuickAdvance(), StreamInfo(), and WarnSmallStepSize().
|
staticconstexprprotectedinherited |
Definition at line 123 of file G4VIntegrationDriver.hh.
Referenced by ComputeNewStepSize_WithinLimits(), and G4OldMagIntDriver::ComputeNewStepSize_WithinLimits().
|
staticconstexprprotectedinherited |
|
private |
Definition at line 249 of file G4MagIntegratorDriver.hh.
Referenced by StreamInfo().
|
private |
Definition at line 258 of file G4MagIntegratorDriver.hh.
Referenced by AccurateAdvance(), G4MagInt_Driver(), GetDerivatives(), GetEquationOfMotion(), GetStepper(), OneGoodStep(), QuickAdvance(), RenewStepperAndAdjust(), and SetEquationOfMotion().
|
private |
Definition at line 248 of file G4MagIntegratorDriver.hh.
Referenced by StreamInfo().
|
private |
Definition at line 247 of file G4MagIntegratorDriver.hh.
Referenced by StreamInfo().