WarpX
Classes | Functions
MCCScattering.H File Reference
#include "MCCProcess.H"
#include "Utils/ParticleUtils.H"
#include "Utils/WarpXConst.H"
#include <AMReX_Random.H>
#include <AMReX_REAL.H>

Go to the source code of this file.

Classes

class  ImpactIonizationFilterFunc
 Filter functor for impact ionization. More...
 
class  ImpactIonizationTransformFunc
 Transform functor for impact ionization. More...
 

Functions

AMREX_GPU_HOST_DEVICE AMREX_INLINE void ElasticScattering (amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz, amrex::ParticleReal uCOM_x, amrex::ParticleReal uCOM_y, amrex::ParticleReal uCOM_z, amrex::RandomEngine const &engine)
 Function to perform elastic scattering of a particle in the lab frame. The particle velocities transformed to the COM frame where a hard sphere collision occurs. The resulting particle velocities are transformed back to the lab frame and the input particle's velocity is updated. More...
 
AMREX_GPU_HOST_DEVICE AMREX_INLINE void BackScattering (amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz, const amrex::ParticleReal uCOM_x, const amrex::ParticleReal uCOM_y, const amrex::ParticleReal uCOM_z)
 Function to perform back scattering of a particle in the lab frame. The particle velocity is transformed to the COM frame where it is reversed. The resulting particle velocities are then transformed back to the lab frame and the input particle's velocity is updated. More...
 
AMREX_GPU_HOST_DEVICE AMREX_INLINE void ChargeExchange (amrex::ParticleReal &ux, amrex::ParticleReal &uy, amrex::ParticleReal &uz, const amrex::ParticleReal ua_x, const amrex::ParticleReal ua_y, const amrex::ParticleReal ua_z)
 Function to perform charge exchange of an ion with a neutral particle. More...
 

Detailed Description

This file contains the implementation of the scattering processes available in the MCC handling.

Function Documentation

◆ BackScattering()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void BackScattering ( amrex::ParticleReal &  ux,
amrex::ParticleReal &  uy,
amrex::ParticleReal &  uz,
const amrex::ParticleReal  uCOM_x,
const amrex::ParticleReal  uCOM_y,
const amrex::ParticleReal  uCOM_z 
)

Function to perform back scattering of a particle in the lab frame. The particle velocity is transformed to the COM frame where it is reversed. The resulting particle velocities are then transformed back to the lab frame and the input particle's velocity is updated.

Parameters

◆ ChargeExchange()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void ChargeExchange ( amrex::ParticleReal &  ux,
amrex::ParticleReal &  uy,
amrex::ParticleReal &  uz,
const amrex::ParticleReal  ua_x,
const amrex::ParticleReal  ua_y,
const amrex::ParticleReal  ua_z 
)

Function to perform charge exchange of an ion with a neutral particle.

Parameters

◆ ElasticScattering()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void ElasticScattering ( amrex::ParticleReal &  ux,
amrex::ParticleReal &  uy,
amrex::ParticleReal &  uz,
amrex::ParticleReal  uCOM_x,
amrex::ParticleReal  uCOM_y,
amrex::ParticleReal  uCOM_z,
amrex::RandomEngine const &  engine 
)

Function to perform elastic scattering of a particle in the lab frame. The particle velocities transformed to the COM frame where a hard sphere collision occurs. The resulting particle velocities are transformed back to the lab frame and the input particle's velocity is updated.

Parameters