ARTEMIS
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 
10 #include "MCCProcess.H"
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 collision_name);
27 
28  virtual ~BackgroundMCCCollision () = default;
29 
30  amrex::ParticleReal get_nu_max (amrex::Vector<MCCProcess> const& mcc_processes);
31 
39  void doCollisions (amrex::Real cur_time, amrex::Real dt, MultiParticleContainer* mypc) override;
40 
47  void doBackgroundCollisionsWithinTile ( WarpXParIter& pti, amrex::Real t);
48 
59  int lev,
62  WarpXParticleContainer& species2,
63  amrex::Real t
64  );
65 
66 private:
67 
72 
73  bool init_flag = false;
74  bool ionization_flag = false;
75 
76  amrex::ParticleReal m_mass1;
77 
78  amrex::ParticleReal m_max_background_density = 0;
79  amrex::ParticleReal m_background_mass;
80  amrex::ParticleReal m_total_collision_prob;
81  amrex::ParticleReal m_total_collision_prob_ioniz = 0;
82  amrex::ParticleReal m_nu_max;
83  amrex::ParticleReal m_nu_max_ioniz;
84 
87 
90 };
91 
92 #endif // WARPX_PARTICLES_COLLISION_BACKGROUNDMCCCOLLISION_H_
Definition: BackgroundMCCCollision.H:24
amrex::ParticleReal m_total_collision_prob
Definition: BackgroundMCCCollision.H:80
amrex::Vector< MCCProcess > m_scattering_processes
Definition: BackgroundMCCCollision.H:68
amrex::ParticleReal m_nu_max
Definition: BackgroundMCCCollision.H:82
amrex::ParserExecutor< 4 > m_background_density_func
Definition: BackgroundMCCCollision.H:88
void doCollisions(amrex::Real cur_time, amrex::Real dt, MultiParticleContainer *mypc) override
Definition: BackgroundMCCCollision.cpp:207
amrex::Parser m_background_density_parser
Definition: BackgroundMCCCollision.H:85
amrex::ParticleReal m_background_mass
Definition: BackgroundMCCCollision.H:79
virtual ~BackgroundMCCCollision()=default
amrex::Vector< MCCProcess > m_ionization_processes
Definition: BackgroundMCCCollision.H:69
amrex::ParserExecutor< 4 > m_background_temperature_func
Definition: BackgroundMCCCollision.H:89
BackgroundMCCCollision(std::string collision_name)
Definition: BackgroundMCCCollision.cpp:24
amrex::ParticleReal m_nu_max_ioniz
Definition: BackgroundMCCCollision.H:83
amrex::Gpu::DeviceVector< MCCProcess::Executor > m_ionization_processes_exe
Definition: BackgroundMCCCollision.H:71
amrex::ParticleReal m_mass1
Definition: BackgroundMCCCollision.H:76
void doBackgroundIonization(int lev, amrex::LayoutData< amrex::Real > *cost, WarpXParticleContainer &species1, WarpXParticleContainer &species2, amrex::Real t)
Definition: BackgroundMCCCollision.cpp:460
bool ionization_flag
Definition: BackgroundMCCCollision.H:74
amrex::Gpu::DeviceVector< MCCProcess::Executor > m_scattering_processes_exe
Definition: BackgroundMCCCollision.H:70
amrex::ParticleReal get_nu_max(amrex::Vector< MCCProcess > const &mcc_processes)
Definition: BackgroundMCCCollision.cpp:165
bool init_flag
Definition: BackgroundMCCCollision.H:73
amrex::ParticleReal m_max_background_density
Definition: BackgroundMCCCollision.H:78
void doBackgroundCollisionsWithinTile(WarpXParIter &pti, amrex::Real t)
Definition: BackgroundMCCCollision.cpp:309
amrex::ParticleReal m_total_collision_prob_ioniz
Definition: BackgroundMCCCollision.H:81
amrex::Parser m_background_temperature_parser
Definition: BackgroundMCCCollision.H:86
Definition: CollisionBase.H:18
Definition: MultiParticleContainer.H:65
Definition: WarpXParticleContainer.H:52
Definition: WarpXParticleContainer.H:104
int dt
Definition: stencil.py:440
string species1
Definition: video_yt.py:35