8#ifndef WARPX_PAIRWISE_COULOMB_COLLISION_FUNC_H_
9#define WARPX_PAIRWISE_COULOMB_COLLISION_FUNC_H_
34 using SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType;
51 const bool isSameSpecies):
54 using namespace amrex::literals;
61 amrex::ParticleReal CoulombLog = -1.0_prt;
63 pp_collision_name,
"CoulombLog", CoulombLog);
68 m_exe.m_computeSpeciesTemperatures =
true;
102 amrex::ParticleReal
const n1, amrex::ParticleReal
const n2,
103 amrex::ParticleReal
const T1, amrex::ParticleReal
const T2,
104 amrex::Real
const global_lamdb,
105 amrex::ParticleReal
const q1, amrex::ParticleReal
const q2,
106 amrex::ParticleReal
const m1, amrex::ParticleReal
const m2,
107 amrex::Real
const dt, amrex::Real
const dV,
index_type coll_idx,
110 amrex::ParticleReal* ,
111 amrex::ParticleReal* ,
114 using namespace amrex::literals;
117 I1s, I1e, I2s, I2e, I1, I2,
118 soa_1, soa_2, n1, n2, T1, T2,
#define AMREX_GPU_HOST_DEVICE
AMREX_GPU_HOST_DEVICE AMREX_INLINE void ElasticCollisionPerez(T_index const I1s, T_index const I1e, T_index const I2s, T_index const I2e, T_index const *AMREX_RESTRICT I1, T_index const *AMREX_RESTRICT I2, SoaData_type soa_1, SoaData_type soa_2, T_PR const n1, T_PR const n2, T_PR const T1, T_PR const T2, T_PR const q1, T_PR const q2, T_PR const m1, T_PR const m2, T_R const dt, T_R const global_lamdb, T_PR const L, T_R const dV, amrex::RandomEngine const &engine, bool const isSameSpecies, T_index coll_idx)
Definition ElasticCollisionPerez.H:44
Definition MultiParticleContainer.H:68
PairWiseCoulombCollisionFunc()=default
Default constructor of the PairWiseCoulombCollisionFunc class.
Executor m_exe
Definition PairWiseCoulombCollisionFunc.H:138
WarpXParticleContainer::ParticleTileType ParticleTileType
Definition PairWiseCoulombCollisionFunc.H:30
amrex::ParticleReal m_CoulombLog
Definition PairWiseCoulombCollisionFunc.H:135
ParticleTileType::ParticleTileDataType ParticleTileDataType
Definition PairWiseCoulombCollisionFunc.H:31
ParticleBins::index_type index_type
Definition PairWiseCoulombCollisionFunc.H:33
WarpXParticleContainer::ParticleTileType::ParticleTileDataType SoaData_type
Definition PairWiseCoulombCollisionFunc.H:34
Executor const & executor() const
Definition PairWiseCoulombCollisionFunc.H:130
amrex::DenseBins< ParticleTileDataType > ParticleBins
Definition PairWiseCoulombCollisionFunc.H:32
WarpXParticleContainer::ParticleType ParticleType
Definition PairWiseCoulombCollisionFunc.H:29
bool m_use_global_debye_length
Definition PairWiseCoulombCollisionFunc.H:140
bool use_global_debye_length()
Definition PairWiseCoulombCollisionFunc.H:132
bool m_isSameSpecies
Definition PairWiseCoulombCollisionFunc.H:136
PairWiseCoulombCollisionFunc(const std::string &collision_name, MultiParticleContainer const *const mypc, const bool isSameSpecies)
Constructor of the PairWiseCoulombCollisionFunc class.
Definition PairWiseCoulombCollisionFunc.H:49
ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator > ParticleTileType
T_ParticleType ParticleType
int queryWithParser(const amrex::ParmParse &a_pp, char const *const str, T &val)
Definition ParserUtils.H:102
Functor that can be used to extract the positions of the macroparticles inside a ParallelFor kernel.
Definition GetAndSetPosition.H:75
Definition PairWiseCoulombCollisionFunc.H:75
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, const SoaData_type &soa_1, const SoaData_type &soa_2, GetParticlePosition< PIdx >, GetParticlePosition< PIdx >, amrex::ParticleReal const n1, amrex::ParticleReal const n2, amrex::ParticleReal const T1, amrex::ParticleReal const T2, amrex::Real const global_lamdb, 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 coll_idx, index_type const, index_type *, index_type *, index_type *, amrex::ParticleReal *, amrex::ParticleReal *, amrex::RandomEngine const &engine) const
Executor of the PairWiseCoulombCollisionFunc class. Performs Coulomb collisions at the cell level by ...
Definition PairWiseCoulombCollisionFunc.H:95
bool m_need_product_data
Definition PairWiseCoulombCollisionFunc.H:126
bool m_isSameSpecies
Definition PairWiseCoulombCollisionFunc.H:127
amrex::ParticleReal m_CoulombLog
Definition PairWiseCoulombCollisionFunc.H:123
bool m_computeSpeciesDensities
Definition PairWiseCoulombCollisionFunc.H:124
bool m_computeSpeciesTemperatures
Definition PairWiseCoulombCollisionFunc.H:125
ParticleTileData< StorageParticleType, NArrayReal, NArrayInt > ParticleTileDataType