ARTEMIS
Public Member Functions | Private Types | Private Attributes | List of all members
PairWiseCoulombCollisionFunc Class Reference

This functor performs pairwise Coulomb collision on a single cell by calling the function ElasticCollisionPerez. It also reads and contains the Coulomb logarithm. More...

#include <PairWiseCoulombCollisionFunc.H>

Public Member Functions

 PairWiseCoulombCollisionFunc ()=default
 Default constructor of the PairWiseCoulombCollisionFunc class. More...
 
 PairWiseCoulombCollisionFunc (const std::string collision_name, [[maybe_unused]] MultiParticleContainer const *const mypc, const bool isSameSpecies)
 Constructor of the PairWiseCoulombCollisionFunc class. More...
 
AMREX_GPU_HOST_DEVICE AMREX_INLINE void operator() (index_type const I1s, index_type const I1e, index_type const I2s, index_type const I2e, index_type const *AMREX_RESTRICT I1, index_type const *AMREX_RESTRICT I2, SoaData_type soa_1, SoaData_type soa_2, GetParticlePosition, GetParticlePosition, amrex::ParticleReal const q1, amrex::ParticleReal const q2, amrex::ParticleReal const m1, amrex::ParticleReal const m2, amrex::Real const dt, amrex::Real const dV, index_type const, index_type *, index_type *, index_type *, amrex::ParticleReal *, amrex::RandomEngine const &engine) const
 operator() of the PairWiseCoulombCollisionFunc class. Performs Coulomb collisions at the cell level by calling ElasticCollisionPerez. More...
 

Private Types

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

Private Attributes

amrex::ParticleReal m_CoulombLog
 
bool m_isSameSpecies
 

Detailed Description

This functor performs pairwise Coulomb collision on a single cell by calling the function ElasticCollisionPerez. It also reads and contains the Coulomb logarithm.

Member Typedef Documentation

◆ index_type

◆ ParticleBins

◆ ParticleType

◆ SoaData_type

Constructor & Destructor Documentation

◆ PairWiseCoulombCollisionFunc() [1/2]

PairWiseCoulombCollisionFunc::PairWiseCoulombCollisionFunc ( )
default

Default constructor of the PairWiseCoulombCollisionFunc class.

◆ PairWiseCoulombCollisionFunc() [2/2]

PairWiseCoulombCollisionFunc::PairWiseCoulombCollisionFunc ( const std::string  collision_name,
[[maybe_unused] ] MultiParticleContainer const *const  mypc,
const bool  isSameSpecies 
)
inline

Constructor of the PairWiseCoulombCollisionFunc class.

Parameters
[in]collision_namethe name of the collision
[in]mypcthe particle container (unused)
[in]isSameSpeciestrue if this is an intra-species colission

Member Function Documentation

◆ operator()()

AMREX_GPU_HOST_DEVICE AMREX_INLINE void PairWiseCoulombCollisionFunc::operator() ( index_type const  I1s,
index_type const  I1e,
index_type const  I2s,
index_type const  I2e,
index_type const *AMREX_RESTRICT  I1,
index_type const *AMREX_RESTRICT  I2,
SoaData_type  soa_1,
SoaData_type  soa_2,
GetParticlePosition  ,
GetParticlePosition  ,
amrex::ParticleReal const  q1,
amrex::ParticleReal const  q2,
amrex::ParticleReal const  m1,
amrex::ParticleReal const  m2,
amrex::Real const  dt,
amrex::Real const  dV,
index_type const  ,
index_type ,
index_type ,
index_type ,
amrex::ParticleReal *  ,
amrex::RandomEngine const &  engine 
) const
inline

operator() of the PairWiseCoulombCollisionFunc class. Performs Coulomb collisions at the cell level by calling ElasticCollisionPerez.

Parameters
[in]I1s,I2sis the start index for I1,I2 (inclusive).
[in]I1e,I2eis the stop index for I1,I2 (exclusive).
[in]I1,I2index arrays. They determine all elements that will be used.
[in,out]soa_1,soa_2contain the struct of array data of the two species.
[in]q1,q2are charges.
[in]m1,m2are masses.
[in]dtis the time step length between two collision calls.
[in]dVis the volume of the corresponding cell.
[in]enginethe random engine.

Member Data Documentation

◆ m_CoulombLog

amrex::ParticleReal PairWiseCoulombCollisionFunc::m_CoulombLog
private

◆ m_isSameSpecies

bool PairWiseCoulombCollisionFunc::m_isSameSpecies
private

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