perfDispPmlUpdater

perfDispPmlUpdater

implements the standard (as in Taflove) PML algorithm for an Faraday-type Maxwell update, using the controlled dispersion operators.

perfDispPmlUpdater Parameters

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.

Example perfDispPmlUpdater block

<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>