ARTEMIS
Public Member Functions | Private Types | Private Attributes | List of all members
BinaryCollision< CollisionFunctorType, CopyTransformFunctorType > Class Template Referencefinal

This class performs generic binary collisions. More...

#include <BinaryCollision.H>

Inheritance diagram for BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >:
CollisionBase

Public Member Functions

 BinaryCollision (std::string collision_name, MultiParticleContainer const *const mypc)
 Constructor of the BinaryCollision class. More...
 
virtual ~BinaryCollision ()=default
 
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 (std::string collision_name)
 
 CollisionBase (CollisionBase const &)=delete
 
 CollisionBase (CollisionBase &&)=delete
 
CollisionBaseoperator= (CollisionBase const &)=delete
 
virtual ~CollisionBase ()=default
 
int get_ndt ()
 

Private Types

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

Private Attributes

bool m_isSameSpecies
 
bool m_have_product_species
 
amrex::Vector< std::string > m_product_species
 
CollisionFunctorType m_binary_collision_functor
 
CopyTransformFunctorType m_copy_transform_functor
 

Additional Inherited Members

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

Detailed Description

template<typename CollisionFunctorType, typename CopyTransformFunctorType = NoParticleCreationFunc>
class BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >

This class performs generic binary collisions.

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

Member Typedef Documentation

◆ index_type

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::index_type = ParticleBins::index_type
private

◆ ParticleBins

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::ParticleBins = amrex::DenseBins<ParticleType>
private

◆ ParticleTileType

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::ParticleTileType = WarpXParticleContainer::ParticleTileType
private

◆ ParticleType

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::ParticleType = WarpXParticleContainer::ParticleType
private

◆ SoaData_type

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType
private

Constructor & Destructor Documentation

◆ BinaryCollision()

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::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 CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
virtual BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::~BinaryCollision ( )
virtualdefault

Member Function Documentation

◆ doCollisions()

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
void BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::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 CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
void BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::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

Member Data Documentation

◆ m_binary_collision_functor

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
CollisionFunctorType BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::m_binary_collision_functor
private

◆ m_copy_transform_functor

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
CopyTransformFunctorType BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::m_copy_transform_functor
private

◆ m_have_product_species

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
bool BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::m_have_product_species
private

◆ m_isSameSpecies

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
bool BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::m_isSameSpecies
private

◆ m_product_species

template<typename CollisionFunctorType , typename CopyTransformFunctorType = NoParticleCreationFunc>
amrex::Vector<std::string> BinaryCollision< CollisionFunctorType, CopyTransformFunctorType >::m_product_species
private

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