tidy3d.StablePML#

class tidy3d.StablePML#

Specifies a ‘stable’ PML along a single dimension. This PML deals handles possbly divergent simulations better, but at the expense of more layers.

Parameters
  • name (Optional[str] = None) – Optional unique name for boundary.

  • num_layers (NonNegativeInt = 40) – Number of layers of ‘stable’ PML.

  • parameters (PMLParams = PMLParams(sigma_order=3, sigma_min=0.0, sigma_max=1.0, type='PMLParams', kappa_order=3, kappa_min=1.0, kappa_max=5.0, alpha_order=1, alpha_min=0.0, alpha_max=0.9)) – ‘Stable’ parameters of the complex frequency-shifted absorption poles.

Example

>>> pml = StablePML(num_layers=40)

Show JSON schema
{
   "title": "StablePML",
   "description": "Specifies a 'stable' PML along a single dimension.\nThis PML deals handles possbly divergent simulations better, but at the expense of more layers.\n\nParameters\n----------\nname : Optional[str] = None\n    Optional unique name for boundary.\nnum_layers : NonNegativeInt = 40\n    Number of layers of 'stable' PML.\nparameters : PMLParams = PMLParams(sigma_order=3, sigma_min=0.0, sigma_max=1.0, type='PMLParams', kappa_order=3, kappa_min=1.0, kappa_max=5.0, alpha_order=1, alpha_min=0.0, alpha_max=0.9)\n    'Stable' parameters of the complex frequency-shifted absorption poles.\n\nExample\n-------\n>>> pml = StablePML(num_layers=40)",
   "type": "object",
   "properties": {
      "name": {
         "title": "Name",
         "description": "Optional unique name for boundary.",
         "type": "string"
      },
      "type": {
         "title": "Type",
         "default": "StablePML",
         "enum": [
            "StablePML"
         ],
         "type": "string"
      },
      "num_layers": {
         "title": "Number of Layers",
         "description": "Number of layers of 'stable' PML.",
         "default": 40,
         "minimum": 0,
         "type": "integer"
      },
      "parameters": {
         "title": "Stable PML Parameters",
         "description": "'Stable' parameters of the complex frequency-shifted absorption poles.",
         "default": {
            "sigma_order": 3,
            "sigma_min": 0.0,
            "sigma_max": 1.0,
            "type": "PMLParams",
            "kappa_order": 3,
            "kappa_min": 1.0,
            "kappa_max": 5.0,
            "alpha_order": 1,
            "alpha_min": 0.0,
            "alpha_max": 0.9
         },
         "allOf": [
            {
               "$ref": "#/definitions/PMLParams"
            }
         ]
      }
   },
   "additionalProperties": false,
   "definitions": {
      "PMLParams": {
         "title": "PMLParams",
         "description": "Specifies full set of parameters needed for complex, frequency-shifted PML.\n\nParameters\n----------\nsigma_order : NonNegativeInt = 3\n    Order of the polynomial describing the absorber profile (~dist^sigma_order).\nsigma_min : NonNegativeFloat = 0.0\n    [units = 2*EPSILON_0/dt].  Minimum value of the absorber conductivity.\nsigma_max : NonNegativeFloat = 1.5\n    [units = 2*EPSILON_0/dt].  Maximum value of the absorber conductivity.\nkappa_order : NonNegativeInt = 3\n    Order of the polynomial describing the PML kappa profile (kappa~dist^kappa_order).\nkappa_min : NonNegativeFloat = 0.0\n    \nkappa_max : NonNegativeFloat = 1.5\n    \nalpha_order : NonNegativeInt = 3\n    Order of the polynomial describing the PML alpha profile (alpha~dist^alpha_order).\nalpha_min : NonNegativeFloat = 0.0\n    [units = 2*EPSILON_0/dt].  Minimum value of the PML alpha.\nalpha_max : NonNegativeFloat = 1.5\n    [units = 2*EPSILON_0/dt].  Maximum value of the PML alpha.\n\nExample\n-------\n>>> params = PMLParams(sigma_order=3, sigma_min=0.0, sigma_max=1.5, kappa_min=0.0)",
         "type": "object",
         "properties": {
            "sigma_order": {
               "title": "Sigma Order",
               "description": "Order of the polynomial describing the absorber profile (~dist^sigma_order).",
               "default": 3,
               "minimum": 0,
               "type": "integer"
            },
            "sigma_min": {
               "title": "Sigma Minimum",
               "description": "Minimum value of the absorber conductivity.",
               "default": 0.0,
               "units": "2*EPSILON_0/dt",
               "minimum": 0,
               "type": "number"
            },
            "sigma_max": {
               "title": "Sigma Maximum",
               "description": "Maximum value of the absorber conductivity.",
               "default": 1.5,
               "units": "2*EPSILON_0/dt",
               "minimum": 0,
               "type": "number"
            },
            "type": {
               "title": "Type",
               "default": "PMLParams",
               "enum": [
                  "PMLParams"
               ],
               "type": "string"
            },
            "kappa_order": {
               "title": "Kappa Order",
               "description": "Order of the polynomial describing the PML kappa profile (kappa~dist^kappa_order).",
               "default": 3,
               "minimum": 0,
               "type": "integer"
            },
            "kappa_min": {
               "title": "Kappa Minimum",
               "default": 0.0,
               "minimum": 0,
               "type": "number"
            },
            "kappa_max": {
               "title": "Kappa Maximum",
               "default": 1.5,
               "minimum": 0,
               "type": "number"
            },
            "alpha_order": {
               "title": "Alpha Order",
               "description": "Order of the polynomial describing the PML alpha profile (alpha~dist^alpha_order).",
               "default": 3,
               "minimum": 0,
               "type": "integer"
            },
            "alpha_min": {
               "title": "Alpha Minimum",
               "description": "Minimum value of the PML alpha.",
               "default": 0.0,
               "units": "2*EPSILON_0/dt",
               "minimum": 0,
               "type": "number"
            },
            "alpha_max": {
               "title": "Alpha Maximum",
               "description": "Maximum value of the PML alpha.",
               "default": 1.5,
               "units": "2*EPSILON_0/dt",
               "minimum": 0,
               "type": "number"
            }
         },
         "additionalProperties": false
      }
   }
}

attribute num_layers: pydantic.types.NonNegativeInt = 40#

Number of layers of ‘stable’ PML.

Constraints
  • minimum = 0

attribute parameters: tidy3d.components.boundary.PMLParams = PMLParams(sigma_order=3, sigma_min=0.0, sigma_max=1.0, type='PMLParams', kappa_order=3, kappa_min=1.0, kappa_max=5.0, alpha_order=1, alpha_min=0.0, alpha_max=0.9)#

‘Stable’ parameters of the complex frequency-shifted absorption poles.