WarpX
Loading...
Searching...
No Matches
ElasticCollisionPerez.H File Reference

Go to the source code of this file.

Functions

template<typename T_index, typename T_PR, typename T_R, typename SoaData_type>
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)
 

Function Documentation

◆ ElasticCollisionPerez()

template<typename T_index, typename T_PR, typename T_R, typename SoaData_type>
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 )

Prepare information for and call UpdateMomentumPerezElastic().

Template Parameters
T_indextype of index arguments
T_PRtype of particle related floating point arguments
T_Rtype of other floating point arguments
SoaData_typetype of the "struct of array" for the two involved species
Parameters
[in]I1s,I2sis the start index for I1,I2 (inclusive).
[in]I1e,I2eis the stop index for I1,I2 (exclusive).
[in]I1,I2the index arrays. They determine all elements that will be used.
[in,out]soa_1,soa_2the struct of array for species 1/2
[in]n1,n2density of species 1/2
[in]T1,T2temperature [Joules] of species 1/2 only used if L <= 0
[in]q1,q2charge of species 1/2
[in]m1,m2mass of species 1/2
[in]dtis the time step length between two collision calls.
[in]global_lamdbis the global Debye length and will be used if greater than zero
[in]Lis the Coulomb log and will be used if greater than zero, otherwise will be computed.
[in]dVis the volume of the corresponding cell.
[in]enginethe random number generator state & factory
[in]isSameSpecieswhether this is an intra-species collision process
[in]coll_idxis the collision index offset.