- amperePmlUpdater
amperePmlUpdater¶
This implements the standard (as in Taflove) PML algorithm for an Ampere-type Maxwell update.
amperePmlUpdater Parameters¶
The amperePmlUpdater takes the lowerBounds
and
upperBounds
parameters of FieldUpdater and the
components
parameter of FieldMultiUpdater, as well as
the following parameters:
- minDim (optional integer, default = 1)
If the dimension of the simulation is less than
minDim
, this updater will not be applied.
- readFields (required string vector)
A vector containing a single element, the magnetic field to use in the update.
- writeFields (required string vector)
A vector contining a two elements, the electric field and auxiliary displacement fields to update.
- sigmaX (optional parameter block)
An STFunc block specifying the functional form of the conductivity for absorbtion of waves propagating in the \(x\) direction.
- sigmaY (optional parameter block)
An STFunc block specifying the functional form of the conductivity for absorbtion of waves propagating in the \(y\) direction.
- sigmaZ (optional parameter block)
An STFunc block specifying the functional form of the conductivity for absorbtion of waves propagating in the \(z\) direction.
Note
At least one of sigmaX
, sigmaY
, or
sigmaZ
must be specified. A .sigma
function
should be specified for every direction in which the PML region
borders the edge of the simulation domain, e.g. if the region for
this updater is along the \(y\) direction, then
sigmaY
should be specified.
- kappaX (optional parameter block)
Effective dielectric constant for the PML absorption in the \(x\) direction. Making this greater than 1 can improve absorption of oblique-incidence waves without disturbing the analytically perfect matching. However, the best parameters to use are problem-dependent and users are encouraged to experiment.
- kappaY (optional parameter block)
Effective dielectric constant for the PML absorption in the \(y\) direction. Making this greater than 1 can improve absorption of oblique-incidence waves without disturbing the analytically perfect matching. However, the best parameters to use are problem-dependent and users are encouraged to experiment.
- kappaZ (optional parameter block)
Effective dielectric constant for the PML absorption in the \(z\) direction. Making this greater than 1 can improve absorption of oblique-incidence waves without disturbing the analytically perfect matching. However, the best parameters to use are problem-dependent and users are encouraged to experiment.
Example amperePmlUpdater block¶
<FieldMultiUpdater frontPMLE>
kind = amperePmlUpdater
lowerBounds = [ 0 0 NZ_BEGIN]
upperBounds = [NX NY_BEGIN NZ_END ]
readFields = [magField]
writeFields = [elecField pmlAuxE]
components = [0 1 2]
minDim = 2
<STFunc sigmaY>
kind = expression
expression = SIGMA_MAX * ((LY_BEGIN - y) / LY_PML)^PML_EXP
</STFunc>
<STFunc kappaY>
kind = expression
expression = 1. + (KAPPA_MAX - 1) * ((LY_BEGIN - y) / LY_PML)^PML_EXP
</STFunc>
</FieldMultiUpdater>