Maxwell
Name AnalyticalExternalSource
Section Maxwell
Type logical
Default no
This means the analytical evaluation of formula will be used, Maxwell propagation will not be used.
Name BesselBeamAxisShift
Section Maxwell
Type block
The BesselBeamAxisShift block allows to shift the Bessel Beam, which is centered at (0,0,0) as default.
Selected position point will be used as the new center of the Bessel Beam.
When defining a BesselBeamAxisShift, please make sure to define a shift for each Bessel source you use,
then it is possible to tell which source is shifted according to which BesselShift, respectively.
%BesselBeamAxisShift
0.0 | 2.0 | 5.0
%
Name CurrentDensityFactor
Section Maxwell
Type float
Default 1.0
Fictitous factor to modify the current density coming from partner systems.
Note: This factor does not affect the external current density prescribed by the
UserDefinedMaxwellExternalCurrent block.
Name ExternalCurrent
Section Maxwell
Type logical
Default no
If an external current density will be used.
Name ExternalSourceBesselOutput
Section Maxwell
Type block
The ExternalSourceBesselOutput block allows to output analytically calculated fields at a
particular point in space. The columns denote the x, y, and z coordinate of the point.
Please be aware that ExternalSource lives on the grid of the system that it is applied to.
Therefore, it might not be evaluated at every point in space. When comparing, please be sure
to check the log and compare if your required point in space matches the evaluated position.
%ExternalSourceBesselOutput
-1.0 | 2.0 | 4.0
%
Name MaxwellAbsorbingBoundaries
Section Maxwell
Type block
Type of absorbing boundaries used for Maxwell propagation in each direction.
Example:
%MaxwellAbsorbingBoundaries
cpml | cpml | cpml
%
Options:
- not_absorbing:
No absorbing boundaries.
- mask:
A mask equal to the wavefunctions mask is applied to the Maxwell states at the boundaries
- cpml:
Perfectly matched layer absorbing boundary
- mask_zero:
Absorbing boundary region is set to zero
Name MaxwellBoundaryConditions
Section Maxwell
Type block
Defines boundary conditions for the electromagnetic field propagation.
Example:
%MaxwellBoundaryConditions
zero | mirror_pec | constant
%
Options:
- zero:
Boundaries are set to zero.
- constant:
Boundaries are set to a constant.
- mirror_pec:
Perfect electric conductor.
- mirror_pmc:
Perfect magnetic conductor.
- plane_waves:
Boundaries feed in plane waves.
- periodic:
Periodic boundary conditions (not yet implemented).
- medium:
Boundaries as linear medium (not yet implemented).
Name MaxwellFunctions
Section Maxwell
Type block
This block specifies the shape of a "spatial-dependent function", such as the
envelope needed when using the MaxwellFunctions block. Each line in the block
specifies one function. The first element of each line will be a string
that defines the name of the function. The second element specifies which type
of function we are using; in the following we provide an example for each of the
possible types:
Options:
- mxf_const_wave:
%MaxwellFunctions
"function-name" | mxf_const_wave | kx | ky | kz | x0 | y0 | z0
%The function is constant plane wave $ f(x,y,z) = a0 * \cos( kx*(x-x0) + ky*(y-y0) + kz*(z-z0) ) $
- mxf_const_phase:
%MaxwellFunctions
"function-name" | mxf_const_phase | kx | ky | kz | x0 | y0 | z0
%The function is a constant phase of $ f(x,y,z) = a0 * (kx * x0 + ky * y0 + kz * z0) $
- mxf_gaussian_wave:
%MaxwellFunctions
"function-name" | mxf_gaussian_wave | kx | ky | kz | x0 | y0 | z0 | width
%The function is a Gaussian, $ f(x,y,z) = a0 * \exp( -( kx*(x-x0) + ky*(y-y0) + kz*(z-z0) )^2 / (2 width^2) ) $
- mxf_cosinoidal_wave:
%MaxwellFunctions
"function-name" | mxf_cosinoidal_wave | kx | ky | kz | x0 | y0 | z0 | width
%$ f(x,y,z) = \cos( \frac{\pi}{2} \frac{kx*(x-x0)+ky*(y-y0)+kz*(z-z0)-2 width}{width} + \pi ) $
If $ | kxx + kyy + kz*z - x0 | > \xi_0 $, then $ f(x,y,z) = 0 $.
- mxf_logistic_wave:
%MaxwellFunctions
"function-name" | mxf_logistic_wave | kx | ky | kz | x0 | y0 | z0 | growth | width
%The function is a logistic function, $ f(x,y,z) = a0 * 1/(1+\exp(growth*(kx*(x-x0)+ky*(y-y0)+kz*(kz*(z-z0))+width/2))) * 1/(1+\exp(-growth*(kx*(x-x0)+ky*(y-y0)+kz*(kz*(z-z0))-width/2))) $
- mxf_trapezoidal_wave:
%MaxwellFunctions
"function-name" | mxf_trapezoidal_wave | kx | ky | kz | x0 | y0 | z0 | growth | width
%The function is a logistic function,
$ f(x,y,z) = a0 * ( ( 1-growth*(k*(r-r0)-width/2)\Theta(k(r-r0)-width/2))\Theta(-(k(r-r0)+width/2+1/growth)) $
$ \qquad \qquad \qquad + (-1+growth*(k*(r-r0)+width/2)\Theta(k(r-r0)+width/2))\Theta(-(k(r-r0)-width/2+1/growth)) ) $
- mxf_from_expr:
%MaxwellFunctions
"function-name" | mxf_from_expr | kx | ky | kz | "expression"
%The temporal shape of the field is given as an expression (e.g., cos(2.0x-3y+4*z). The letter x, y, z means spatial coordinates, obviously. The expression is used to construct the function f that defines the field.
Name MaxwellHamiltonianOperator
Section Maxwell
Type integer
Default faraday_ampere
With this variable the the Maxwell Hamiltonian operator can be selected
Options:
- faraday_ampere:
The propagation operation in vacuum with Spin 1 matrices without Gauss law condition.
- faraday_ampere_medium:
The propagation operation in medium with Spin 1 matrices without Gauss law condition
- simple:
A simpler implementation of the Hamiltonian, including PML. It does not use an extra
transformation to (potentially) 6-element vectors, but uses directly the Riemann-Silberstein
vector as a variable.
Name MaxwellIncidentWaves
Section Maxwell
Type block
The initial electromagnetic fields can be set by the user
with the MaxwellIncidentWaves block variable.
The electromagnetic fields have to fulfill the
Maxwells equations in vacuum.
For a Maxwell propagation, setting the electric field is sufficient,
the magnetic field (for plane waves) will be calculated from it as 1/(c.|k|) . (k x E).
Example:
%MaxwellIncidentWaves
plane_wave_parser | "field_type"| "k1x" | "k1y" | "k1z" | "E1x" | "E1z" | "E1x"
plane_wave_mx_function | "field_type"| "E4x" | "E4y" | "E4z" | mx_envelope_name | phase
bessel_function | "field_type"| A_0 | m | omega | helicity | $\theta_{k}$ | mx_envelope_name | lin_dir
%
Field type can be "electric_field" or "vector_potential". Note that in order to couple to an electronic system, the MaxwellCouplingMode variable needs to be set to a coupling type compatible with the requested field type ("electric_field" is compatible with length gauge, while "vector_potential" is compatible with velocity gauge and full minimal coupling). Otherwise, the field will not be calculated or applied to the electronic Hamiltonian.
Options:
- plane_wave_parser:
Parser input modus
- plane_wave_mx_function:
The incident wave envelope is defined by an mx_function
- bessel_function:
The incident source is a generalized Bessel beam, parametrized by its amplitude, opening angle, helicity, order and frequency.
This beam is a solution of Maxwell equations, and inherently circularly polarized and is parametrized by its amplitude,
opening angle, helicity, order and frequency.
Please keep in mind, if you set linear polarization lin_dir,
you will obtain a linearly polarized Bessel beam.
Name MaxwellPlaneWavesInBox
Section Maxwell
Type logical
Default no
Analytic evaluation of the incoming waves inside the box,
not doing any numerical propagation of Maxwells equations.
Name MaxwellTestQuadrupole
Section Maxwell
Type logical
Default no
Override Maxwell field with linear E field for testing.
Name RegularizationFunction
Section Maxwell
Type integer
Default COS2
The current arising from charged point particles must be mapped onto the Maxwell
propagation grid. This requires a smearing or regularization function $\phi(\mathbf{r})$ attached to
each particle position $\mathbf{r}_i$ with user defined cutoff width, $\sigma$
Options:
- COS2:
$\phi(r)=\text{cos}^2(\frac{\pi}{2}\frac{|\mathbf{r}-\mathbf{r}_i|}{\sigma})$
if $|\mahtbf{r}-\mathbf{r}_i|<\sigma$, and 0 otherwise.
Name RegularizationFunctionWidth
Section Maxwell
Type float
Default 2
The current arising from charged point particles must be mapped onto the Maxwell
propagation grid. This requires a smearing or regularization function $\phi(\mathbf{r})$ attached to
each particle position $\mathbf{r}_i$ with user defined cutoff width, $\sigma$.
Default 2 bohrradii
Name SpeedOfLightFactor
Section Maxwell
Type float
Default 1.0
Fictitous factor to modify the speed of light in vacuum.
Note: the proper way to handle linear media with a certain refractive index
is by the user of the linear_medium system.
Name TransverseFieldCalculation
Section Maxwell
Type integer
Default no
This variable selects the method for the calculation of the transverse field.
Options:
- helmholtz:
Transverse field calculated from Helmholtz decompisition (unreliable at the moment).
- total_minus_long:
Total field minus longitudinal field.
Name UserDefinedConstantSpatialMaxwellField
Section Maxwell
Type block
Define parameters of spatially constant field.
Example:
%UserDefinedConstantSpatialMaxwellFields
plane_wave_parser | E_x | E_y | E_z | B_x | B_y | B_z | "tdf_function"
%
This block defines three components of E field, three components of B field, and reference to the TD function.
Name UserDefinedInitialMaxwellStates
Section Maxwell
Type block
The initial electromagnetic fields can be set by the user
with the UserDefinedMaxwellStates block variable.
The electromagnetic fields have to fulfill the
Maxwells equations in vacuum.
Example:
%UserDefinedMaxwellStates
formula | 2 | "magnetic_field" | "-1/P_c * sin(x)"
formula | 3 | "electric_field" | " sin(x) "
%
The second column specifies the component of the dimension of the electric field and magnetic field. The first column indicates that column four should be interpreted as a formula for the corresponding state. P_c is the speed of light constant.
Alternatively, if column one states file the electric field and magnetic field will be read from the files given in column four.
%UserDefinedMaxwellStates
file | 3 | electric_field | "/path/to/file_electric_field_of_dimension_3"
file | 2 | magnetic_field | "/path/to/file_magnetic_field_of_dimension_2"
%
The third option to define the initial state inside the box is to extend the plane waves used as incident waves in the MaxwellIncidentWaves block, as follows:
%UserDefinedMaxwellStates
use_incident_waves
%
Options:
- file:
Read initial orbital from file.
Accepted file formats: obf, ncdf and csv.
- formula:
Calculate initial orbital by given analytic expression.
- use_incident_waves:
Extend the plane waves given in the MaxwellIncidentWaves block inside the box.
- electric_field:
This row defines the electric field component of the corresponding dimension
- magnetic_field:
This row defines the magnetic field component of the corresponding dimension
Name UserDefinedMaxwellExternalCurrent
Section Maxwell
Type block
Example:
%UserDefinedMaxwellExternalCurrent
current_parser | "expression_x_dir1" | "expression_y_dir1" | "expression_z_dir1"
current_parser | "expression_x_dir2" | "expression_y_dir2" | "expression_z_dir2"
current_td_function | "amplitude_j0_x" | "amplitude_j0_y" | "amplitude_j0_z" | omega | envelope_td_function_name | phase
%
Description about UserDefinedMaxwellExternalCurrent follows
Options:
- current_parser:
description follows
- current_td_function:
description follows