WarpX
Functions
UpdatePosition.H File Reference
#include "Utils/WarpXConst.H"
#include <AMReX.H>
#include <AMReX_FArrayBox.H>
#include <AMReX_REAL.H>

Go to the source code of this file.

Functions

AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdatePosition (amrex::ParticleReal &x, amrex::ParticleReal &y, amrex::ParticleReal &z, const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz, const amrex::Real dt)
 Push the particle's positions over one timestep, given the value of its momenta ux, uy, uz. This uses the standard leapfrog algorithm x^{n+1} - x^{n} = dt*u^{n+1/2}/gamma^{n+1/2}. More...
 
AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdatePositionImplicit (amrex::ParticleReal &x, amrex::ParticleReal &y, amrex::ParticleReal &z, const amrex::ParticleReal ux_n, const amrex::ParticleReal uy_n, const amrex::ParticleReal uz_n, const amrex::ParticleReal ux, const amrex::ParticleReal uy, const amrex::ParticleReal uz, const amrex::Real dt)
 Push the particle's positions over one timestep, given the value of its momenta ux, uy, uz. The implicit version is the Crank-Nicolson scheme, x^{n+1} - x^{n} = dt*(u^{n+1} + u^{n})/(gamma^{n+1} + gamma^{n}) See Eqs. 15 and 17 in Chen, JCP 407 (2020) 109228. More...
 

Function Documentation

◆ UpdatePosition()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdatePosition ( amrex::ParticleReal &  x,
amrex::ParticleReal &  y,
amrex::ParticleReal &  z,
const amrex::ParticleReal  ux,
const amrex::ParticleReal  uy,
const amrex::ParticleReal  uz,
const amrex::Real  dt 
)

Push the particle's positions over one timestep, given the value of its momenta ux, uy, uz. This uses the standard leapfrog algorithm x^{n+1} - x^{n} = dt*u^{n+1/2}/gamma^{n+1/2}.

◆ UpdatePositionImplicit()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void UpdatePositionImplicit ( amrex::ParticleReal &  x,
amrex::ParticleReal &  y,
amrex::ParticleReal &  z,
const amrex::ParticleReal  ux_n,
const amrex::ParticleReal  uy_n,
const amrex::ParticleReal  uz_n,
const amrex::ParticleReal  ux,
const amrex::ParticleReal  uy,
const amrex::ParticleReal  uz,
const amrex::Real  dt 
)

Push the particle's positions over one timestep, given the value of its momenta ux, uy, uz. The implicit version is the Crank-Nicolson scheme, x^{n+1} - x^{n} = dt*(u^{n+1} + u^{n})/(gamma^{n+1} + gamma^{n}) See Eqs. 15 and 17 in Chen, JCP 407 (2020) 109228.