7 #ifndef WARPX_PARTICLES_COLLISION_MCCPROCESS_H_
8 #define WARPX_PARTICLES_COLLISION_MCCPROCESS_H_
28 const std::string& scattering_process,
29 const std::string& cross_section_file,
30 amrex::ParticleReal energy
33 template <
typename InputVector>
35 const std::string& scattering_process,
36 const InputVector&& energies,
37 const InputVector&& sigmas,
38 amrex::ParticleReal energy
58 std::string cross_section_file,
66 amrex::ParticleReal dE
85 using amrex::Math::floor;
86 using amrex::Math::ceil;
89 const int idx_1 =
static_cast<int>(floor(temp));
90 const int idx_2 =
static_cast<int>(ceil(temp));
129 void init (
const std::string& scattering_process, amrex::ParticleReal energy);
#define AMREX_FORCE_INLINE
#define AMREX_GPU_HOST_DEVICE
MCCProcessType
Definition: MCCProcess.H:15
Definition: MCCProcess.H:25
static void sanityCheckEnergyGrid(const amrex::Vector< amrex::ParticleReal > &energies, amrex::ParticleReal dE)
Definition: MCCProcess.cpp:112
amrex::ParticleReal getEnergyInputStep() const
Definition: MCCProcess.H:120
static void readCrossSectionFile(std::string cross_section_file, amrex::Vector< amrex::ParticleReal > &energies, amrex::Gpu::HostVector< amrex::ParticleReal > &sigmas)
Definition: MCCProcess.cpp:94
MCCProcess(MCCProcess const &)=delete
amrex::ParticleReal getMaxEnergyInput() const
Definition: MCCProcess.H:119
int m_grid_size
Definition: MCCProcess.H:140
amrex::ParticleReal getCrossSection(amrex::ParticleReal E_coll) const
Definition: MCCProcess.H:112
MCCProcess(const std::string &scattering_process, const std::string &cross_section_file, amrex::ParticleReal energy)
Definition: MCCProcess.cpp:12
MCCProcessType type() const
Definition: MCCProcess.H:122
Executor m_exe_h
Definition: MCCProcess.H:138
amrex::Vector< amrex::ParticleReal > m_energies
Definition: MCCProcess.H:131
static MCCProcessType parseProcessType(const std::string &process)
Definition: MCCProcess.cpp:76
amrex::Gpu::HostVector< amrex::ParticleReal > m_sigmas_h
Definition: MCCProcess.H:137
MCCProcess & operator=(MCCProcess const &)=delete
Executor const & executor() const
Definition: MCCProcess.H:104
void init(const std::string &scattering_process, amrex::ParticleReal energy)
Definition: MCCProcess.cpp:37
amrex::ParticleReal getMinEnergyInput() const
Definition: MCCProcess.H:118
MCCProcess(MCCProcess &&)=default
amrex::ParticleReal getEnergyPenalty() const
Definition: MCCProcess.H:117
Definition: MCCProcess.H:69
amrex::ParticleReal m_energy_hi
Definition: MCCProcess.H:99
amrex::ParticleReal m_sigma_hi
Definition: MCCProcess.H:99
amrex::ParticleReal m_energy_lo
Definition: MCCProcess.H:99
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal getCrossSection(amrex::ParticleReal E_coll) const
Definition: MCCProcess.H:78
amrex::ParticleReal * m_sigmas_data
Definition: MCCProcess.H:98
amrex::ParticleReal m_sigma_lo
Definition: MCCProcess.H:99
amrex::ParticleReal m_energy_penalty
Definition: MCCProcess.H:100
MCCProcessType m_type
Definition: MCCProcess.H:101
amrex::ParticleReal m_dE
Definition: MCCProcess.H:99