OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Attributes | List of all members
BorisPusher Class Reference

#include <BorisPusher.h>

Collaboration diagram for BorisPusher:
Collaboration graph
[legend]

Public Member Functions

 BorisPusher (const PartData &ref)
 
 BorisPusher ()
 
void initialise (const PartData *ref)
 
void kick (const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt) const
 
void kick (const Vector_t &R, Vector_t &P, const Vector_t &Ef, const Vector_t &Bf, const double &dt, const double &mass, const double &charge) const
 
void push (Vector_t &R, const Vector_t &P, const double &dt) const
 

Private Attributes

const PartDataitsReference
 

Detailed Description

Definition at line 13 of file BorisPusher.h.

Constructor & Destructor Documentation

BorisPusher::BorisPusher ( const PartData ref)
inline

Definition at line 35 of file BorisPusher.h.

BorisPusher::BorisPusher ( )
inline

Definition at line 39 of file BorisPusher.h.

Member Function Documentation

void BorisPusher::initialise ( const PartData ref)
inline

Definition at line 43 of file BorisPusher.h.

References itsReference, and Hypervolume::ref.

Referenced by Bend2D::setupPusher().

void BorisPusher::kick ( const Vector_t R,
Vector_t P,
const Vector_t Ef,
const Vector_t Bf,
const double &  dt 
) const
inline
void BorisPusher::kick ( const Vector_t R,
Vector_t P,
const Vector_t Ef,
const Vector_t Bf,
const double &  dt,
const double &  mass,
const double &  charge 
) const
inline

Definition at line 56 of file BorisPusher.h.

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

Here is the call graph for this function:

void BorisPusher::push ( Vector_t R,
const Vector_t P,
const double &  dt 
) const
inline

\[ \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 116 of file BorisPusher.h.

References dot(), and sqrt().

Referenced by ParallelTTracker::applyFractionalStep(), ParallelSliceTracker::autophaseCavities(), ParallelTTracker::autophaseCavities(), Bend2D::calculateBendAngle(), Bend2D::calculateRefTrajectory(), OrbitThreader::execute(), ParallelSliceTracker::findStartPosition(), OrbitThreader::integrate(), ParallelTTracker::pushParticles(), OrbitThreader::trackBack(), ParallelSliceTracker::updateReferenceParticle(), and ParallelTTracker::updateReferenceParticle().

Here is the call graph for this function:

Member Data Documentation

const PartData* BorisPusher::itsReference
private

Definition at line 32 of file BorisPusher.h.

Referenced by initialise(), and kick().


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