9 #ifndef WARPX_LaserParticleContainer_H_
10 #define WARPX_LaserParticleContainer_H_
63 const
amrex::RandomEngine& ) final {}
78 bool skip_deposition=
false) final;
81 const
amrex::MultiFab& ,
82 const
amrex::MultiFab& ,
83 const
amrex::MultiFab& ,
84 const
amrex::MultiFab& ,
85 const
amrex::MultiFab& ,
86 const
amrex::MultiFab& ) final;
91 amrex::Real * AMREX_RESTRICT pplane_Xp,
92 amrex::Real * AMREX_RESTRICT pplane_Yp);
95 amrex::ParticleReal * AMREX_RESTRICT puyp,
96 amrex::ParticleReal * AMREX_RESTRICT puzp,
97 amrex::ParticleReal const * AMREX_RESTRICT pwp,
98 amrex::Real const * AMREX_RESTRICT amplitude,
DtType
Definition: WarpXDtType.H:11
Definition: LaserParticleContainer.H:42
amrex::Real m_e_max
Definition: LaserParticleContainer.H:111
amrex::Vector< amrex::Real > m_u_X
Definition: LaserParticleContainer.H:120
void ComputeSpacing(int lev, amrex::Real &Sx, amrex::Real &Sy) const
Definition: LaserParticleContainer.cpp:713
~LaserParticleContainer() override=default
void WriteHeader(std::ostream &os) const final
Definition: ParticleIO.cpp:58
amrex::Real m_wavelength
Definition: LaserParticleContainer.H:112
void ReadHeader(std::istream &is) final
Definition: ParticleIO.cpp:46
amrex::RealBox m_laser_injection_box
Definition: LaserParticleContainer.H:127
void Evolve(int lev, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz, amrex::MultiFab *, amrex::MultiFab *, amrex::MultiFab *, amrex::MultiFab *rho, amrex::MultiFab *crho, const amrex::MultiFab *, const amrex::MultiFab *, const amrex::MultiFab *, const amrex::MultiFab *, const amrex::MultiFab *, const amrex::MultiFab *, amrex::Real t, amrex::Real dt, DtType a_dt_type=DtType::Full, bool skip_deposition=false) final
Definition: LaserParticleContainer.cpp:556
LaserParticleContainer(amrex::AmrCore *amr_core, int ispecies, const std::string &name)
Definition: LaserParticleContainer.cpp:81
amrex::Vector< amrex::Real > m_position
Definition: LaserParticleContainer.H:107
void PushP(int lev, amrex::Real dt, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &, const amrex::MultiFab &) final
Definition: LaserParticleContainer.cpp:773
void ContinuousInjection(const amrex::RealBox &injection_box) override
Definition: LaserParticleContainer.cpp:280
void DefaultInitializeRuntimeAttributes(amrex::ParticleTile< amrex::Particle< NStructReal, NStructInt >, NArrayReal, NArrayInt, amrex::PinnedArenaAllocator > &, const int, const int, const amrex::RandomEngine &) final
Method to initialize runtime attributes. Does nothing for LaserParticleContainer.
Definition: LaserParticleContainer.H:58
long m_min_particles_per_mode
Definition: LaserParticleContainer.H:116
amrex::Real m_weight
Definition: LaserParticleContainer.H:122
amrex::Real m_Z0_lab
Definition: LaserParticleContainer.H:114
amrex::Real m_mobility
Definition: LaserParticleContainer.H:123
std::unique_ptr< WarpXLaserProfiles::ILaserProfile > m_up_laser_profile
Definition: LaserParticleContainer.H:146
amrex::Vector< amrex::Real > m_p_Y
Definition: LaserParticleContainer.H:119
void ComputeWeightMobility(amrex::Real Sx, amrex::Real Sy)
Definition: LaserParticleContainer.cpp:748
void InitData() final
Definition: LaserParticleContainer.cpp:351
amrex::Vector< amrex::Real > m_updated_position
Definition: LaserParticleContainer.H:130
LaserParticleContainer(LaserParticleContainer const &)=delete
void UpdateAntennaPosition(amrex::Real dt) override
Update antenna position for continuous injection of lasers in a boosted frame.
Definition: LaserParticleContainer.cpp:322
void calculate_laser_plane_coordinates(const WarpXParIter &pti, int np, amrex::Real *AMREX_RESTRICT pplane_Xp, amrex::Real *AMREX_RESTRICT pplane_Yp)
Definition: LaserParticleContainer.cpp:788
LaserParticleContainer(LaserParticleContainer &&)=default
std::string m_laser_name
Definition: LaserParticleContainer.H:103
amrex::Vector< amrex::Real > m_u_Y
Definition: LaserParticleContainer.H:121
void PostRestart() final
Definition: LaserParticleContainer.cpp:702
void update_laser_particle(WarpXParIter &pti, int np, amrex::ParticleReal *AMREX_RESTRICT puxp, amrex::ParticleReal *AMREX_RESTRICT puyp, amrex::ParticleReal *AMREX_RESTRICT puzp, amrex::ParticleReal const *AMREX_RESTRICT pwp, amrex::Real const *AMREX_RESTRICT amplitude, amrex::Real dt)
Definition: LaserParticleContainer.cpp:845
bool m_enabled
Definition: LaserParticleContainer.H:149
amrex::Vector< amrex::Real > m_p_X
Normal of the plane of the antenna.
Definition: LaserParticleContainer.H:109
amrex::Vector< amrex::Real > m_nvec
Coordinates of one of the point of the antenna.
Definition: LaserParticleContainer.H:108
LaserParticleContainer & operator=(LaserParticleContainer const &)=delete
Definition: WarpXParticleContainer.H:52
Definition: WarpXParticleContainer.H:104
static constexpr int NArrayInt
static constexpr int NArrayReal
static constexpr int NStructInt
static constexpr int NStructReal
Definition: LaserProfiles.H:27
name
Definition: run_automated.py:229
float dt
Definition: stencil.py:442