![]() |
Octopus
|
Data Types | |
| type | laser_t |
| interface | lasers_t |
Functions/Subroutines | |
| class(lasers_t) function, pointer | lasers_constructor (namespace) |
| subroutine, public | lasers_parse_external_fields (this) |
| subroutine, public | lasers_generate_potentials (this, mesh, space, latt) |
| subroutine, public | lasers_check_symmetries (this, kpoints) |
| subroutine | lasers_finalize (this) |
| subroutine | lasers_deallocate (this) |
| real(real64) function, public | laser_carrier_frequency (laser) |
| subroutine | lasers_init_interaction_as_partner (partner, interaction) |
| subroutine | lasers_update_quantity (this, label) |
| subroutine | lasers_copy_quantities_to_interaction (partner, interaction) |
| integer pure elemental function, public | laser_kind (laser) |
| complex(real64) function, dimension(3), public | laser_polarization (laser) |
| logical function, public | lasers_with_nondipole_field (lasers) |
| Check if a nondipole SFA correction should be computed for the given laser. More... | |
| subroutine, public | lasers_set_nondipole_parameters (this, ndfield, nd_integration_time) |
| Set parameters for nondipole SFA calculation. More... | |
| subroutine, public | laser_get_f (laser, ff) |
| subroutine, public | laser_set_f (laser, ff) |
| subroutine, public | laser_get_phi (laser, phi) |
| subroutine, public | laser_set_phi (laser, phi) |
| subroutine, public | laser_set_empty_phi (laser) |
| subroutine, public | laser_set_f_value (laser, ii, xx) |
| subroutine, public | laser_set_frequency (laser, omega) |
| subroutine, public | laser_set_polarization (laser, pol) |
| subroutine, public | laser_to_numerical_all (laser, dt, max_iter, omegamax) |
| The td functions that describe the laser field are transformed to a "numerical" representation (i.e. time grid, values at this time grid). More... | |
| subroutine, public | laser_to_numerical (laser, dt, max_iter, omegamax) |
| The td functions that describe the laser field are transformed to a "numerical" representation (i.e. time grid, values at this time grid). More... | |
| subroutine, public | laser_write_info (lasers, namespace, dt, max_iter, iunit) |
| subroutine, public | laser_potential (laser, mesh, pot, time) |
| subroutine, public | laser_vector_potential (laser, mesh, aa, time) |
| subroutine, public | laser_field (laser, field, time) |
| Retrieves the value of either the electric or the magnetic field. If the laser is given by a scalar potential, the field should be a function of space (the gradient of the scalar potential times the temporal dependence), but in that case the subroutine just returns the temporal function. More... | |
| subroutine, public | lasers_nondipole_laser_field_step (this, field, time) |
| Retrieves the NDSFA vector_potential correction. The nondipole field is obtained for consecutive timesteps and adds onto field at the previous timestep (for increased speed). The algorithm finds the accumulated A^M from oldtime to time, and add to the input A^M. The Nondipole field is obtained for an electron of q=-abs(e) =-1 a.u. and m = 1 a.u from \(A^{(M)} = \frac{q}{mc} \int dt \sum_i \sum_j A^{(0)}_i \cdot E^{(0)}_j \widehat{r}_j.\) See PhysRevA.101.043408 (2020), and subsequent paper for condensed matter systems. More... | |
| subroutine, public | laser_electric_field (laser, field, time, dt) |
| Returns a vector with the electric field, no matter whether the laser is described directly as an electric field, or with a vector potential in the velocity gauge. More... | |
| subroutine, public | load_lasers (partners, namespace) |
Variables | |
| integer, parameter, public | e_field_none = 0 |
| integer, parameter, public | e_field_electric = 1 |
| integer, parameter, public | e_field_magnetic = 2 |
| integer, parameter, public | e_field_vector_potential = 3 |
| integer, parameter, public | e_field_scalar_potential = 4 |
|
private |
Definition at line 228 of file lasers.F90.
| subroutine, public lasers_oct_m::lasers_parse_external_fields | ( | class(lasers_t), intent(inout) | this | ) |
Definition at line 246 of file lasers.F90.
| subroutine, public lasers_oct_m::lasers_generate_potentials | ( | class(lasers_t), intent(inout) | this, |
| class(mesh_t), intent(in) | mesh, | ||
| class(space_t), intent(in) | space, | ||
| type(lattice_vectors_t), intent(in) | latt | ||
| ) |
Definition at line 445 of file lasers.F90.
| subroutine, public lasers_oct_m::lasers_check_symmetries | ( | type(lasers_t), intent(in) | this, |
| type(kpoints_t), intent(in) | kpoints | ||
| ) |
Definition at line 557 of file lasers.F90.
|
private |
Definition at line 582 of file lasers.F90.
|
private |
Definition at line 593 of file lasers.F90.
| real(real64) function, public lasers_oct_m::laser_carrier_frequency | ( | type(laser_t), intent(in) | laser | ) |
Definition at line 623 of file lasers.F90.
|
private |
Definition at line 634 of file lasers.F90.
|
private |
Definition at line 652 of file lasers.F90.
|
private |
Definition at line 696 of file lasers.F90.
| integer pure elemental function, public lasers_oct_m::laser_kind | ( | type(laser_t), intent(in) | laser | ) |
Definition at line 719 of file lasers.F90.
| complex(real64) function, dimension(3), public lasers_oct_m::laser_polarization | ( | type(laser_t), intent(in) | laser | ) |
Definition at line 730 of file lasers.F90.
| logical function, public lasers_oct_m::lasers_with_nondipole_field | ( | type(lasers_t), intent(in) | lasers | ) |
Check if a nondipole SFA correction should be computed for the given laser.
Definition at line 743 of file lasers.F90.
| subroutine, public lasers_oct_m::lasers_set_nondipole_parameters | ( | type(lasers_t), intent(inout) | this, |
| real(real64), dimension(:), intent(in) | ndfield, | ||
| real(real64), intent(in) | nd_integration_time | ||
| ) |
Set parameters for nondipole SFA calculation.
Definition at line 756 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_get_f | ( | type(laser_t), intent(in) | laser, |
| type(tdf_t), intent(inout) | ff | ||
| ) |
Definition at line 773 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_f | ( | type(laser_t), intent(inout) | laser, |
| type(tdf_t), intent(inout) | ff | ||
| ) |
Definition at line 786 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_get_phi | ( | type(laser_t), intent(in) | laser, |
| type(tdf_t), intent(inout) | phi | ||
| ) |
Definition at line 801 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_phi | ( | type(laser_t), intent(inout) | laser, |
| type(tdf_t), intent(inout) | phi | ||
| ) |
Definition at line 814 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_empty_phi | ( | type(laser_t), intent(inout) | laser | ) |
Definition at line 829 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_f_value | ( | type(laser_t), intent(inout) | laser, |
| integer, intent(in) | ii, | ||
| real(real64), intent(in) | xx | ||
| ) |
Definition at line 841 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_frequency | ( | type(laser_t), intent(inout) | laser, |
| real(real64), intent(in) | omega | ||
| ) |
Definition at line 855 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_set_polarization | ( | type(laser_t), intent(inout) | laser, |
| complex(real64), dimension(:), intent(in) | pol | ||
| ) |
Definition at line 868 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_to_numerical_all | ( | type(laser_t), intent(inout) | laser, |
| real(real64), intent(in) | dt, | ||
| integer, intent(in) | max_iter, | ||
| real(real64), intent(in) | omegamax | ||
| ) |
The td functions that describe the laser field are transformed to a "numerical" representation (i.e. time grid, values at this time grid).
The possible phase and carrier frequency are evaluated and put together with the envelope, so that the envelope describes the full function (zero phase, zero carrier frequency).
Definition at line 889 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_to_numerical | ( | type(laser_t), intent(inout) | laser, |
| real(real64), intent(in) | dt, | ||
| integer, intent(in) | max_iter, | ||
| real(real64), intent(in) | omegamax | ||
| ) |
The td functions that describe the laser field are transformed to a "numerical" representation (i.e. time grid, values at this time grid).
Definition at line 920 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_write_info | ( | type(laser_t), dimension(:), intent(in) | lasers, |
| type(namespace_t), intent(in) | namespace, | ||
| real(real64), intent(in), optional | dt, | ||
| integer, intent(in), optional | max_iter, | ||
| integer, intent(in), optional | iunit | ||
| ) |
Definition at line 936 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_potential | ( | type(laser_t), intent(in) | laser, |
| class(mesh_t), intent(in) | mesh, | ||
| real(real64), dimension(:), intent(inout) | pot, | ||
| real(real64), intent(in), optional | time | ||
| ) |
Definition at line 1049 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_vector_potential | ( | type(laser_t), intent(in) | laser, |
| type(mesh_t), intent(in) | mesh, | ||
| real(real64), dimension(:, :), intent(inout) | aa, | ||
| real(real64), intent(in), optional | time | ||
| ) |
Definition at line 1084 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_field | ( | type(laser_t), intent(in) | laser, |
| real(real64), dimension(:), intent(inout) | field, | ||
| real(real64), intent(in), optional | time | ||
| ) |
Retrieves the value of either the electric or the magnetic field. If the laser is given by a scalar potential, the field should be a function of space (the gradient of the scalar potential times the temporal dependence), but in that case the subroutine just returns the temporal function.
Definition at line 1121 of file lasers.F90.
| subroutine, public lasers_oct_m::lasers_nondipole_laser_field_step | ( | type(lasers_t), intent(in) | this, |
| real(real64), dimension(:), intent(out) | field, | ||
| real(real64), intent(in) | time | ||
| ) |
Retrieves the NDSFA vector_potential correction. The nondipole field is obtained for consecutive timesteps and adds onto field at the previous timestep (for increased speed). The algorithm finds the accumulated A^M from oldtime to time, and add to the input A^M. The Nondipole field is obtained for an electron of q=-abs(e) =-1 a.u. and m = 1 a.u from \(A^{(M)} = \frac{q}{mc} \int dt \sum_i \sum_j A^{(0)}_i \cdot E^{(0)}_j \widehat{r}_j.\) See PhysRevA.101.043408 (2020), and subsequent paper for condensed matter systems.
Definition at line 1156 of file lasers.F90.
| subroutine, public lasers_oct_m::laser_electric_field | ( | type(laser_t), intent(in) | laser, |
| real(real64), dimension(:), intent(out) | field, | ||
| real(real64), intent(in) | time, | ||
| real(real64), intent(in) | dt | ||
| ) |
Returns a vector with the electric field, no matter whether the laser is described directly as an electric field, or with a vector potential in the velocity gauge.
Definition at line 1197 of file lasers.F90.
| subroutine, public lasers_oct_m::load_lasers | ( | class(partner_list_t), intent(inout) | partners, |
| type(namespace_t), intent(in) | namespace | ||
| ) |
Definition at line 1234 of file lasers.F90.
| integer, parameter, public lasers_oct_m::e_field_none = 0 |
Definition at line 180 of file lasers.F90.
| integer, parameter, public lasers_oct_m::e_field_electric = 1 |
Definition at line 180 of file lasers.F90.
| integer, parameter, public lasers_oct_m::e_field_magnetic = 2 |
Definition at line 180 of file lasers.F90.
| integer, parameter, public lasers_oct_m::e_field_vector_potential = 3 |
Definition at line 180 of file lasers.F90.
| integer, parameter, public lasers_oct_m::e_field_scalar_potential = 4 |
Definition at line 180 of file lasers.F90.