WarpX
Public Member Functions | Private Attributes | List of all members
BackgroundMCCCollision Class Referencefinal

#include <BackgroundMCCCollision.H>

Inheritance diagram for BackgroundMCCCollision:
CollisionBase

Public Member Functions

 BackgroundMCCCollision (std::string const &collision_name)
 
 ~BackgroundMCCCollision () override=default
 
 BackgroundMCCCollision (BackgroundMCCCollision const &)=delete
 
BackgroundMCCCollisionoperator= (BackgroundMCCCollision const &)=delete
 
 BackgroundMCCCollision (BackgroundMCCCollision &&)=delete
 
BackgroundMCCCollisionoperator= (BackgroundMCCCollision &&)=delete
 
amrex::ParticleReal get_nu_max (amrex::Vector< ScatteringProcess > const &mcc_processes) const
 
void doCollisions (amrex::Real cur_time, amrex::Real dt, MultiParticleContainer *mypc) override
 
void doBackgroundCollisionsWithinTile (WarpXParIter &pti, amrex::Real t)
 
void doBackgroundIonization (int lev, amrex::LayoutData< amrex::Real > *cost, WarpXParticleContainer &species1, WarpXParticleContainer &species2, amrex::Real t)
 
- Public Member Functions inherited from CollisionBase
 CollisionBase (const std::string &collision_name)
 
 CollisionBase (CollisionBase const &)=delete
 
 CollisionBase (CollisionBase &&)=delete
 
CollisionBaseoperator= (CollisionBase const &)=delete
 
CollisionBaseoperator= (CollisionBase const &&)=delete
 
virtual ~CollisionBase ()=default
 
int get_ndt () const
 

Private Attributes

amrex::Vector< ScatteringProcessm_scattering_processes
 
amrex::Vector< ScatteringProcessm_ionization_processes
 
amrex::Gpu::DeviceVector< ScatteringProcess::Executorm_scattering_processes_exe
 
amrex::Gpu::DeviceVector< ScatteringProcess::Executorm_ionization_processes_exe
 
bool init_flag = false
 
bool ionization_flag = false
 
amrex::ParticleReal m_mass1
 
amrex::ParticleReal m_max_background_density = 0
 
amrex::ParticleReal m_background_mass
 
amrex::ParticleReal m_total_collision_prob
 
amrex::ParticleReal m_total_collision_prob_ioniz = 0
 
amrex::ParticleReal m_nu_max
 
amrex::ParticleReal m_nu_max_ioniz
 
amrex::Parser m_background_density_parser
 
amrex::Parser m_background_temperature_parser
 
amrex::ParserExecutor< 4 > m_background_density_func
 
amrex::ParserExecutor< 4 > m_background_temperature_func
 

Additional Inherited Members

- Protected Attributes inherited from CollisionBase
amrex::Vector< std::string > m_species_names
 
int m_ndt
 

Constructor & Destructor Documentation

◆ BackgroundMCCCollision() [1/3]

BackgroundMCCCollision::BackgroundMCCCollision ( std::string const &  collision_name)

◆ ~BackgroundMCCCollision()

BackgroundMCCCollision::~BackgroundMCCCollision ( )
overridedefault

◆ BackgroundMCCCollision() [2/3]

BackgroundMCCCollision::BackgroundMCCCollision ( BackgroundMCCCollision const &  )
delete

◆ BackgroundMCCCollision() [3/3]

BackgroundMCCCollision::BackgroundMCCCollision ( BackgroundMCCCollision &&  )
delete

Member Function Documentation

◆ doBackgroundCollisionsWithinTile()

void BackgroundMCCCollision::doBackgroundCollisionsWithinTile ( WarpXParIter pti,
amrex::Real  t 
)

Perform particle conserving MCC collisions within a tile

Parameters
ptiparticle iterator
tcurrent time

◆ doBackgroundIonization()

void BackgroundMCCCollision::doBackgroundIonization ( int  lev,
amrex::LayoutData< amrex::Real > *  cost,
WarpXParticleContainer species1,
WarpXParticleContainer species2,
amrex::Real  t 
)

Perform MCC ionization interactions

Parameters
[in]levthe mesh-refinement level
[in,out]costpointer to (load balancing) cost corresponding to box where present particles are ionized.
[in,out]species1,species2reference to species container used to inject new particles
tcurrent time

◆ doCollisions()

void BackgroundMCCCollision::doCollisions ( amrex::Real  cur_time,
amrex::Real  dt,
MultiParticleContainer mypc 
)
overridevirtual

Perform the collisions

Parameters
cur_timeCurrent time
dtTime step size
mypcContainer of species involved

Reimplemented from CollisionBase.

◆ get_nu_max()

amrex::ParticleReal BackgroundMCCCollision::get_nu_max ( amrex::Vector< ScatteringProcess > const &  mcc_processes) const

Calculate the maximum collision frequency using a fixed energy grid that ranges from 1e-4 to 5000 eV in 0.2 eV increments

◆ operator=() [1/2]

BackgroundMCCCollision& BackgroundMCCCollision::operator= ( BackgroundMCCCollision &&  )
delete

◆ operator=() [2/2]

BackgroundMCCCollision& BackgroundMCCCollision::operator= ( BackgroundMCCCollision const &  )
delete

Member Data Documentation

◆ init_flag

bool BackgroundMCCCollision::init_flag = false
private

◆ ionization_flag

bool BackgroundMCCCollision::ionization_flag = false
private

◆ m_background_density_func

amrex::ParserExecutor<4> BackgroundMCCCollision::m_background_density_func
private

◆ m_background_density_parser

amrex::Parser BackgroundMCCCollision::m_background_density_parser
private

◆ m_background_mass

amrex::ParticleReal BackgroundMCCCollision::m_background_mass
private

◆ m_background_temperature_func

amrex::ParserExecutor<4> BackgroundMCCCollision::m_background_temperature_func
private

◆ m_background_temperature_parser

amrex::Parser BackgroundMCCCollision::m_background_temperature_parser
private

◆ m_ionization_processes

amrex::Vector<ScatteringProcess> BackgroundMCCCollision::m_ionization_processes
private

◆ m_ionization_processes_exe

amrex::Gpu::DeviceVector<ScatteringProcess::Executor> BackgroundMCCCollision::m_ionization_processes_exe
private

◆ m_mass1

amrex::ParticleReal BackgroundMCCCollision::m_mass1
private

◆ m_max_background_density

amrex::ParticleReal BackgroundMCCCollision::m_max_background_density = 0
private

◆ m_nu_max

amrex::ParticleReal BackgroundMCCCollision::m_nu_max
private

◆ m_nu_max_ioniz

amrex::ParticleReal BackgroundMCCCollision::m_nu_max_ioniz
private

◆ m_scattering_processes

amrex::Vector<ScatteringProcess> BackgroundMCCCollision::m_scattering_processes
private

◆ m_scattering_processes_exe

amrex::Gpu::DeviceVector<ScatteringProcess::Executor> BackgroundMCCCollision::m_scattering_processes_exe
private

◆ m_total_collision_prob

amrex::ParticleReal BackgroundMCCCollision::m_total_collision_prob
private

◆ m_total_collision_prob_ioniz

amrex::ParticleReal BackgroundMCCCollision::m_total_collision_prob_ioniz = 0
private

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