perfDispPmlUpdater
implements the standard (as in Taflove) PML algorithm for an Faraday-type Maxwell update, using the controlled dispersion operators.
The perfDispPmlUpdater
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 electric field to use in the update.
writeFields (required string vector)
A vector contining a two elements, the magnetic field and auxiliary magnetic fields to update.
sigmaX (optional parameter block)
An STFunc
block specifying the functional form of the
magnetic conductivity for absorbtion of waves propagating in the
\(x\) direction.
sigmaY (optional parameter block)
An STFunc
block specifying the functional form of the
magnetic conductivity for absorbtion of waves propagating in the
\(y\) direction.
sigmaZ (optional parameter block)
An STFunc
block specifying the functional form of the
magnetic 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 permeability 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 permeability 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 permeability 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.
<FieldMultiUpdater frontPMLB>
kind = perfDispPmlUpdater
lowerBounds = [ 0 0 NZ_BEGIN]
upperBounds = [NX NY_BEGIN NZ_END ]
readFields = [elecField]
writeFields = [magField pmlAuxB]
components = [0 1 2]
minDim = 2
Delta = DELTA
<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>