Geant4  10.02.p03
G4SimpleHeum Class Reference

#include <G4SimpleHeum.hh>

Inheritance diagram for G4SimpleHeum:
Collaboration diagram for G4SimpleHeum:

Public Member Functions

 G4SimpleHeum (G4EquationOfMotion *EqRhs, G4int num_variables=6)
 
 ~G4SimpleHeum ()
 
void DumbStepper (const G4double y[], const G4double dydx[], G4double h, G4double yout[])
 
G4int IntegratorOrder () const
 
- Public Member Functions inherited from G4MagErrorStepper
 G4MagErrorStepper (G4EquationOfMotion *EqRhs, G4int numberOfVariables, G4int numStateVariables=12)
 
virtual ~G4MagErrorStepper ()
 
void Stepper (const G4double y[], const G4double dydx[], G4double h, G4double yout[], G4double yerr[])
 
G4double DistChord () const
 
- Public Member Functions inherited from G4MagIntegratorStepper
 G4MagIntegratorStepper (G4EquationOfMotion *Equation, G4int numIntegrationVariables, G4int numStateVariables=12)
 
virtual ~G4MagIntegratorStepper ()
 
virtual void ComputeRightHandSide (const G4double y[], G4double dydx[])
 
void NormaliseTangentVector (G4double vec[6])
 
void NormalisePolarizationVector (G4double vec[12])
 
void RightHandSide (const double y[], double dydx[])
 
G4int GetNumberOfVariables () const
 
G4int GetNumberOfStateVariables () const
 
G4EquationOfMotionGetEquationOfMotion ()
 
void SetEquationOfMotion (G4EquationOfMotion *newEquation)
 

Private Attributes

G4int fNumberOfVariables
 
G4doubledydxTemp
 
G4doubledydxTemp2
 
G4doubleyTemp
 
G4doubleyTemp2
 

Detailed Description

Definition at line 50 of file G4SimpleHeum.hh.

Constructor & Destructor Documentation

◆ G4SimpleHeum()

G4SimpleHeum::G4SimpleHeum ( G4EquationOfMotion EqRhs,
G4int  num_variables = 6 
)

Definition at line 46 of file G4SimpleHeum.cc.

46  :
47  G4MagErrorStepper(EqRhs, num_variables),
48  fNumberOfVariables(num_variables)
49 {
54 }
G4MagErrorStepper(G4EquationOfMotion *EqRhs, G4int numberOfVariables, G4int numStateVariables=12)
G4int fNumberOfVariables
Definition: G4SimpleHeum.hh:70
G4double * dydxTemp
Definition: G4SimpleHeum.hh:72
G4double * yTemp
Definition: G4SimpleHeum.hh:74
G4double * yTemp2
Definition: G4SimpleHeum.hh:75
double G4double
Definition: G4Types.hh:76
G4double * dydxTemp2
Definition: G4SimpleHeum.hh:73

◆ ~G4SimpleHeum()

G4SimpleHeum::~G4SimpleHeum ( )

Definition at line 61 of file G4SimpleHeum.cc.

62 {
63  delete[] dydxTemp;
64  delete[] dydxTemp2;
65  delete[] yTemp;
66  delete[] yTemp2;
67 }
G4double * dydxTemp
Definition: G4SimpleHeum.hh:72
G4double * yTemp
Definition: G4SimpleHeum.hh:74
G4double * yTemp2
Definition: G4SimpleHeum.hh:75
G4double * dydxTemp2
Definition: G4SimpleHeum.hh:73

Member Function Documentation

◆ DumbStepper()

void G4SimpleHeum::DumbStepper ( const G4double  y[],
const G4double  dydx[],
G4double  h,
G4double  yout[] 
)
virtual

Implements G4MagErrorStepper.

Definition at line 75 of file G4SimpleHeum.cc.

79 {
80  G4int i;
81  for( i = 0; i < fNumberOfVariables; i++ )
82  {
83  yTemp[i] = yIn[i] + (1.0/3.0) * h * dydx[i] ;
84  }
85 
87 
88  for( i = 0; i < fNumberOfVariables; i++ )
89  {
90  yTemp2[i] = yIn[i] + (2.0/3.0) * h * dydxTemp[i] ;
91  }
92 
94 
95  for( i = 0; i < fNumberOfVariables; i++ )
96  {
97  yOut[i] = yIn[i] + h * (0.25 * dydx[i] + 0.75 * dydxTemp2[i]);
98  }
99 
100  if ( fNumberOfVariables == 12 ) { NormalisePolarizationVector( yOut ); }
101 }
int G4int
Definition: G4Types.hh:78
G4int fNumberOfVariables
Definition: G4SimpleHeum.hh:70
G4double * dydxTemp
Definition: G4SimpleHeum.hh:72
G4double * yTemp
Definition: G4SimpleHeum.hh:74
void RightHandSide(const double y[], double dydx[])
void NormalisePolarizationVector(G4double vec[12])
G4double * yTemp2
Definition: G4SimpleHeum.hh:75
G4double * dydxTemp2
Definition: G4SimpleHeum.hh:73
Here is the call graph for this function:

◆ IntegratorOrder()

G4int G4SimpleHeum::IntegratorOrder ( ) const
inlinevirtual

Implements G4MagIntegratorStepper.

Definition at line 66 of file G4SimpleHeum.hh.

66 { return 3; }

Member Data Documentation

◆ dydxTemp

G4double* G4SimpleHeum::dydxTemp
private

Definition at line 72 of file G4SimpleHeum.hh.

◆ dydxTemp2

G4double* G4SimpleHeum::dydxTemp2
private

Definition at line 73 of file G4SimpleHeum.hh.

◆ fNumberOfVariables

G4int G4SimpleHeum::fNumberOfVariables
private

Definition at line 70 of file G4SimpleHeum.hh.

◆ yTemp

G4double* G4SimpleHeum::yTemp
private

Definition at line 74 of file G4SimpleHeum.hh.

◆ yTemp2

G4double* G4SimpleHeum::yTemp2
private

Definition at line 75 of file G4SimpleHeum.hh.


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