WarpX
Public Member Functions | Private Types | Private Attributes | List of all members
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. More...
 
 ~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
 

Private Types

using ParticleType = WarpXParticleContainer::ParticleType
 
using ParticleTileType = WarpXParticleContainer::ParticleTileType
 
using ParticleTileDataType = ParticleTileType::ParticleTileDataType
 
using ParticleBins = amrex::DenseBins< ParticleTileDataType >
 
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
 
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
 

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

◆ SoaData_type

template<typename CollisionFunctor , typename CopyTransformFunctor = NoParticleCreationFunc>
using BinaryCollision< CollisionFunctor, CopyTransformFunctor >::SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType
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_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_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: