WarpX
Loading...
Searching...
No Matches
BinaryCollision< CollisionFunctor, CopyTransformFunctor > Class Template Referencefinal

This class performs generic binary collisions. More...

#include <BinaryCollision.H>

Inheritance diagram for BinaryCollision< CollisionFunctor, CopyTransformFunctor >:
CollisionBase

Public Member Functions

 BinaryCollision (std::string collision_name, MultiParticleContainer const *const mypc)
 Constructor of the BinaryCollision class.
 
 ~BinaryCollision () override=default
 
 BinaryCollision (BinaryCollision const &)=default
 
BinaryCollisionoperator= (BinaryCollision const &)=default
 
 BinaryCollision (BinaryCollision &&)=delete
 
BinaryCollisionoperator= (BinaryCollision &&)=delete
 
void doCollisions (amrex::Real cur_time, amrex::Real dt, MultiParticleContainer *mypc) override
 
void doCollisionsWithinTile (amrex::Real dt, int const lev, amrex::MFIter const &mfi, WarpXParticleContainer &species_1, WarpXParticleContainer &species_2, amrex::Vector< WarpXParticleContainer * > product_species_vector, SmartCopy *copy_species1, SmartCopy *copy_species2)
 
- 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
 
bool use_global_debye_length () const
 

Private Types

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

Private Attributes

bool m_isSameSpecies
 
bool m_have_product_species
 
bool m_correct_energy_momentum = false
 
amrex::ParticleReal m_beta_weight_exponent = 1.
 
amrex::ParticleReal m_energy_fraction = 0.05
 
amrex::ParticleReal m_energy_fraction_max = 0.5
 
amrex::Vector< std::string > m_product_species
 
CollisionFunctor m_binary_collision_functor
 
CopyTransformFunctor m_copy_transform_functor
 

Additional Inherited Members

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

Detailed Description

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
class BinaryCollision< CollisionFunctor, CopyTransformFunctor >

This class performs generic binary collisions.

Template Parameters
CollisionFunctorthe specific binary collision functor that acts on a single cell
CopyTransformFunctorthe second functor used in the case of particle creation

Member Typedef Documentation

◆ index_type

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::index_type = ParticleBins::index_type
private

◆ ParticleBins

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::ParticleBins = amrex::DenseBins<ParticleTileDataType>
private

◆ ParticleTileDataType

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::ParticleTileDataType = ParticleTileType::ParticleTileDataType
private

◆ ParticleTileType

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::ParticleTileType = WarpXParticleContainer::ParticleTileType
private

◆ ParticleType

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::ParticleType = WarpXParticleContainer::ParticleType
private

Constructor & Destructor Documentation

◆ BinaryCollision() [1/3]

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision< CollisionFunctor, CopyTransformFunctor >::BinaryCollision ( std::string collision_name,
MultiParticleContainer const *const mypc )
inline

Constructor of the BinaryCollision class.

Parameters
[in]collision_namethe name of the collision
[in]mypcContainer of species involved

◆ ~BinaryCollision()

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision< CollisionFunctor, CopyTransformFunctor >::~BinaryCollision ( )
overridedefault

◆ BinaryCollision() [2/3]

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision< CollisionFunctor, CopyTransformFunctor >::BinaryCollision ( BinaryCollision< CollisionFunctor, CopyTransformFunctor > const & )
default

◆ BinaryCollision() [3/3]

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision< CollisionFunctor, CopyTransformFunctor >::BinaryCollision ( BinaryCollision< CollisionFunctor, CopyTransformFunctor > && )
delete

Member Function Documentation

◆ doCollisions()

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
void BinaryCollision< CollisionFunctor, CopyTransformFunctor >::doCollisions ( amrex::Real cur_time,
amrex::Real dt,
MultiParticleContainer * mypc )
inlineoverridevirtual

Perform the collisions

Parameters
cur_timeCurrent time
dtTime step size
mypcContainer of species involved

Reimplemented from CollisionBase.

◆ doCollisionsWithinTile()

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
void BinaryCollision< CollisionFunctor, CopyTransformFunctor >::doCollisionsWithinTile ( amrex::Real dt,
int const lev,
amrex::MFIter const & mfi,
WarpXParticleContainer & species_1,
WarpXParticleContainer & species_2,
amrex::Vector< WarpXParticleContainer * > product_species_vector,
SmartCopy * copy_species1,
SmartCopy * copy_species2 )
inline

Perform all binary collisions within a tile

Parameters
[in]dttime step size
[in]levthe mesh-refinement level
[in]mfiiterator for multifab
species_1first species container
species_2second species container
product_species_vectorvector of pointers to product species containers
copy_species1vector of SmartCopy functors used to copy species 1 to product species
copy_species2vector of SmartCopy functors used to copy species 2 to product species

◆ operator=() [1/2]

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision & BinaryCollision< CollisionFunctor, CopyTransformFunctor >::operator= ( BinaryCollision< CollisionFunctor, CopyTransformFunctor > && )
delete

◆ operator=() [2/2]

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
BinaryCollision & BinaryCollision< CollisionFunctor, CopyTransformFunctor >::operator= ( BinaryCollision< CollisionFunctor, CopyTransformFunctor > const & )
default

Member Data Documentation

◆ m_beta_weight_exponent

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
amrex::ParticleReal BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_beta_weight_exponent = 1.
private

◆ m_binary_collision_functor

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
CollisionFunctor BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_binary_collision_functor
private

◆ m_copy_transform_functor

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
CopyTransformFunctor BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_copy_transform_functor
private

◆ m_correct_energy_momentum

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
bool BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_correct_energy_momentum = false
private

◆ m_energy_fraction

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
amrex::ParticleReal BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_energy_fraction = 0.05
private

◆ m_energy_fraction_max

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
amrex::ParticleReal BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_energy_fraction_max = 0.5
private

◆ m_have_product_species

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
bool BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_have_product_species
private

◆ m_isSameSpecies

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
bool BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_isSameSpecies
private

◆ m_product_species

template<typename CollisionFunctor, typename CopyTransformFunctor = NoParticleCreationFunc>
amrex::Vector<std::string> BinaryCollision< CollisionFunctor, CopyTransformFunctor >::m_product_species
private

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