laserfields
Fortran95 library to describe time-dependent laser pulses
Toggle main menu visibility
Loading...
Searching...
No Matches
laserfields.f90
Go to the documentation of this file.
1
! Copyright (c) 2012, Johannes Feist
2
! licensed under the MIT open source license, see LICENSE file
3
4
module
laserfields
5
! this is a trick for making use with intel fortran easier:
6
! we explicitly list the variables/functions we want to import, which
7
! causes the generated laserfields.mod file to contain the definitions themselves and
8
! not to depend on laserfields_module.mod and laserfields_paramfilehandling.mod
9
! in addition, this gives us the opportunity not to export all functions in these
10
! modules for "external" use
11
use
nrtype
,
ONLY
:
dp
,
dpc
12
use
laserfields_module
,
only
: &
13
&
laserfield
,
all_laserfields
,
n_laserfields
,
get_el
,
get_al
,
get_el_posfreq
,
get_al_posfreq
,
get_zl
, &
14
&
get_el_fourier_transform
,
get_al_fourier_transform
,
get_el_fourier_transform_string
, &
15
&
add_laserfield
,
make_laserfield
, &
16
&
lf_get_envelope
,
lf_envelope_fourier
,
lf_envelope_fourier_string
,
lf_get_omega
, &
17
&
lf_get_starttime
,
lf_get_endtime
,
laserfields_starttime
,
laserfields_endtime
, &
18
&
laserfields_smallest_tx
,
laserfields_largest_possible_dt
,
write_laserfields
, &
19
&
laserfield_teff
,
laserfield_int
,
tdcs_factor
,
cs_factor
,
laserfields_can_get_fourier
, &
20
&
lf_can_get_fourier
21
use
laserfields_paramfilehandling
,
only
:
laserfields_read_parameters
,
laserfields_write_parameters
22
end module
laserfields
laserfields_module::get_al_fourier_transform
Return the fourier transform . if called with a type(laserfield) argument, gets for just that one fi...
Definition
laserfields_module.f90:133
laserfields_module::get_al_posfreq
Return the positive-frequency part of the vector potential A^(+)(t). if called with a type(laserfield...
Definition
laserfields_module.f90:112
laserfields_module::get_al
Return the vector potential A(t). if called with a type(laserfield) argument, gets A(t) for just that...
Definition
laserfields_module.f90:96
laserfields_module::get_el_fourier_transform_string
Return the fourier transform E(ω) as a string that can be used as a function in gnuplot....
Definition
laserfields_module.f90:141
laserfields_module::get_el_fourier_transform
Return the fourier transform . if called with a type(laserfield) argument, gets for just that one fi...
Definition
laserfields_module.f90:126
laserfields_module::get_el_posfreq
Return the positive-frequency part of the electric field E^(+)(t). if called with a type(laserfield) ...
Definition
laserfields_module.f90:104
laserfields_module::get_el
Return the electric field E(t). if called with a type(laserfield) argument, gets E(t) for just that o...
Definition
laserfields_module.f90:89
laserfields_module::get_zl
Return the free-space displacement Z(t) of an electron. if called with a type(laserfield) argument,...
Definition
laserfields_module.f90:119
laserfields_module::make_laserfield
Make a new type(laserfield), either from parameters or reading from a datafile.
Definition
laserfields_module.f90:82
laserfields_paramfilehandling::laserfields_read_parameters
read laserfield parameters and put into global all_laser_fields array
Definition
laserfields_paramfilehandling.f90:13
laserfields_paramfilehandling::laserfields_write_parameters
write parameters of all laserfields in global all_laser_fields array
Definition
laserfields_paramfilehandling.f90:22
laserfields_module
Definition
laserfields_module.f90:4
laserfields_module::lf_get_endtime
real(dp) function lf_get_endtime(lf)
Definition
laserfields_module.f90:1060
laserfields_module::write_laserfields
subroutine write_laserfields(unit, timestep)
Definition
laserfields_module.f90:1152
laserfields_module::laserfield_int
real(dp) function laserfield_int(lf, n_photon)
Definition
laserfields_module.f90:1209
laserfields_module::n_laserfields
integer n_laserfields
Number of laserfields in the global array all_laserfields.
Definition
laserfields_module.f90:79
laserfields_module::add_laserfield
subroutine add_laserfield(lf)
add a type(laserfield) to the global list all_laserfields
Definition
laserfields_module.f90:151
laserfields_module::cs_factor
real(dp) function cs_factor(lf, n_photon)
Definition
laserfields_module.f90:1225
laserfields_module::laserfields_endtime
real(dp) function laserfields_endtime()
Definition
laserfields_module.f90:1077
laserfields_module::lf_envelope_fourier_string
character(1000) function lf_envelope_fourier_string(lf, omegastr)
Definition
laserfields_module.f90:699
laserfields_module::lf_can_get_fourier
logical function lf_can_get_fourier(lf)
Definition
laserfields_module.f90:1242
laserfields_module::laserfields_can_get_fourier
logical function laserfields_can_get_fourier()
Definition
laserfields_module.f90:1234
laserfields_module::all_laserfields
type(laserfield), dimension(100) all_laserfields
Global array saving the laserfields read from parameter files and added with add_laserfield.
Definition
laserfields_module.f90:77
laserfields_module::lf_get_omega
subroutine lf_get_omega(lf, zeit, omega, env)
Definition
laserfields_module.f90:769
laserfields_module::laserfields_smallest_tx
real(dp) function laserfields_smallest_tx()
Definition
laserfields_module.f90:1085
laserfields_module::lf_get_starttime
real(dp) function lf_get_starttime(lf)
Definition
laserfields_module.f90:1051
laserfields_module::laserfield_teff
real(dp) function laserfield_teff(lf, n_photon)
Definition
laserfields_module.f90:1179
laserfields_module::lf_envelope_fourier
complex(dpc) function lf_envelope_fourier(lf, omega)
Definition
laserfields_module.f90:615
laserfields_module::laserfields_largest_possible_dt
real(dp) function laserfields_largest_possible_dt(zeit, endzeit, global)
This function gives the maximum timestep that resolves the current oscillation well....
Definition
laserfields_module.f90:1096
laserfields_module::tdcs_factor
real(dp) function tdcs_factor(lf, n_photon)
Definition
laserfields_module.f90:1216
laserfields_module::laserfields_starttime
real(dp) function laserfields_starttime()
Definition
laserfields_module.f90:1069
laserfields_module::lf_get_envelope
subroutine lf_get_envelope(lf, zeit, env, envpr)
Definition
laserfields_module.f90:547
laserfields_paramfilehandling
Definition
laserfields_paramfilehandling.f90:4
laserfields
Definition
laserfields.f90:4
nrtype
Definition
nrtype.f90:4
nrtype::dpc
integer, parameter dpc
Definition
nrtype.f90:7
nrtype::dp
integer, parameter dp
Definition
nrtype.f90:6
laserfields_module::laserfield
Datatype describing a single laserfield, should usually be created through make_laserfield routine.
Definition
laserfields_module.f90:13
src
laserfields.f90
Generated on
for laserfields by
1.17.0