|
laserfields
Fortran95 library to describe time-dependent laser pulses
|
Data Types | |
| type | laserfield |
| Datatype describing a single laserfield, should usually be created through make_laserfield routine. More... | |
| interface | make_laserfield |
| Make a new type(laserfield), either from parameters or reading from a datafile. More... | |
| interface | get_el |
| Return the electric field E(t). if called with a type(laserfield) argument, gets E(t) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_al |
| Return the vector potential A(t). if called with a type(laserfield) argument, gets A(t) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_el_posfreq |
| Return the positive-frequency part of the electric field E^(+)(t). if called with a type(laserfield) argument, gets E^(+)(t) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_al_posfreq |
| Return the positive-frequency part of the vector potential A^(+)(t). if called with a type(laserfield) argument, gets A^(+)(t) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_zl |
| Return the free-space displacement Z(t) of an electron. if called with a type(laserfield) argument, gets Z(t) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_el_fourier_transform |
| Return the fourier transform \( \tilde E(\omega) = 1/\sqrt{2\pi} \int \exp(-i\omega t) E(t) \mathrm{d}t\). if called with a type(laserfield) argument, gets \(\tilde E(\omega)\) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_al_fourier_transform |
| Return the fourier transform \( \tilde A(\omega) = 1/\sqrt{2\pi} \int \exp(-i\omega t) A(t) \mathrm{d}t = i\tilde E(\omega)/\omega\). if called with a type(laserfield) argument, gets \(\tilde A(\omega)\) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
| interface | get_el_fourier_transform_string |
| Return the fourier transform E(ω) as a string that can be used as a function in gnuplot. if called with a type(laserfield) argument, gets E(ω) for just that one field, otherwise gets sum of all fields in all_laserfields. More... | |
Functions/Subroutines | |
| subroutine | add_laserfield (lf) |
| add a type(laserfield) to the global list all_laserfields | |
| subroutine | laserfield_set_dependent (lf) |
| subroutine | read_laserfield_from_file (lf) |
| subroutine | laserfield_numerical_derivation_e_from_a (lf) |
| subroutine | laserfield_numerical_integration_a_from_e (lf) |
| subroutine | laserfield_numerical_integration_z_from_a (lf) |
| subroutine | lf_setup_aa_interpolation (lf) |
| subroutine | lf_setup_zz_interpolation (lf) |
| subroutine | lf_get_envelope (lf, zeit, env, envpr) |
| complex(dpc) function | lf_envelope_fourier (lf, omega) |
| complex(dpc) function | expiatbt2_intt (a, b, t) |
| character(1000) function | lf_envelope_fourier_string (lf, omegastr) |
| subroutine | lf_get_omega (lf, zeit, omega, env) |
| real(dp) function | lf_get_halftotaltime (lf) |
| real(dp) function | lf_get_starttime (lf) |
| real(dp) function | lf_get_endtime (lf) |
| real(dp) function | laserfields_starttime () |
| real(dp) function | laserfields_endtime () |
| real(dp) function | laserfields_smallest_tx () |
| real(dp) function | laserfields_largest_possible_dt (zeit, endzeit, global) |
| This function gives the maximum timestep that resolves the current oscillation well. the global parameter minimum_steps_per_laser_period determines how large the timestep here is allowed to be. | |
| subroutine | write_laserfields (unit, timestep) |
| real(dp) function | laserfield_teff (lf, n_photon) |
| real(dp) function | laserfield_int (lf, n_photon) |
| real(dp) function | tdcs_factor (lf, n_photon) |
| real(dp) function | cs_factor (lf, n_photon) |
| logical function | laserfields_can_get_fourier () |
| logical function | lf_can_get_fourier (lf) |
Variables | |
| real(dp), parameter | gaussian_time_cutoff_fwhm = 3.5d0 |
| integer, parameter | minimum_steps_per_laser_period = 75 |
| type(laserfield), dimension(100) | all_laserfields |
| Global array saving the laserfields read from parameter files and added with add_laserfield. | |
| integer | n_laserfields = 0 |
| Number of laserfields in the global array all_laserfields. | |
| subroutine laserfields_module::add_laserfield | ( | type(laserfield), intent(in) | lf | ) |
add a type(laserfield) to the global list all_laserfields
Definition at line 150 of file laserfields_module.f90.
| subroutine laserfields_module::laserfield_set_dependent | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 192 of file laserfields_module.f90.
| subroutine laserfields_module::read_laserfield_from_file | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 256 of file laserfields_module.f90.
| subroutine laserfields_module::laserfield_numerical_derivation_e_from_a | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 366 of file laserfields_module.f90.
| subroutine laserfields_module::laserfield_numerical_integration_a_from_e | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 384 of file laserfields_module.f90.
| subroutine laserfields_module::laserfield_numerical_integration_z_from_a | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 429 of file laserfields_module.f90.
| subroutine laserfields_module::lf_setup_aa_interpolation | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 474 of file laserfields_module.f90.
| subroutine laserfields_module::lf_setup_zz_interpolation | ( | type(laserfield), intent(inout) | lf | ) |
Definition at line 505 of file laserfields_module.f90.
| subroutine laserfields_module::lf_get_envelope | ( | type(laserfield), intent(in) | lf, |
| real(dp), intent(in) | zeit, | ||
| real(dp), intent(out) | env, | ||
| real(dp), intent(out) | envpr ) |
Definition at line 546 of file laserfields_module.f90.
| complex(dpc) function laserfields_module::lf_envelope_fourier | ( | type(laserfield), intent(in) | lf, |
| real(dp), intent(in) | omega ) |
Definition at line 614 of file laserfields_module.f90.
| complex(dpc) function laserfields_module::expiatbt2_intt | ( | real(dp), intent(in) | a, |
| real(dp), intent(in) | b, | ||
| real(dp), intent(in) | t ) |
Definition at line 676 of file laserfields_module.f90.
| character(1000) function laserfields_module::lf_envelope_fourier_string | ( | type(laserfield), intent(in) | lf, |
| character(*), intent(in) | omegastr ) |
Definition at line 698 of file laserfields_module.f90.
| subroutine laserfields_module::lf_get_omega | ( | type(laserfield), intent(in) | lf, |
| real(dp), intent(in) | zeit, | ||
| real(dp), intent(out) | omega, | ||
| real(dp), intent(inout), optional | env ) |
Definition at line 768 of file laserfields_module.f90.
| real(dp) function laserfields_module::lf_get_halftotaltime | ( | type(laserfield), intent(in) | lf | ) |
Definition at line 1031 of file laserfields_module.f90.
| real(dp) function laserfields_module::lf_get_starttime | ( | type(laserfield), intent(in) | lf | ) |
Definition at line 1050 of file laserfields_module.f90.
| real(dp) function laserfields_module::lf_get_endtime | ( | type(laserfield), intent(in) | lf | ) |
Definition at line 1059 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfields_starttime |
Definition at line 1068 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfields_endtime |
Definition at line 1076 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfields_smallest_tx |
Definition at line 1084 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfields_largest_possible_dt | ( | real(dp), intent(in) | zeit, |
| real(dp), intent(in), optional | endzeit, | ||
| logical, intent(in), optional | global ) |
This function gives the maximum timestep that resolves the current oscillation well. the global parameter minimum_steps_per_laser_period determines how large the timestep here is allowed to be.
Definition at line 1095 of file laserfields_module.f90.
| subroutine laserfields_module::write_laserfields | ( | integer, intent(in) | unit, |
| real(dp), intent(in), optional | timestep ) |
Definition at line 1151 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfield_teff | ( | type(laserfield), intent(in) | lf, |
| integer, intent(in) | n_photon ) |
Definition at line 1178 of file laserfields_module.f90.
| real(dp) function laserfields_module::laserfield_int | ( | type(laserfield), intent(in) | lf, |
| integer, intent(in) | n_photon ) |
Definition at line 1208 of file laserfields_module.f90.
| real(dp) function laserfields_module::tdcs_factor | ( | type(laserfield), intent(in) | lf, |
| integer, intent(in) | n_photon ) |
Definition at line 1215 of file laserfields_module.f90.
| real(dp) function laserfields_module::cs_factor | ( | type(laserfield), intent(in) | lf, |
| integer, intent(in) | n_photon ) |
Definition at line 1224 of file laserfields_module.f90.
| logical function laserfields_module::laserfields_can_get_fourier |
Definition at line 1233 of file laserfields_module.f90.
| logical function laserfields_module::lf_can_get_fourier | ( | type(laserfield), intent(in) | lf | ) |
Definition at line 1241 of file laserfields_module.f90.
| real(dp), parameter laserfields_module::gaussian_time_cutoff_fwhm = 3.5d0 |
Definition at line 9 of file laserfields_module.f90.
| integer, parameter laserfields_module::minimum_steps_per_laser_period = 75 |
Definition at line 10 of file laserfields_module.f90.
| type(laserfield), dimension(100) laserfields_module::all_laserfields |
Global array saving the laserfields read from parameter files and added with add_laserfield.
Definition at line 77 of file laserfields_module.f90.
| integer laserfields_module::n_laserfields = 0 |
Number of laserfields in the global array all_laserfields.
Definition at line 79 of file laserfields_module.f90.