WarpX
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)
 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 *I1, index_type *I2, SoaData_type soa_1, SoaData_type soa_2, GetParticlePosition, GetParticlePosition, amrex::Real const q1, amrex::Real const q2, amrex::Real const m1, amrex::Real 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::Real m_CoulombLog
 

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

using PairWiseCoulombCollisionFunc::index_type = ParticleBins::index_type
private

◆ ParticleBins

using PairWiseCoulombCollisionFunc::ParticleBins = amrex::DenseBins<ParticleType>
private

◆ ParticleType

using PairWiseCoulombCollisionFunc::ParticleType = WarpXParticleContainer::ParticleType
private

◆ SoaData_type

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

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)
inline

Constructor of the PairWiseCoulombCollisionFunc class.

Parameters
[in]collision_namethe name of the collision

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 I1,
index_type I2,
SoaData_type  soa_1,
SoaData_type  soa_2,
GetParticlePosition  ,
GetParticlePosition  ,
amrex::Real const  q1,
amrex::Real const  q2,
amrex::Real const  m1,
amrex::Real 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]I1and I2 are the index arrays. They determine all elements that will be used.
[in,out]u1and u2 are the velocity arrays (u=v*gamma), they could be either different or the same, their lengths are not needed,
[in]w1and w2 are arrays of weights.
[in]q1and q2 are charges. m1 and m2 are 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::Real PairWiseCoulombCollisionFunc::m_CoulombLog
private

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