OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
RK4< FieldFunction, Arguments > Class Template Reference

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

#include <RK4.h>

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

Public Member Functions

 RK4 (const FieldFunction &fieldfunc)
virtual bool advance (PartBunchBase< double, 3 > *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 (PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double dt, Arguments &... args) const
bool derivate_m (PartBunchBase< double, 3 > *bunch, double *y, const double &t, double *yp, const size_t &i, Arguments &... args) const
void copyTo (const Vector_t &R, const Vector_t &P, double *x) const
void copyFrom (Vector_t &R, Vector_t &P, double *x) const

Private Attributes

const double mass_coeff = 1.0e9 * Units::GeV2kg

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 30 of file RK4.h.

References Stepper< FieldFunction, Arguments... >::Stepper().

Here is the call graph for this function:

Member Function Documentation

◆ advance()

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

Definition at line 42 of file Stepper.h.

◆ copyFrom()

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

Definition at line 148 of file RK4.hpp.

Referenced by doAdvance_m().

◆ copyTo()

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

Definition at line 136 of file RK4.hpp.

Referenced by doAdvance_m().

◆ derivate_m()

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

◆ doAdvance_m()

template<typename FieldFunction, typename ... Arguments>
bool RK4< FieldFunction, Arguments >::doAdvance_m ( PartBunchBase< double, 3 > * 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.

References copyFrom(), copyTo(), derivate_m(), PartBunchBase< T, Dim >::P, and PartBunchBase< T, Dim >::R.

Here is the call graph for this function:

Member Data Documentation

◆ fieldfunc_m

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

◆ mass_coeff

template<typename FieldFunction, typename ... Arguments>
const double RK4< FieldFunction, Arguments >::mass_coeff = 1.0e9 * Units::GeV2kg
private

Definition at line 59 of file RK4.h.

Referenced by derivate_m().


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