WarpX
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 {
25 public:
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,
67  WarpXParticleContainer& species2,
68  amrex::Real t
69  );
70 
71 private:
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_
Definition: BackgroundMCCCollision.H:24
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:210
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
BackgroundMCCCollision & operator=(BackgroundMCCCollision const &)=delete
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:464
bool ionization_flag
Definition: BackgroundMCCCollision.H:79
~BackgroundMCCCollision() override=default
bool init_flag
Definition: BackgroundMCCCollision.H:78
BackgroundMCCCollision(std::string const &collision_name)
Definition: BackgroundMCCCollision.cpp:24
amrex::ParticleReal m_max_background_density
Definition: BackgroundMCCCollision.H:83
void doBackgroundCollisionsWithinTile(WarpXParIter &pti, amrex::Real t)
Definition: BackgroundMCCCollision.cpp:312
amrex::ParticleReal get_nu_max(amrex::Vector< ScatteringProcess > const &mcc_processes) const
Definition: BackgroundMCCCollision.cpp:165
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
Definition: CollisionBase.H:18
Definition: MultiParticleContainer.H:66
Definition: WarpXParticleContainer.H:53
Definition: WarpXParticleContainer.H:111
float dt
Definition: stencil.py:442
string species1
Definition: video_yt.py:35