OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
BorisPusher Class Reference

#include <BorisPusher.h>

Collaboration diagram for BorisPusher:
Collaboration graph

Public Member Functions

KOKKOS_INLINE_FUNCTION BorisPusher ()=default
 
KOKKOS_INLINE_FUNCTION void kick (const Vector_t< double, 3 > &R, Vector_t< double, 3 > &P, const Vector_t< double, 3 > &Ef, const Vector_t< double, 3 > &Bf, const double &dt, const double &mass, const double &charge) const
 
KOKKOS_INLINE_FUNCTION void push (Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &dt) const
 

Detailed Description

Definition at line 32 of file BorisPusher.h.

Constructor & Destructor Documentation

◆ BorisPusher()

KOKKOS_INLINE_FUNCTION BorisPusher::BorisPusher ( )
default

Member Function Documentation

◆ kick()

KOKKOS_INLINE_FUNCTION void BorisPusher::kick ( const Vector_t< double, 3 > &  R,
Vector_t< double, 3 > &  P,
const Vector_t< double, 3 > &  Ef,
const Vector_t< double, 3 > &  Bf,
const double &  dt,
const double &  mass,
const double &  charge 
) const

Definition at line 45 of file BorisPusher.h.

References Physics::c, cross(), and dot().

Referenced by OrbitThreader::integrate(), ParallelTracker::kickParticles(), RFCavity::trackOnAxisParticle(), and ParallelTracker::updateReferenceParticles().

Here is the call graph for this function:

◆ push()

KOKKOS_INLINE_FUNCTION void BorisPusher::push ( Vector_t< double, 3 > &  R,
const Vector_t< double, 3 > &  P,
const double &  dt 
) const

\[ \vec{x}_{n+1/2} = \vec{x}_{n} + \frac{1}{2}\vec{v}_{n-1/2}\quad (= \vec{x}_{n} + \frac{\Delta t}{2} \frac{\vec{\beta}_{n-1/2}\gamma_{n-1/2}}{\gamma_{n-1/2}}) \]

R[i] += 0.5 * P[i] * recpgamma;

Definition at line 101 of file BorisPusher.h.

References dot().

Referenced by ParallelTracker::autophaseCavities(), OrbitThreader::execute(), OrbitThreader::integrate(), ParallelTracker::pushParticles(), OrbitThreader::trackBack(), RFCavity::trackOnAxisParticle(), and ParallelTracker::updateReferenceParticles().

Here is the call graph for this function:

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