Import Geant4 9.1.0 source tree
This commit is contained in:
@@ -29,9 +29,21 @@
|
||||
//
|
||||
// G4HelixMixedStepper split the Method used for Integration in two:
|
||||
//
|
||||
// If Stepping Angle ( h / R_curve) < pi/3 : use Classical RK4Stepper
|
||||
// If Stepping Angle ( h / R_curve) < pi/3 : use Stepper for small step
|
||||
//
|
||||
// Else use HelixExplicitEuler Stepper
|
||||
//
|
||||
// Stepper for the small step is G4ClassicalRK4 by default, but
|
||||
// it possible to choose other stepper,like G4CashKarpRK45 or G4RKG3_Stepper,
|
||||
// by setting StepperNumber : new HelixMixedStepper(EqRhs,N)
|
||||
//
|
||||
// N=0 G4ExplicitEuler; N=1 G4ImplicitEuler;
|
||||
// N=2 G4SimpleRunge; N=3 G4SimpleHeum;
|
||||
// N=4 G4ClassicalRK4; N=5 G4HelixExplicitEuler;
|
||||
// N=6 G4HelixExplicitEuler; N=7 G4HelixSimpleRunge;
|
||||
// N=8 G4CashKarpRK45; N=9 G4ExactHelixStepper;
|
||||
// N=10 G4RKG3_Stepper;
|
||||
//
|
||||
// History:
|
||||
// Derived from ExactHelicalStepper 18/05/07
|
||||
//
|
||||
@@ -48,7 +60,7 @@ class G4HelixMixedStepper: public G4MagHelicalStepper
|
||||
|
||||
public:
|
||||
|
||||
G4HelixMixedStepper(G4Mag_EqRhs *EqRhs);
|
||||
G4HelixMixedStepper(G4Mag_EqRhs *EqRhs,G4int fStepperNumber=0);
|
||||
~G4HelixMixedStepper();
|
||||
|
||||
void Stepper( const G4double y[],
|
||||
@@ -67,19 +79,28 @@ class G4HelixMixedStepper: public G4MagHelicalStepper
|
||||
G4double yout[]);
|
||||
G4double DistChord() const;
|
||||
// Estimate maximum distance of curved solution and chord ...
|
||||
|
||||
|
||||
public: // with description
|
||||
|
||||
inline void SetVerbose (G4int newvalue){fVerbose=newvalue;}
|
||||
|
||||
public: // without description
|
||||
public: // without description
|
||||
void PrintCalls();
|
||||
G4MagIntegratorStepper* SetupStepper(G4Mag_EqRhs* EqRhs, G4int StepperName);
|
||||
|
||||
|
||||
G4int IntegratorOrder() const { return 4; }
|
||||
|
||||
private:
|
||||
// Mixed Integration RK4 for 'small' steps
|
||||
G4MagIntegratorStepper* fRK4Stepper;
|
||||
|
||||
|
||||
private:
|
||||
// Used for DistChord Calculation
|
||||
G4double fLastStepSize; // Length of last step
|
||||
|
||||
|
||||
// Used for statistic = how many calls to different steppers
|
||||
G4int fVerbose;
|
||||
G4int fNumCallsRK4;
|
||||
G4int fNumCallsHelix;
|
||||
|
||||
};
|
||||
|
||||
#endif /* G4HELIXMIXEDSTEPPER_HH */
|
||||
|
||||
Reference in New Issue
Block a user