laserfields
Fortran95 library to describe time-dependent laser pulses
Loading...
Searching...
No Matches
laserfields_module::laserfield Type Reference

Datatype describing a single laserfield, should usually be created through make_laserfield routine. More...

Public Attributes

character(len=30) form = ''
 The shape of the envelope, can be 'gaussianF', 'gaussianI', 'sin2', 'sin_exp', 'linear', 'linear2', 'readin'.
character(len=200) datafile = ''
 Only for form=='readin': file to read numerical data from.
logical is_vecpot = .false.
 If .true., describe the vector potential A(t) with the given envelope - E(t) will contain derivative terms. This is often useful to make sure that A(-infty) = A(infty), a requirement for propagating fields.
real(dpintensity_wcm2 = 0.d0
 peak intensity in W/cm2
real(dplambda_nm = 0.d0
 carrier wavelength in nm
real(dppeak_time_as = 0.d0
 peak time of envelope in as
real(dpduration_as = 0.d0
 duration in as - depending on the value of form, this has different meanings!
real(dprampon_as = 0.d0
 Only relevant for form linear and linear2: duration of rampon/rampoff at beginning and end of pulse, in as.
real(dpphase_pi = 0.d0
 Carrier-envelope phase (CEP), in multiples of π.
phase_pi=0 corresponds to a pulse with sin(w (t-tpeak)) oscillation.
real(dpform_exponent = 1.d0
 Only relevant for form sin_exp: exponent of envelope.
real(dplinear_chirp_rate_w0as = 0.d0
 linear temporal chirp rate, in units of omega_0/as
real(dpe0 = 0.d0
 Derived: peak electric field strength in a.u.
real(dpomega = 0.d0
 Derived: carrier angular frequency in a.u.
real(dptx = 0.d0
 Derived: carrier period in a.u.
real(dppeak_time = 0.d0
 Derived: peak time of envelope in a.u.
real(dpduration = 0.d0
 Derived: duration in a.u.
real(dprampon = 0.d0
 Derived: rampon/rampoff in a.u.
real(dp), dimension(:), allocatable tt
 Numerical arrays to save the fields for interpolation for read-in fields. also used for numerical integration of E(t) to obtain A(t) and Z(t) for is_vecpot=.false. and numerical integration of A(t) to obtain Z(t) for is_vecpot=.true.
real(dp), dimension(:), allocatable ee
real(dp), dimension(:), allocatable aa
real(dp), dimension(:), allocatable zz

Detailed Description

Datatype describing a single laserfield, should usually be created through make_laserfield routine.

Definition at line 13 of file laserfields_module.f90.

Member Data Documentation

◆ form

character(len=30) laserfields_module::laserfield::form = ''

The shape of the envelope, can be 'gaussianF', 'gaussianI', 'sin2', 'sin_exp', 'linear', 'linear2', 'readin'.

  • gaussianF, gaussianI: Gaussian pulses with form exp(-z t2) (see laserfieldduration doc for meaning of z)
  • sin2: sin2 envelope
  • sin_exp: sinform_exponent envelope
  • linear: linear rampon, then constant amplitude, then linear rampoff
  • linear2: same as linear, but with sin2 rampon/off
  • readin: read numerical data from an input file and interpolate

Definition at line 22 of file laserfields_module.f90.

◆ datafile

character(len=200) laserfields_module::laserfield::datafile = ''

Only for form=='readin': file to read numerical data from.

Definition at line 24 of file laserfields_module.f90.

◆ is_vecpot

logical laserfields_module::laserfield::is_vecpot = .false.

If .true., describe the vector potential A(t) with the given envelope - E(t) will contain derivative terms. This is often useful to make sure that A(-infty) = A(infty), a requirement for propagating fields.

Definition at line 27 of file laserfields_module.f90.

◆ intensity_wcm2

real(dp) laserfields_module::laserfield::intensity_wcm2 = 0.d0

peak intensity in W/cm2

Definition at line 30 of file laserfields_module.f90.

◆ lambda_nm

real(dp) laserfields_module::laserfield::lambda_nm = 0.d0

carrier wavelength in nm

Definition at line 32 of file laserfields_module.f90.

◆ peak_time_as

real(dp) laserfields_module::laserfield::peak_time_as = 0.d0

peak time of envelope in as

Definition at line 34 of file laserfields_module.f90.

◆ duration_as

real(dp) laserfields_module::laserfield::duration_as = 0.d0

duration in as - depending on the value of form, this has different meanings!

  • gaussianF: FWHM of the field envelope
  • gaussianI: FWHM of the intensity envelope
  • sin2, sin_exp: total duration of pulse
  • linear, linear2: time during which pulse has peak amplitude
  • readin: ignored

Definition at line 42 of file laserfields_module.f90.

◆ rampon_as

real(dp) laserfields_module::laserfield::rampon_as = 0.d0

Only relevant for form linear and linear2: duration of rampon/rampoff at beginning and end of pulse, in as.

Definition at line 44 of file laserfields_module.f90.

◆ phase_pi

real(dp) laserfields_module::laserfield::phase_pi = 0.d0

Carrier-envelope phase (CEP), in multiples of π.
phase_pi=0 corresponds to a pulse with sin(w (t-tpeak)) oscillation.

Definition at line 46 of file laserfields_module.f90.

◆ form_exponent

real(dp) laserfields_module::laserfield::form_exponent = 1.d0

Only relevant for form sin_exp: exponent of envelope.

Definition at line 48 of file laserfields_module.f90.

◆ linear_chirp_rate_w0as

real(dp) laserfields_module::laserfield::linear_chirp_rate_w0as = 0.d0

linear temporal chirp rate, in units of omega_0/as

ω(t) = ω0 (1 + linear_chirp_rate_w0 (t-tpeak)) e.g. for a value of 1.d-3, the frequency will change by ω over 1000 as. Since the carrier wave should not have negative frequencies, you must take care that the chirp is not too large.

Definition at line 54 of file laserfields_module.f90.

◆ e0

real(dp) laserfields_module::laserfield::e0 = 0.d0

Derived: peak electric field strength in a.u.

Definition at line 58 of file laserfields_module.f90.

◆ omega

real(dp) laserfields_module::laserfield::omega = 0.d0

Derived: carrier angular frequency in a.u.

Definition at line 60 of file laserfields_module.f90.

◆ tx

real(dp) laserfields_module::laserfield::tx = 0.d0

Derived: carrier period in a.u.

Definition at line 62 of file laserfields_module.f90.

◆ peak_time

real(dp) laserfields_module::laserfield::peak_time = 0.d0

Derived: peak time of envelope in a.u.

Definition at line 64 of file laserfields_module.f90.

◆ duration

real(dp) laserfields_module::laserfield::duration = 0.d0

Derived: duration in a.u.

Definition at line 66 of file laserfields_module.f90.

◆ rampon

real(dp) laserfields_module::laserfield::rampon = 0.d0

Derived: rampon/rampoff in a.u.

Definition at line 68 of file laserfields_module.f90.

◆ tt

real(dp), dimension(:), allocatable laserfields_module::laserfield::tt

Numerical arrays to save the fields for interpolation for read-in fields. also used for numerical integration of E(t) to obtain A(t) and Z(t) for is_vecpot=.false. and numerical integration of A(t) to obtain Z(t) for is_vecpot=.true.

Definition at line 73 of file laserfields_module.f90.

◆ ee

real(dp), dimension(:), allocatable laserfields_module::laserfield::ee

Definition at line 73 of file laserfields_module.f90.

◆ aa

real(dp), dimension(:), allocatable laserfields_module::laserfield::aa

Definition at line 73 of file laserfields_module.f90.

◆ zz

real(dp), dimension(:), allocatable laserfields_module::laserfield::zz

Definition at line 73 of file laserfields_module.f90.


The documentation for this type was generated from the following file: