WarpX
Loading...
Searching...
No Matches
BremsstrahlungFunc::Executor Struct Reference

#include <BremsstrahlungFunc.H>

Public Member Functions

AMREX_GPU_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 const &soa_1, const SoaData_type &soa_2, GetParticlePosition< PIdx >, GetParticlePosition< PIdx >, amrex::ParticleReal const n1, amrex::ParticleReal const n2, amrex::ParticleReal const, amrex::ParticleReal const, amrex::Real const, amrex::ParticleReal const, amrex::ParticleReal const, amrex::ParticleReal const m1, amrex::ParticleReal const m2, amrex::Real const dt, amrex::Real const, index_type coll_idx, index_type const cell_start_pair, index_type *AMREX_RESTRICT p_mask, index_type *AMREX_RESTRICT p_pair_indices_1, index_type *AMREX_RESTRICT p_pair_indices_2, amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight, amrex::ParticleReal *AMREX_RESTRICT p_product_data, amrex::RandomEngine const &engine) const
 Executor of the BremsstrahlungFunc class. Produces Bremsstrahlung photons at the cell level. Note that this function does not yet create the resulting photons, but instead sets p_mask and calculates the weight and energy.
 
AMREX_GPU_DEVICE AMREX_INLINE amrex::ParticleReal CalculateCrossSection (amrex::ParticleReal KErel_eV, amrex::ParticleReal wpe, int &index, int &i0_cut, amrex::ParticleReal &koT1_cut, amrex::ParticleReal &kdsigdk_cut, amrex::ParticleReal &w0) const
 
AMREX_GPU_DEVICE AMREX_INLINE amrex::ParticleReal Photon_energy (int index, int i0_cut, amrex::ParticleReal koT1_cut, amrex::ParticleReal kdsigdk_cut, amrex::ParticleReal w0, amrex::ParticleReal sigma_total, amrex::ParticleReal random_number) const
 
AMREX_GPU_DEVICE AMREX_INLINE void BremsstrahlungEvent (amrex::ParticleReal &u1x, amrex::ParticleReal &u1y, amrex::ParticleReal &u1z, amrex::ParticleReal &u2x, amrex::ParticleReal &u2y, amrex::ParticleReal &u2z, amrex::ParticleReal m1, amrex::ParticleReal m2, amrex::ParticleReal weight1, amrex::ParticleReal weight2, amrex::ParticleReal n1, amrex::ParticleReal n2, amrex::Real dt, int pair_index, index_type *AMREX_RESTRICT p_mask, amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight, amrex::ParticleReal *AMREX_RESTRICT p_product_data, amrex::RandomEngine const &engine) const
 

Public Attributes

bool m_computeSpeciesDensities = true
 
bool m_computeSpeciesTemperatures = false
 
bool m_need_product_data = true
 
amrex::ParticleReal m_multiplier
 
amrex::ParticleReal m_koT1_cut_default
 
int nkoT1
 
int nKE
 
amrex::ParticleReal * m_koT1_grid
 
amrex::ParticleReal * m_KEgrid_eV
 
amrex::ParticleReal * m_kdsigdk
 
amrex::ParticleReal * m_sigma_total
 

Member Function Documentation

◆ BremsstrahlungEvent()

AMREX_GPU_DEVICE AMREX_INLINE void BremsstrahlungFunc::Executor::BremsstrahlungEvent ( amrex::ParticleReal & u1x,
amrex::ParticleReal & u1y,
amrex::ParticleReal & u1z,
amrex::ParticleReal & u2x,
amrex::ParticleReal & u2y,
amrex::ParticleReal & u2z,
amrex::ParticleReal m1,
amrex::ParticleReal m2,
amrex::ParticleReal weight1,
amrex::ParticleReal weight2,
amrex::ParticleReal n1,
amrex::ParticleReal n2,
amrex::Real dt,
int pair_index,
index_type *AMREX_RESTRICT p_mask,
amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight,
amrex::ParticleReal *AMREX_RESTRICT p_product_data,
amrex::RandomEngine const & engine ) const
inline

◆ CalculateCrossSection()

