WarpX
Loading...
Searching...
No Matches
BackgroundMCCCollision.H
Go to the documentation of this file.
1/* Copyright 2021 Modern Electron
2 *
3 * This file is part of WarpX.
4 *
5 * License: BSD-3-Clause-LBNL
6 */
7#ifndef WARPX_PARTICLES_COLLISION_BACKGROUNDMCCCOLLISION_H_
8#define WARPX_PARTICLES_COLLISION_BACKGROUNDMCCCOLLISION_H_
9
13
14#include <AMReX_Parser.H>
15#include <AMReX_REAL.H>
16#include <AMReX_Vector.H>
17#include <AMReX_GpuContainers.H>
18
19#include <memory>
20#include <string>
21
23 : public CollisionBase
24{
25public:
26 BackgroundMCCCollision (std::string const& collision_name);
27
28 ~BackgroundMCCCollision () override = default;
29
34
35 [[nodiscard]] amrex::ParticleReal get_nu_max (amrex::Vector<ScatteringProcess> const& mcc_processes) const;
36
44 void doCollisions (amrex::Real cur_time, amrex::Real dt, MultiParticleContainer* mypc) override;
45
52 void doBackgroundCollisionsWithinTile ( WarpXParIter& pti, amrex::Real t);
53
64 int lev,
66 WarpXParticleContainer& species1,
67 WarpXParticleContainer& species2,
68 amrex::Real t
69 );
70
71private:
72
77
78 bool init_flag = false;
79 bool ionization_flag = false;
80
81 amrex::ParticleReal m_mass1;
82
83 amrex::ParticleReal m_max_background_density = 0;
84 amrex::ParticleReal m_background_mass;
85 amrex::ParticleReal m_total_collision_prob;
86 amrex::ParticleReal m_total_collision_prob_ioniz = 0;
87 amrex::ParticleReal m_nu_max;
88 amrex::ParticleReal m_nu_max_ioniz;
89
92
95};
96
97#endif // WARPX_PARTICLES_COLLISION_BACKGROUNDMCCCOLLISION_H_
amrex::ParticleReal m_total_collision_prob
Definition BackgroundMCCCollision.H:85
amrex::Gpu::DeviceVector< ScatteringProcess::Executor > m_scattering_processes_exe
Definition BackgroundMCCCollision.H:75
amrex::ParticleReal m_nu_max
Definition BackgroundMCCCollision.H:87
amrex::ParserExecutor< 4 > m_background_density_func
Definition BackgroundMCCCollision.H:93
BackgroundMCCCollision(BackgroundMCCCollision const &)=delete
void doCollisions(amrex::Real cur_time, amrex::Real dt, MultiParticleContainer *mypc) override
Definition BackgroundMCCCollision.cpp:219
amrex::Parser m_background_density_parser
Definition BackgroundMCCCollision.H:90
amrex::ParticleReal m_background_mass
Definition BackgroundMCCCollision.H:84
BackgroundMCCCollision(BackgroundMCCCollision &&)=delete
amrex::Gpu::DeviceVector< ScatteringProcess::Executor > m_ionization_processes_exe
Definition BackgroundMCCCollision.H:76
amrex::ParserExecutor< 4 > m_background_temperature_func
Definition BackgroundMCCCollision.H:94
amrex::ParticleReal m_nu_max_ioniz
Definition BackgroundMCCCollision.H:88
amrex::Vector< ScatteringProcess > m_scattering_processes
Definition BackgroundMCCCollision.H:73
amrex::ParticleReal m_mass1
Definition BackgroundMCCCollision.H:81
void doBackgroundIonization(int lev, amrex::LayoutData< amrex::Real > *cost, WarpXParticleContainer &species1, WarpXParticleContainer &species2, amrex::Real t)
Definition BackgroundMCCCollision.cpp:478
bool ionization_flag
Definition BackgroundMCCCollision.H:79
BackgroundMCCCollision & operator=(BackgroundMCCCollision const &)=delete
~BackgroundMCCCollision() override=default
bool init_flag
Definition BackgroundMCCCollision.H:78
BackgroundMCCCollision(std::string const &collision_name)
Definition BackgroundMCCCollision.cpp:25
amrex::ParticleReal m_max_background_density
Definition BackgroundMCCCollision.H:83
void doBackgroundCollisionsWithinTile(WarpXParIter &pti, amrex::Real t)
Definition BackgroundMCCCollision.cpp:327
amrex::ParticleReal get_nu_max(amrex::Vector< ScatteringProcess > const &mcc_processes) const
Definition BackgroundMCCCollision.cpp:174
amrex::ParticleReal m_total_collision_prob_ioniz
Definition BackgroundMCCCollision.H:86
amrex::Parser m_background_temperature_parser
Definition BackgroundMCCCollision.H:91
amrex::Vector< ScatteringProcess > m_ionization_processes
Definition BackgroundMCCCollision.H:74
CollisionBase(const std::string &collision_name)
Definition CollisionBase.cpp:13
Definition MultiParticleContainer.H:68
Definition WarpXParticleContainer.H:112
Definition WarpXParticleContainer.H:195
PODVector< T, ArenaAllocator< T > > DeviceVector