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 
11 #include "CollisionBase.H"
12 #include "MCCProcess.H"
13 
14 #include <AMReX_REAL.H>
15 #include <AMReX_Vector.H>
16 #include <AMReX_GpuContainers.H>
17 
18 #include <memory>
19 #include <string>
20 
22  : public CollisionBase
23 {
24 public:
25  BackgroundMCCCollision (std::string collision_name);
26 
27  virtual ~BackgroundMCCCollision () = default;
28 
29  amrex::Real get_nu_max (amrex::Vector<MCCProcess> const& mcc_processes);
30 
37  void doCollisions (amrex::Real cur_time, MultiParticleContainer* mypc) override;
38 
45 
54  int lev,
56  WarpXParticleContainer& species2
57  );
58 
59 private:
60 
61  amrex::Vector<MCCProcess> m_scattering_processes;
62  amrex::Vector<MCCProcess> m_ionization_processes;
63  amrex::Gpu::DeviceVector<MCCProcess::Executor> m_scattering_processes_exe;
64  amrex::Gpu::DeviceVector<MCCProcess::Executor> m_ionization_processes_exe;
65 
66  bool init_flag = false;
67  bool ionization_flag = false;
68 
69  amrex::Real m_mass1;
70 
72  amrex::Real m_background_density;
73  amrex::Real m_background_mass;
76  amrex::Real m_nu_max;
77  amrex::Real m_nu_max_ioniz;
78 };
79 
80 #endif // WARPX_PARTICLES_COLLISION_BACKGROUNDMCCCOLLISION_H_
string species1
Definition: video_yt.py:32
amrex::Real m_background_density
Definition: BackgroundMCCCollision.H:72
bool init_flag
Definition: BackgroundMCCCollision.H:66
void doBackgroundIonization(int lev, WarpXParticleContainer &species1, WarpXParticleContainer &species2)
Definition: BackgroundMCCCollision.cpp:363
amrex::Gpu::DeviceVector< MCCProcess::Executor > m_scattering_processes_exe
Definition: BackgroundMCCCollision.H:63
Definition: MultiParticleContainer.H:64
amrex::Vector< MCCProcess > m_scattering_processes
Definition: BackgroundMCCCollision.H:61
amrex::Real m_mass1
Definition: BackgroundMCCCollision.H:69
virtual ~BackgroundMCCCollision()=default
BackgroundMCCCollision(std::string collision_name)
Definition: BackgroundMCCCollision.cpp:22
amrex::Real m_total_collision_prob
Definition: BackgroundMCCCollision.H:74
amrex::Gpu::DeviceVector< MCCProcess::Executor > m_ionization_processes_exe
Definition: BackgroundMCCCollision.H:64
bool ionization_flag
Definition: BackgroundMCCCollision.H:67
amrex::Real m_nu_max_ioniz
Definition: BackgroundMCCCollision.H:77
amrex::Real m_nu_max
Definition: BackgroundMCCCollision.H:76
amrex::Real m_background_mass
Definition: BackgroundMCCCollision.H:73
amrex::Real get_nu_max(amrex::Vector< MCCProcess > const &mcc_processes)
Definition: BackgroundMCCCollision.cpp:116
Definition: CollisionBase.H:17
void doCollisions(amrex::Real cur_time, MultiParticleContainer *mypc) override
Definition: BackgroundMCCCollision.cpp:143
Definition: BackgroundMCCCollision.H:21
Definition: WarpXParticleContainer.H:58
void doBackgroundCollisionsWithinTile(WarpXParIter &pti)
Definition: BackgroundMCCCollision.cpp:235
amrex::Real m_background_temperature
Definition: BackgroundMCCCollision.H:71
amrex::Real m_total_collision_prob_ioniz
Definition: BackgroundMCCCollision.H:75
Definition: WarpXParticleContainer.H:110
amrex::Vector< MCCProcess > m_ionization_processes
Definition: BackgroundMCCCollision.H:62