WarpX
DSMC.H
Go to the documentation of this file.
1 /* Copyright 2023 The WarpX Community
2  *
3  * This file is part of WarpX.
4  *
5  * Authors: Roelof Groenewald (TAE Technologies)
6  *
7  * License: BSD-3-Clause-LBNL
8  */
9 #ifndef DSMC_H_
10 #define DSMC_H_
11 
21 #include "Utils/ParticleUtils.H"
23 
24 #include <AMReX_DenseBins.H>
25 #include <AMReX_ParmParse.H>
26 #include <AMReX_Random.H>
27 
28 
35 class DSMC final
36  : public CollisionBase
37 {
38  // Define shortcuts for frequently-used type names
44 
45 public:
46 
52  DSMC (std::string collision_name);
53 
61  void doCollisions (amrex::Real /*cur_time*/, amrex::Real dt, MultiParticleContainer* mypc) override;
62 
74  amrex::Real dt, int lev, amrex::MFIter const& mfi,
75  WarpXParticleContainer& species_1,
76  WarpXParticleContainer& species_2,
77  SmartCopy& copy_species1,
78  SmartCopy& copy_species2 );
79 
80 private:
83 };
84 
85 #endif // DSMC_H_
Definition: CollisionBase.H:18
This class performs DSMC (direct simulation Monte Carlo) collisions within a cell....
Definition: DSMC.H:37
WarpXParticleContainer::ParticleType ParticleType
Definition: DSMC.H:39
void doCollisions(amrex::Real, amrex::Real dt, MultiParticleContainer *mypc) override
Definition: DSMC.cpp:76
void doCollisionsWithinTile(amrex::Real dt, int lev, amrex::MFIter const &mfi, WarpXParticleContainer &species_1, WarpXParticleContainer &species_2, SmartCopy &copy_species1, SmartCopy &copy_species2)
Definition: DSMC.cpp:133
DSMC(std::string collision_name)
Constructor of the DSMC class.
Definition: DSMC.cpp:14
ParticleBins::index_type index_type
Definition: DSMC.H:43
amrex::Gpu::DeviceVector< ScatteringProcess::Executor > m_scattering_processes_exe
Definition: DSMC.H:82
amrex::Vector< ScatteringProcess > m_scattering_processes
Definition: DSMC.H:81
Definition: MultiParticleContainer.H:66
Definition: WarpXParticleContainer.H:110
unsigned int index_type
ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator > ParticleTileType
float dt
Definition: stencil.py:442
This is a functor for performing a "smart copy" that works in both host and device code.
Definition: SmartCopy.H:34
ParticleTileData< StorageParticleType, NArrayReal, NArrayInt > ParticleTileDataType