WarpX
Loading...
Searching...
No Matches
SplitAndScatterFunc Class Reference

This class defines an operator to create product particles from DSMC collisions and sets the particle properties (position, momentum, weight). More...

#include <SplitAndScatterFunc.H>

Public Member Functions

 SplitAndScatterFunc ()=default
 Default constructor of the SplitAndScatterFunc class.
 
 SplitAndScatterFunc (const std::string &collision_name, MultiParticleContainer const *mypc)
 Constructor of the SplitAndScatterFunc class.
 
AMREX_INLINE amrex::Vector< int > operator() (const index_type &n_total_pairs, ParticleTileType &ptile1, ParticleTileType &ptile2, const amrex::Vector< WarpXParticleContainer * > &pc_products, ParticleTileType **AMREX_RESTRICT tile_products, const amrex::ParticleReal m1, const amrex::ParticleReal m2, const amrex::Vector< amrex::ParticleReal > &, const index_type *AMREX_RESTRICT mask, amrex::Vector< index_type > &products_np, const SmartCopy *AMREX_RESTRICT copy_species1, const SmartCopy *AMREX_RESTRICT copy_species2, const index_type *AMREX_RESTRICT p_pair_indices_1, const index_type *AMREX_RESTRICT p_pair_indices_2, const amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight, const amrex::ParticleReal *) const
 Function that performs the particle scattering and injection due to binary collisions.
 

Private Types

using ParticleType = typename WarpXParticleContainer::ParticleType
 
using ParticleTileType = typename WarpXParticleContainer::ParticleTileType
 
using ParticleTileDataType = typename ParticleTileType::ParticleTileDataType
 
using ParticleBins = amrex::DenseBins<ParticleTileDataType>
 
using index_type = typename ParticleBins::index_type
 
using SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType
 

Private Attributes

int m_num_product_species
 
amrex::ParticleReal m_reaction_energy = 0.0
 
amrex::Gpu::HostVector< int > m_num_products_host
 
CollisionType m_collision_type
 

Detailed Description

This class defines an operator to create product particles from DSMC collisions and sets the particle properties (position, momentum, weight).

Member Typedef Documentation

◆ index_type

◆ ParticleBins

◆ ParticleTileDataType

using SplitAndScatterFunc::ParticleTileDataType = typename ParticleTileType::ParticleTileDataType
private

◆ ParticleTileType

◆ ParticleType

◆ SoaData_type

using SplitAndScatterFunc::SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType
private

Constructor & Destructor Documentation

◆ SplitAndScatterFunc() [1/2]

SplitAndScatterFunc::SplitAndScatterFunc ( )
default

Default constructor of the SplitAndScatterFunc class.

◆ SplitAndScatterFunc() [2/2]

SplitAndScatterFunc::SplitAndScatterFunc ( const std::string & collision_name,
MultiParticleContainer const * mypc )

Constructor of the SplitAndScatterFunc class.

Parameters
[in]collision_namethe name of the collision
[in]mypcpointer to the MultiParticleContainer

Member Function Documentation

◆ operator()()

AMREX_INLINE amrex::Vector< int > SplitAndScatterFunc::operator() ( const index_type & n_total_pairs,
ParticleTileType & ptile1,
ParticleTileType & ptile2,
const amrex::Vector< WarpXParticleContainer * > & pc_products,
ParticleTileType **AMREX_RESTRICT tile_products,
const amrex::ParticleReal m1,
const amrex::ParticleReal m2,
const amrex::Vector< amrex::ParticleReal > & ,
const index_type *AMREX_RESTRICT mask,
amrex::Vector< index_type > & products_np,
const SmartCopy *AMREX_RESTRICT copy_species1,
const SmartCopy *AMREX_RESTRICT copy_species2,
const index_type *AMREX_RESTRICT p_pair_indices_1,
const index_type *AMREX_RESTRICT p_pair_indices_2,
const amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight,
const amrex::ParticleReal *  ) const
inline

Function that performs the particle scattering and injection due to binary collisions.

Returns
num_added the number of particles added to each species.

Member Data Documentation

◆ m_collision_type

CollisionType SplitAndScatterFunc::m_collision_type
private

◆ m_num_product_species

int SplitAndScatterFunc::m_num_product_species
private

◆ m_num_products_host

amrex::Gpu::HostVector<int> SplitAndScatterFunc::m_num_products_host
private

◆ m_reaction_energy

amrex::ParticleReal SplitAndScatterFunc::m_reaction_energy = 0.0
private

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