AMREX_GPU_DEVICE AMREX_INLINE amrex::ParticleReal BremsstrahlungFunc::Executor::CalculateCrossSection ( amrex::ParticleReal KErel_eV,
amrex::ParticleReal wpe,
int & index,
int & i0_cut,
amrex::ParticleReal & koT1_cut,
amrex::ParticleReal & kdsigdk_cut,
amrex::ParticleReal & w0 ) const
inline

◆ operator()()

AMREX_GPU_DEVICE AMREX_INLINE void BremsstrahlungFunc::Executor::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 const & soa_1,
const SoaData_type & soa_2,
GetParticlePosition< PIdx > ,
GetParticlePosition< PIdx > ,
amrex::ParticleReal const n1,
amrex::ParticleReal const n2,
amrex::ParticleReal const ,
amrex::ParticleReal const ,
amrex::Real const ,
amrex::ParticleReal const ,
amrex::ParticleReal const ,
amrex::ParticleReal const m1,
amrex::ParticleReal const m2,
amrex::Real const dt,
amrex::Real const ,
index_type coll_idx,
index_type const cell_start_pair,
index_type *AMREX_RESTRICT p_mask,
index_type *AMREX_RESTRICT p_pair_indices_1,
index_type *AMREX_RESTRICT p_pair_indices_2,
amrex::ParticleReal *AMREX_RESTRICT p_pair_reaction_weight,
amrex::ParticleReal *AMREX_RESTRICT p_product_data,
amrex::RandomEngine const & engine ) const
inline

Executor of the BremsstrahlungFunc class. Produces Bremsstrahlung photons at the cell level. Note that this function does not yet create the resulting photons, but instead sets p_mask and calculates the weight and energy.

Parameters
[in]I1s,I1eis the start and step index for I1 (start inclusive, step exclusive)
[in]I2s,I2eis the start and step index for I2 (start inclusive, step exclusive)
[in]I1,I2index arrays. They determine all elements that will be used
[in]soa_1,soa_2contain the struct of array data of the two species
[in]n1,n2the species number densities
[in]m1,m2the species masses
[in]dtis the time step length between two collision calls
[in]coll_idxis the collision index offset
[in]cell_start_pairis the start index of the pairs in that cell
[out]p_maskis a mask that will be set to true for all pairs
[out]p_pair_indices_1,p_pair_indices_2arrays that store the indices of the particles of a given pair. Only p_pair_indices_1 will be used when creating photons
[out]p_pair_reaction_weightstores the weight of the resulting photons
[out]p_product_datastores the energy of the resulting photons
[in]enginethe random engine

◆ Photon_energy()

AMREX_GPU_DEVICE AMREX_INLINE amrex::ParticleReal BremsstrahlungFunc::Executor::Photon_energy ( int index,
int i0_cut,
amrex::ParticleReal koT1_cut,
amrex::ParticleReal kdsigdk_cut,
amrex::ParticleReal w0,
amrex::ParticleReal sigma_total,
amrex::ParticleReal random_number ) const
inline

Member Data Documentation

◆ m_computeSpeciesDensities

bool BremsstrahlungFunc::Executor::m_computeSpeciesDensities = true

◆ m_computeSpeciesTemperatures

bool BremsstrahlungFunc::Executor::m_computeSpeciesTemperatures = false

◆ m_kdsigdk

amrex::ParticleReal* BremsstrahlungFunc::Executor::m_kdsigdk

◆ m_KEgrid_eV

amrex::ParticleReal* BremsstrahlungFunc::Executor::m_KEgrid_eV

◆ m_koT1_cut_default

amrex::ParticleReal BremsstrahlungFunc::Executor::m_koT1_cut_default

◆ m_koT1_grid

amrex::ParticleReal* BremsstrahlungFunc::Executor::m_koT1_grid

◆ m_multiplier

amrex::ParticleReal BremsstrahlungFunc::Executor::m_multiplier

◆ m_need_product_data

bool BremsstrahlungFunc::Executor::m_need_product_data = true

◆ m_sigma_total

amrex::ParticleReal* BremsstrahlungFunc::Executor::m_sigma_total

◆ nKE

int BremsstrahlungFunc::Executor::nKE

◆ nkoT1

int BremsstrahlungFunc::Executor::nkoT1

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