7 #ifndef WARPX_LaserProfiles_H_ 8 #define WARPX_LaserProfiles_H_ 122 amrex::Real *
AMREX_RESTRICT const amplitude)
const override final;
126 amrex::Real waist = std::numeric_limits<amrex::Real>::quiet_NaN();
127 amrex::Real duration = std::numeric_limits<amrex::Real>::quiet_NaN();
128 amrex::Real t_peak = std::numeric_limits<amrex::Real>::quiet_NaN();
129 amrex::Real focal_distance = std::numeric_limits<amrex::Real>::quiet_NaN();
130 amrex::Real zeta = 0;
131 amrex::Real beta = 0;
132 amrex::Real phi2 = 0;
133 amrex::Real phi0 = 0;
164 amrex::Real *
AMREX_RESTRICT const amplitude)
const override final;
168 amrex::Real waist = std::numeric_limits<amrex::Real>::quiet_NaN();
169 amrex::Real duration = std::numeric_limits<amrex::Real>::quiet_NaN();
170 amrex::Real focal_distance = std::numeric_limits<amrex::Real>::quiet_NaN();
198 amrex::Real *
AMREX_RESTRICT const amplitude)
const override final;
228 update (amrex::Real t)
override final;
249 amrex::Real *
AMREX_RESTRICT const amplitude)
const override final;
262 void internal_fill_amplitude_uniform(
263 const int idx_t_left,
281 void internal_fill_amplitude_nonuniform(
282 const int idx_t_left,
305 void parse_txye_file(std::string txye_file_name);
312 std::pair<int,int> find_left_right_time_indices(amrex::Real t)
const;
321 void read_data_t_chuck(
int t_begin,
int t_end);
331 bool is_grid_uniform =
false;
360 amrex::Real t_delay = amrex::Real(0.0);
374 std::function<std::unique_ptr<ILaserProfile>()>
379 [] () {
return std::make_unique<GaussianLaserProfile>();} },
381 [] () {
return std::make_unique<HarrisLaserProfile>();} },
382 {
"parse_field_function",
383 [] () {
return std::make_unique<FieldFunctionLaserProfile>();} },
385 [] () {
return std::make_unique<FromTXYEFileLaserProfile>();} }
390 #endif //WARPX_LaserProfiles_H_ amrex::Gpu::DeviceVector< amrex::Real > d_x_coords
Definition: LaserProfiles.H:344
amrex::Vector< amrex::Real > nvec
Definition: LaserProfiles.H:35
Definition: LaserProfiles.H:30
Definition: LaserProfiles.H:179
int last_time_index
Definition: LaserProfiles.H:355
amrex::Gpu::DeviceVector< amrex::Real > d_y_coords
Definition: LaserProfiles.H:349
void update(amrex::Real) override final
Definition: LaserProfiles.H:190
amrex::Gpu::DeviceVector< amrex::Real > E_data
Definition: LaserProfiles.H:357
amrex::Vector< amrex::Real > h_x_coords
Definition: LaserProfiles.H:343
int ny
Definition: LaserProfiles.H:335
CommonLaserParameters m_common_params
Definition: LaserProfiles.H:173
amrex::Vector< amrex::Real > h_y_coords
Definition: LaserProfiles.H:348
int first_time_index
Definition: LaserProfiles.H:353
Definition: LaserProfiles.H:24
int time_chunk_size
Definition: LaserProfiles.H:351
Definition: LaserProfiles.H:214
amrex::Vector< amrex::Real > t_coords
Definition: LaserProfiles.H:339
void update(amrex::Real) override final
Definition: LaserProfiles.H:156
const std::map< std::string, std::function< std::unique_ptr< ILaserProfile >)>> laser_profiles_dictionary
Definition: LaserProfiles.H:376
amrex::Real e_max
central wavelength
Definition: LaserProfiles.H:33
amrex::Vector< amrex::Real > p_X
maximum electric field at peak
Definition: LaserProfiles.H:34
amrex::Parser m_parser
Definition: LaserProfiles.H:205
std::string field_function
Definition: LaserProfiles.H:202
amrex::Real wavelength
Definition: LaserProfiles.H:32
void update(amrex::Real) override final
Definition: LaserProfiles.H:114
Definition: LaserProfiles.H:49
CommonLaserParameters m_common_params
Definition: LaserProfiles.H:364
CommonLaserParameters m_common_params
Definition: LaserProfiles.H:139
amrex::Vector< amrex::Real > stc_direction
Definition: LaserProfiles.H:135
Definition: LaserProfiles.H:145
std::string txye_file_name
Definition: LaserProfiles.H:329
virtual ~ILaserProfile()
Definition: LaserProfiles.H:97
Definition: LaserProfiles.H:103
amrex::Real theta_stc
Direction of the spatio-temporal couplings.
Definition: LaserProfiles.H:136