|
WarpX
|
This class performs DSMC (direct simulation Monte Carlo) collisions within a cell. Particles are paired up and for each pair a stochastic process determines whether a collision occurs. The algorithm is similar to the one used for binary Coulomb collisions and the nuclear fusion module. More...
#include <DSMC.H>
Public Member Functions | |
| DSMC (std::string collision_name) | |
| Constructor of the DSMC class. More... | |
| void | doCollisions (amrex::Real, amrex::Real dt, MultiParticleContainer *mypc) override |
| void | doCollisionsWithinTile (amrex::Real dt, int lev, amrex::MFIter const &mfi, WarpXParticleContainer &species_1, WarpXParticleContainer &species_2, SmartCopy ©_species1, SmartCopy ©_species2) |
Public Member Functions inherited from CollisionBase | |
| CollisionBase (std::string collision_name) | |
| CollisionBase (CollisionBase const &)=delete | |
| CollisionBase (CollisionBase &&)=delete | |
| CollisionBase & | operator= (CollisionBase const &)=delete |
| CollisionBase & | operator= (CollisionBase const &&)=delete |
| virtual | ~CollisionBase ()=default |
| int | get_ndt () |
Private Types | |
| using | ParticleType = WarpXParticleContainer::ParticleType |
| using | ParticleTileType = WarpXParticleContainer::ParticleTileType |
| using | ParticleBins = amrex::DenseBins< ParticleType > |
| using | SoaData_type = WarpXParticleContainer::ParticleTileType::ParticleTileDataType |
| using | index_type = ParticleBins::index_type |
Private Attributes | |
| amrex::Vector< ScatteringProcess > | m_scattering_processes |
| amrex::Gpu::DeviceVector< ScatteringProcess::Executor > | m_scattering_processes_exe |
Additional Inherited Members | |
Protected Attributes inherited from CollisionBase | |
| amrex::Vector< std::string > | m_species_names |
| int | m_ndt |
This class performs DSMC (direct simulation Monte Carlo) collisions within a cell. Particles are paired up and for each pair a stochastic process determines whether a collision occurs. The algorithm is similar to the one used for binary Coulomb collisions and the nuclear fusion module.
|
private |
|
private |
|
private |
|
private |
| DSMC::DSMC | ( | std::string | collision_name | ) |
Constructor of the DSMC class.
| [in] | collision_name | the name of the collision |
|
overridevirtual |
Perform the collisions
| cur_time | Current time |
| dt | Time step size |
| mypc | Container of species involved |
Reimplemented from CollisionBase.
| void DSMC::doCollisionsWithinTile | ( | amrex::Real | dt, |
| int | lev, | ||
| amrex::MFIter const & | mfi, | ||
| WarpXParticleContainer & | species_1, | ||
| WarpXParticleContainer & | species_2, | ||
| SmartCopy & | copy_species1, | ||
| SmartCopy & | copy_species2 | ||
| ) |
|
private |
|
private |