WarpX
Public Member Functions | Private Attributes | List of all members
WarpXLaserProfiles::GaussianLaserProfile Class Reference

#include <LaserProfiles.H>

Inheritance diagram for WarpXLaserProfiles::GaussianLaserProfile:
WarpXLaserProfiles::ILaserProfile

Public Member Functions

void init (const amrex::ParmParse &ppl, CommonLaserParameters params) final
 
void update (amrex::Real) final
 
void fill_amplitude (int np, amrex::Real const *AMREX_RESTRICT Xp, amrex::Real const *AMREX_RESTRICT Yp, amrex::Real t, amrex::Real *AMREX_RESTRICT amplitude) const final
 
- Public Member Functions inherited from WarpXLaserProfiles::ILaserProfile
 ILaserProfile ()=default
 
virtual ~ILaserProfile ()=default
 
 ILaserProfile (ILaserProfile const &)=default
 
ILaserProfileoperator= (ILaserProfile const &)=default
 
 ILaserProfile (ILaserProfile &&)=default
 
ILaserProfileoperator= (ILaserProfile &&)=default
 

Private Attributes

struct {
   amrex::Real   waist = std::numeric_limits<amrex::Real>::quiet_NaN()
 
   amrex::Real   duration = std::numeric_limits<amrex::Real>::quiet_NaN()
 
   amrex::Real   t_peak = std::numeric_limits<amrex::Real>::quiet_NaN()
 
   amrex::Real   focal_distance = std::numeric_limits<amrex::Real>::quiet_NaN()
 
   amrex::Real   zeta = 0
 
   amrex::Real   beta = 0
 
   amrex::Real   phi2 = 0
 
   amrex::Real   phi0 = 0
 
   amrex::Vector< amrex::Real >   stc_direction
 
   amrex::Real   theta_stc
 Direction of the spatio-temporal couplings. More...
 
m_params
 
CommonLaserParameters m_common_params
 

Detailed Description

Gaussian laser profile

Member Function Documentation

◆ fill_amplitude()

void WarpXLaserProfiles::GaussianLaserProfile::fill_amplitude ( int  np,
amrex::Real const *AMREX_RESTRICT  Xp,
amrex::Real const *AMREX_RESTRICT  Yp,
amrex::Real  t,
amrex::Real *AMREX_RESTRICT  amplitude 
) const
finalvirtual

Fill Electric Field Amplitude for each particle of the antenna.

Xp, Yp and amplitude must be arrays with the same length

Parameters
[in]npnumber of antenna particles
[in]XpX coordinate of the particles of the antenna
[in]YpY coordinate of the particles of the antenna
[in]ttime (seconds)
[out]amplitudeof the electric field (V/m)

Implements WarpXLaserProfiles::ILaserProfile.

◆ init()

void WarpXLaserProfiles::GaussianLaserProfile::init ( const amrex::ParmParse ppl,
CommonLaserParameters  params 
)
finalvirtual

Initialize Laser Profile

Reads the section of the inputfile relative to the laser beam (e.g. laser_name.profile_t_peak, laser_name.profile_duration...) and the "my_constants" section. It also receives some common laser profile parameters. It uses these data to initialize the member variables of the laser profile class.

Parameters
[in]pplshould be amrex::ParmParse(laser_name)
[in]paramscommon laser profile parameters

Implements WarpXLaserProfiles::ILaserProfile.

◆ update()

void WarpXLaserProfiles::GaussianLaserProfile::update ( amrex::Real  t)
inlinefinalvirtual

Update Laser Profile

Some laser profiles might need to perform an "update" operation per time step.

Parameters
[in]tCurrent physical time in the simulation (seconds)

Implements WarpXLaserProfiles::ILaserProfile.

Member Data Documentation

◆ beta

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::beta = 0

◆ duration

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::duration = std::numeric_limits<amrex::Real>::quiet_NaN()

◆ focal_distance

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::focal_distance = std::numeric_limits<amrex::Real>::quiet_NaN()

◆ m_common_params

CommonLaserParameters WarpXLaserProfiles::GaussianLaserProfile::m_common_params
private

◆ 

struct { ... } WarpXLaserProfiles::GaussianLaserProfile::m_params

◆ phi0

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::phi0 = 0

◆ phi2

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::phi2 = 0

◆ stc_direction

amrex::Vector<amrex::Real> WarpXLaserProfiles::GaussianLaserProfile::stc_direction

◆ t_peak

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::t_peak = std::numeric_limits<amrex::Real>::quiet_NaN()

◆ theta_stc

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::theta_stc

Direction of the spatio-temporal couplings.

◆ waist

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::waist = std::numeric_limits<amrex::Real>::quiet_NaN()

◆ zeta

amrex::Real WarpXLaserProfiles::GaussianLaserProfile::zeta = 0

The documentation for this class was generated from the following files: