G4SimpleHeum Class Reference

#include <G4SimpleHeum.hh>

Inheritance diagram for G4SimpleHeum:

G4MagErrorStepper G4MagIntegratorStepper

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

Detailed Description

Definition at line 50 of file G4SimpleHeum.hh.


Constructor & Destructor Documentation

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

Definition at line 46 of file G4SimpleHeum.cc.

00046                                                                         : 
00047   G4MagErrorStepper(EqRhs, num_variables),
00048   fNumberOfVariables(num_variables)
00049 {
00050   dydxTemp  = new G4double[fNumberOfVariables] ; 
00051   dydxTemp2 = new G4double[fNumberOfVariables] ;
00052   yTemp     = new G4double[fNumberOfVariables] ; 
00053   yTemp2    = new G4double[fNumberOfVariables] ;
00054 }

G4SimpleHeum::~G4SimpleHeum (  ) 

Definition at line 61 of file G4SimpleHeum.cc.

00062 {
00063   delete[] dydxTemp;
00064   delete[] dydxTemp2;
00065   delete[] yTemp;
00066   delete[] yTemp2;
00067 }


Member Function Documentation

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

Implements G4MagErrorStepper.

Definition at line 75 of file G4SimpleHeum.cc.

References G4MagIntegratorStepper::NormalisePolarizationVector(), and G4MagIntegratorStepper::RightHandSide().

00079 {
00080   G4int i;
00081   for( i = 0; i < fNumberOfVariables; i++ ) 
00082   {
00083     yTemp[i] = yIn[i] + (1.0/3.0) * h *  dydx[i] ;
00084   }
00085   
00086   RightHandSide(yTemp,dydxTemp);
00087 
00088   for( i = 0; i < fNumberOfVariables; i++ ) 
00089   {
00090     yTemp2[i] = yIn[i] + (2.0/3.0) * h * dydxTemp[i] ;
00091   }
00092 
00093   RightHandSide(yTemp2,dydxTemp2);
00094 
00095   for( i = 0; i < fNumberOfVariables; i++ ) 
00096   {
00097     yOut[i] = yIn[i] + h * (0.25 * dydx[i] + 0.75 * dydxTemp2[i]);
00098   }
00099       
00100   if ( fNumberOfVariables == 12 ) { NormalisePolarizationVector( yOut ); }
00101 }  

G4int G4SimpleHeum::IntegratorOrder (  )  const [inline, virtual]

Implements G4MagIntegratorStepper.

Definition at line 66 of file G4SimpleHeum.hh.

00066 { return 3; }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:23 2013 for Geant4 by  doxygen 1.4.7