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

Leap-Frog 2nd order. More...

#include <LF2.h>

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

Public Member Functions

 LF2 (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
void push_m (Vector_t &R, const Vector_t &P, const double &h) const
bool kick_m (PartBunchBase< double, 3 > *bunch, const size_t &i, const double &t, const double &h, Arguments &... args) const

Detailed Description

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

Leap-Frog 2nd order.

Definition at line 26 of file LF2.h.

Constructor & Destructor Documentation

◆ LF2()

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

Definition at line 29 of file LF2.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.

◆ doAdvance_m()

template<typename FieldFunction, typename ... Arguments>
bool LF2< 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 22 of file LF2.hpp.

References kick_m(), PartBunchBase< T, Dim >::P, push_m(), and PartBunchBase< T, Dim >::R.

Here is the call graph for this function:

◆ kick_m()

template<typename FieldFunction, typename ... Arguments>
bool LF2< FieldFunction, Arguments >::kick_m ( PartBunchBase< double, 3 > * bunch,
const size_t & i,
const double & t,
const double & h,
Arguments &... args ) const
private

Definition at line 54 of file LF2.hpp.

References Stepper< FieldFunction, Arguments... >::fieldfunc_m, Units::GeV2eV, BorisPusher::kick(), PartBunchBase< T, Dim >::M, PartBunchBase< T, Dim >::P, PartBunchBase< T, Dim >::Q, Physics::q_e, and PartBunchBase< T, Dim >::R.

Referenced by doAdvance_m().

Here is the call graph for this function:

◆ push_m()

template<typename FieldFunction, typename ... Arguments>
void LF2< FieldFunction, Arguments >::push_m ( Vector_t & R,
const Vector_t & P,
const double & h ) const
private

Definition at line 43 of file LF2.hpp.

References Physics::c, and dot().

Referenced by doAdvance_m().

Here is the call graph for this function:

Member Data Documentation

◆ fieldfunc_m

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

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