WarpX
Toggle main menu visibility
Loading...
Searching...
No Matches
Source
Particles
Collision
InverseBremsstrahlung
InverseBremsstrahlung.H
Go to the documentation of this file.
1
/* Copyright 2025 David Grote
2
*
3
* This file is part of WarpX.
4
*
5
* License: BSD-3-Clause-LBNL
6
*/
7
#ifndef WARPX_PARTICLES_COLLISION_INVERSEBREMSSTRAHLUNG_H_
8
#define WARPX_PARTICLES_COLLISION_INVERSEBREMSSTRAHLUNG_H_
9
10
#include "
Particles/MultiParticleContainer.H
"
11
#include "
Particles/Collision/CollisionBase.H
"
12
#include "
Particles/Collision/ScatteringProcess.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
22
class
InverseBremsstrahlung
final
23
:
public
CollisionBase
24
{
25
26
using
ParticleTileType
=
WarpXParticleContainer::ParticleTileType
;
27
using
ParticleTileDataType
= ParticleTileType::ParticleTileDataType;
28
using
ParticleBins
=
amrex::DenseBins<ParticleTileDataType>
;
29
using
index_type
=
ParticleBins::index_type
;
30
31
public
:
32
InverseBremsstrahlung
(std::string
const
& collision_name,
MultiParticleContainer
const
* mypc);
33
34
~InverseBremsstrahlung
()
override
=
default
;
35
36
InverseBremsstrahlung
(
InverseBremsstrahlung
const
&) =
delete
;
37
InverseBremsstrahlung
&
operator=
(
InverseBremsstrahlung
const
& ) =
delete
;
38
InverseBremsstrahlung
(
InverseBremsstrahlung
&& ) =
delete
;
39
InverseBremsstrahlung
&
operator=
(
InverseBremsstrahlung
&& ) =
delete
;
40
48
void
doCollisions
(
amrex::Real
cur_time,
amrex::Real
dt,
MultiParticleContainer
* mypc)
override
;
49
59
void
doInverseBremsstrahlungWithinTile
(
amrex::Real
dt,
int
lev,
amrex::MFIter
const
& mfi,
60
WarpXParticleContainer
& photons,
61
WarpXParticleContainer
& electrons)
const
;
62
63
private
:
64
65
amrex::ParticleReal
m_energy_fraction
= 0.05;
66
67
};
68
69
#endif
// WARPX_PARTICLES_COLLISION_INVERSEBREMSSTRAHLUNG_H
AMReX_GpuContainers.H
AMReX_Parser.H
AMReX_REAL.H
AMReX_Vector.H
CollisionBase.H
MultiParticleContainer.H
ScatteringProcess.H
CollisionBase::CollisionBase
CollisionBase(const std::string &collision_name)
Definition
CollisionBase.cpp:14
InverseBremsstrahlung::~InverseBremsstrahlung
~InverseBremsstrahlung() override=default
InverseBremsstrahlung::InverseBremsstrahlung
InverseBremsstrahlung(InverseBremsstrahlung const &)=delete
InverseBremsstrahlung::index_type
ParticleBins::index_type index_type
Definition
InverseBremsstrahlung.H:29
InverseBremsstrahlung::operator=
InverseBremsstrahlung & operator=(InverseBremsstrahlung const &)=delete
InverseBremsstrahlung::doInverseBremsstrahlungWithinTile
void doInverseBremsstrahlungWithinTile(amrex::Real dt, int lev, amrex::MFIter const &mfi, WarpXParticleContainer &photons, WarpXParticleContainer &electrons) const
Perform inverse Bremsstrahlung within the tile.
Definition
InverseBremsstrahlung.cpp:87
InverseBremsstrahlung::ParticleTileType
WarpXParticleContainer::ParticleTileType ParticleTileType
Definition
InverseBremsstrahlung.H:26
InverseBremsstrahlung::m_energy_fraction
amrex::ParticleReal m_energy_fraction
Definition
InverseBremsstrahlung.H:65
InverseBremsstrahlung::doCollisions
void doCollisions(amrex::Real cur_time, amrex::Real dt, MultiParticleContainer *mypc) override
Perform the collisions.
Definition
InverseBremsstrahlung.cpp:42
InverseBremsstrahlung::ParticleBins
amrex::DenseBins< ParticleTileDataType > ParticleBins
Definition
InverseBremsstrahlung.H:28
InverseBremsstrahlung::InverseBremsstrahlung
InverseBremsstrahlung(InverseBremsstrahlung &&)=delete
InverseBremsstrahlung::ParticleTileDataType
ParticleTileType::ParticleTileDataType ParticleTileDataType
Definition
InverseBremsstrahlung.H:27
InverseBremsstrahlung::InverseBremsstrahlung
InverseBremsstrahlung(std::string const &collision_name, MultiParticleContainer const *mypc)
Definition
InverseBremsstrahlung.cpp:25
MultiParticleContainer
Definition
MultiParticleContainer.H:69
WarpXParticleContainer
Definition
WarpXParticleContainer.H:195
amrex::DenseBins
amrex::DenseBins< ParticleTileDataType >::index_type
int index_type
amrex::MFIter
amrex::ParticleContainer_impl< SoAParticle< T_NArrayReal, T_NArrayInt >, T_NArrayReal, T_NArrayInt, Allocator, CellAssignor >::ParticleTileType
std::conditional_t< is_rtsoa_pc, ParticleTileRT< typename ParticleType::RealType, typename ParticleType::IntType >, ParticleTile< ParticleType, NArrayReal, NArrayInt, Allocator > > ParticleTileType
amrex::Real
amrex_real Real
amrex::ParticleReal
amrex_particle_real ParticleReal
Generated by
1.17.0