SplitFieldPML

Package: kwave.toolbox

Definition and application of a split field perfectly matched layer (PML).

Description

Class used to define and apply a perfectly matched layer (PML) to a vector field. The class constructor takes a Grid object which defines the grid size. The PML size is defined by the gridPadding property of the Grid object.

Six properties are used to store the PML on the regular and staggered grid in each direction. These are initialised as ones (no PML) by the constructor. The PML profile can be setup by calling the helper method setupQuarticPML, which sets the profiles to https://doi.org/10.1121/1.1421344 (Equation 27). Alternatively, the individual profiles can be defined directly.

The PML can be applied to a vector field f by calling applyPML. This applies the appropriate PML to each Cartesian direction, where the Cartesian components of the field are stored in the fourth dimension of f.

Input Arguments

  • kgrid - (kwave.toolbox.Grid) Object which defines the simulation grid size.

Properties

Input objects:

  • kgrid - (kwave.toolbox.Grid) Handle for grid object.

Other properties:

  • pmlX - (single) X-direction PML on the regular grid.
  • pmlY - (single) Y-direction PML on the regular grid.
  • pmlZ - (single) Z-direction PML on the regular grid.
  • pmlXStaggered - (single) X-direction PML on the staggered grid.
  • pmlYStaggered - (single) Y-direction PML on the staggered grid.
  • pmlZStaggered - (single) Z-direction PML on the staggered grid.
  • pmlAlpha - (single) Absorption coefficient within the PML [Nepers per grid point]. Default = 2.

Methods