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

#include <LaserProfiles.H>

Inheritance diagram for WarpXLaserProfiles::FieldFunctionLaserProfile:
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 {
   std::string   field_function
 
m_params
 
amrex::Parser m_parser
 

Detailed Description

Laser profile defined by the used with an analytical expression

Member Function Documentation

◆ fill_amplitude()

void WarpXLaserProfiles::FieldFunctionLaserProfile::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::FieldFunctionLaserProfile::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::FieldFunctionLaserProfile::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

◆ field_function

std::string WarpXLaserProfiles::FieldFunctionLaserProfile::field_function

◆ 

struct { ... } WarpXLaserProfiles::FieldFunctionLaserProfile::m_params

◆ m_parser

amrex::Parser WarpXLaserProfiles::FieldFunctionLaserProfile::m_parser
private

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