WarpX
Loading...
Searching...
No Matches
BremsstrahlungFunc Class Reference

This functor does binary Bremsstrahlung reactions in a single cell. Particles of the two interacting species are paired with each other and for each pair we compute the energy of the resulting photon if Bremsstrahlung happens. We fill p_mask with true if it happens so that the new photon corresponding to a given pair can be effectively created in the particle creation functor. More...

#include <BremsstrahlungFunc.H>

Classes

struct  Executor
 

Public Member Functions

 BremsstrahlungFunc ()=default
 
 BremsstrahlungFunc (std::string const &collision_name, MultiParticleContainer const *mypc, bool)
 Constructor of the BremsstrahlungFunc class.
 
Executor const & executor () const
 
bool use_global_debye_length ()
 

Private Types

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

Private Member Functions

void UploadCrossSection (int Z)
 

Private Attributes

Executor m_exe
 
bool m_use_global_debye_length = false
 
int nkoT1
 
int nKE
 
amrex::GpuArray< amrex::ParticleReal, 17 > m_koT1_grid_h = {0., 0.025, 0.05, 0.075, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.97, 0.99, 1.00}
 
amrex::GpuArray< amrex::ParticleReal, 11 > m_KEgrid_eV_h = {1.0e3, 2.0e3, 5.0e3, 1.0e4, 2.0e4, 5.0e4, 1.0e5, 2.0e5, 5.0e5, 1.0e6, 2.0e6}
 
amrex::Vector< amrex::ParticleReal > m_kdsigdk_h
 
amrex::Vector< amrex::ParticleReal > m_sigma_total_h
 
amrex::Gpu::DeviceVector< amrex::ParticleReal > m_koT1_grid_d
 
amrex::Gpu::DeviceVector< amrex::ParticleReal > m_KEgrid_eV_d
 
amrex::Gpu::DeviceVector< amrex::ParticleReal > m_kdsigdk_d
 
amrex::Gpu::DeviceVector< amrex::ParticleReal > m_sigma_total_d
 
std::map< int, std::vector< std::vector< amrex::ParticleReal > > > m_kdsigdk_map
 

Detailed Description

This functor does binary Bremsstrahlung reactions in a single cell. Particles of the two interacting species are paired with each other and for each pair we compute the energy of the resulting photon if Bremsstrahlung happens. We fill p_mask with true if it happens so that the new photon corresponding to a given pair can be effectively created in the particle creation functor.

Member Typedef Documentation

◆ index_type

◆ ParticleBins

◆ ParticleTileDataType

◆ ParticleTileType

◆ ParticleType

◆ SoaData_type

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

Constructor & Destructor Documentation

◆ BremsstrahlungFunc() [1/2]

BremsstrahlungFunc::BremsstrahlungFunc ( )
default

◆ BremsstrahlungFunc() [2/2]

BremsstrahlungFunc::BremsstrahlungFunc ( std::string const & collision_name,
MultiParticleContainer const * mypc,
bool isSameSpecies )

Constructor of the BremsstrahlungFunc class.

Parameters
[in]collision_namethe name of the collision
[in]mypcpointer to the MultiParticleContainer
[in]isSameSpecieswhether the two colliding species are the same (should always be false)

Member Function Documentation

◆ executor()

Executor const & BremsstrahlungFunc::executor ( ) const
inlinenodiscard

◆ UploadCrossSection()

void BremsstrahlungFunc::UploadCrossSection ( int Z)
private

◆ use_global_debye_length()

bool BremsstrahlungFunc::use_global_debye_length ( )
inline

Member Data Documentation

◆ m_exe

Executor BremsstrahlungFunc::m_exe
private

◆ m_kdsigdk_d

amrex::Gpu::DeviceVector<amrex::ParticleReal> BremsstrahlungFunc::m_kdsigdk_d
private

◆ m_kdsigdk_h

amrex::Vector<amrex::ParticleReal> BremsstrahlungFunc::m_kdsigdk_h
private

◆ m_kdsigdk_map

std::map<int, std::vector<std::vector<amrex::ParticleReal> > > BremsstrahlungFunc::m_kdsigdk_map
private

◆ m_KEgrid_eV_d

amrex::Gpu::DeviceVector<amrex::ParticleReal> BremsstrahlungFunc::m_KEgrid_eV_d
private

◆ m_KEgrid_eV_h

amrex::GpuArray<amrex::ParticleReal, 11> BremsstrahlungFunc::m_KEgrid_eV_h = {1.0e3, 2.0e3, 5.0e3, 1.0e4, 2.0e4, 5.0e4, 1.0e5, 2.0e5, 5.0e5, 1.0e6, 2.0e6}
private

◆ m_koT1_grid_d

amrex::Gpu::DeviceVector<amrex::ParticleReal> BremsstrahlungFunc::m_koT1_grid_d
private

◆ m_koT1_grid_h

amrex::GpuArray<amrex::ParticleReal, 17> BremsstrahlungFunc::m_koT1_grid_h = {0., 0.025, 0.05, 0.075, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95, 0.97, 0.99, 1.00}
private

◆ m_sigma_total_d

amrex::Gpu::DeviceVector<amrex::ParticleReal> BremsstrahlungFunc::m_sigma_total_d
private

◆ m_sigma_total_h

amrex::Vector<amrex::ParticleReal> BremsstrahlungFunc::m_sigma_total_h
private

◆ m_use_global_debye_length

bool BremsstrahlungFunc::m_use_global_debye_length = false
private

◆ nKE

int BremsstrahlungFunc::nKE
private

◆ nkoT1

int BremsstrahlungFunc::nkoT1
private

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