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>