OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
RK4< FieldFunction, Arguments > Class Template Reference

4-th order Runnge-Kutta stepper More...

#include <RK4.h>

Inheritance diagram for RK4< FieldFunction, Arguments >:
Inheritance graph
Collaboration diagram for RK4< FieldFunction, Arguments >:
Collaboration graph

Public Member Functions

 RK4 (const FieldFunction &fieldfunc)
 
virtual bool advance (PartBunch_t *bunch, const size_t &i, const double &t, const double dt, Arguments &... args) const
 

Protected Attributes

const FieldFunction & fieldfunc_m
 

Private Member Functions

bool doAdvance_m (PartBunch_t *bunch, const size_t &i, const double &t, const double dt, Arguments &... args) const
 
bool derivate_m (PartBunch_t *bunch, double *y, const double &t, double *yp, const size_t &i, Arguments &... args) const
 
void copyTo (const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, double *x) const
 
void copyFrom (Vector_t< double, 3 > &R, Vector_t< double, 3 > &P, double *x) const
 

Private Attributes

const double mass_coeff
 
const double c_mmtns = Physics::c * Units::m2mm / Units::s2ns
 
const double c_mtns = Physics::c / Units::s2ns
 

Detailed Description

template<typename FieldFunction, typename... Arguments>
class RK4< FieldFunction, Arguments >

4-th order Runnge-Kutta stepper

Definition at line 27 of file RK4.h.

Constructor & Destructor Documentation

◆ RK4()

template<typename FieldFunction , typename... Arguments>
RK4< FieldFunction, Arguments >::RK4 ( const FieldFunction &  fieldfunc)
inline

Definition at line 29 of file RK4.h.

Member Function Documentation

◆ advance()

virtual bool Stepper< FieldFunction, Arguments >::advance ( PartBunch_t bunch,
const size_t &  i,
const double &  t,
const double  dt,
Arguments &...  args 
) const
inlinevirtualinherited

Definition at line 41 of file Stepper.h.

◆ copyFrom()

template<typename FieldFunction , typename... Arguments>
void RK4< FieldFunction, Arguments >::copyFrom ( Vector_t< double, 3 > &  R,
Vector_t< double, 3 > &  P,
double *  x 
) const
private

Definition at line 132 of file RK4.hpp.

◆ copyTo()

template<typename FieldFunction , typename... Arguments>
void RK4< FieldFunction, Arguments >::copyTo ( const Vector_t< double, 3 > &  R,
const Vector_t< double, 3 > &  P,
double *  x 
) const
private

Definition at line 123 of file RK4.hpp.

◆ derivate_m()

template<typename FieldFunction , typename... Arguments>
bool RK4< FieldFunction, Arguments >::derivate_m ( PartBunch_t bunch,
double *  y,
const double &  t,
double *  yp,
const size_t &  i,
Arguments &...  args 
) const
private
Parameters
y
t
yp
Pindex
Returns

Definition at line 80 of file RK4.hpp.

References Physics::c.

◆ doAdvance_m()

template<typename FieldFunction , typename... Arguments>
bool RK4< FieldFunction, Arguments >::doAdvance_m ( PartBunch_t bunch,
const size_t &  i,
const double &  t,
const double  dt,
Arguments &...  args 
) const
privatevirtual

Implements Stepper< FieldFunction, Arguments... >.

Definition at line 20 of file RK4.hpp.

Member Data Documentation

◆ c_mmtns

template<typename FieldFunction , typename... Arguments>
const double RK4< FieldFunction, Arguments >::c_mmtns = Physics::c * Units::m2mm / Units::s2ns
private

Definition at line 57 of file RK4.h.

◆ c_mtns

template<typename FieldFunction , typename... Arguments>
const double RK4< FieldFunction, Arguments >::c_mtns = Physics::c / Units::s2ns
private

Definition at line 58 of file RK4.h.

◆ fieldfunc_m

const FieldFunction& Stepper< FieldFunction, Arguments >::fieldfunc_m
protectedinherited

Definition at line 64 of file Stepper.h.

◆ mass_coeff

template<typename FieldFunction , typename... Arguments>
const double RK4< FieldFunction, Arguments >::mass_coeff
private
Initial value:
=
1.0e9 * Units::GeV2kg
constexpr double GeV2kg
Definition Units.h:104

Definition at line 54 of file RK4.h.


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