{
  "title": "Absorber",
  "public_path": "flex_rf.tidy3d.Absorber",
  "lookup_path": "tidy3d.Absorber",
  "slug": "flex_rf/tidy3d/Absorber",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/absorber/",
  "object_kind": "class",
  "introduction": "Specifies an adiabatic absorber along a single dimension.",
  "notes": "This absorber is well-suited for dispersive materials intersecting with absorbing edges of the simulation at the\nexpense of more layers.\n\n**Usage Caveats**\n\nUsing absorber boundary is often a good remedy to resolve divergence issues related to `PML`. The\nadiabatic absorber is a multilayer system with gradually increasing conductivity. The absorber usually has a\nlarger undesired reflection compared to `PML`. In practice, this small difference rarely matters,\nbut is important to understand for simulations that require high accuracy.\n\nThere are two possible sources for the reflection from absorbers. The first, and more common one, is that the\nramping up of the conductivity is not sufficiently slow, which can be remedied by increasing the number of\nabsorber layers (40 by default). The second one is that the absorption is not high enough, such that the\nlight reaches the `PEC` boundary at the end of the `Absorber`, travels back through it,\nand is still not fully attenuated before re-entering the simulation region. If this is the case, increasing\nthe maximum conductivity `AbsorberParams` can help. In both cases, changing the order of the scaling\nof the conductivity (`sigma_order`) can also have an effect, but this is a more\nadvanced setting that we typically do not recommend modifying.",
  "examples": "```python\npml = Absorber(num_layers=40)\n```",
  "references": "",
  "signature": "class Absorber(AbsorberSpec)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/boundary.py",
    "url": "",
    "lineno": 920,
    "endlineno": 974
  },
  "bases": [
    "AbsorberSpec"
  ],
  "parameter_rows": [
    {
      "name": "num_layers",
      "annotation": "int",
      "default": "40",
      "description": "Number of layers of absorber to add to + and - boundaries.",
      "origin": "declared"
    },
    {
      "name": "parameters",
      "annotation": "AbsorberParams",
      "default": "DefaultAbsorberParameters",
      "description": "Adiabatic absorber parameters.",
      "origin": "declared"
    },
    {
      "name": "attrs",
      "annotation": "dict",
      "default": "factory: dict",
      "description": "Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, `attrs` are mutable. For example, the following is allowed for setting an `attr` `obj.attrs['foo'] = bar`. Also note that Tidy3D will raise a `TypeError` if `attrs` contain objects that can not be serialized. One can check if `attrs` are serializable by calling `obj.model_dump_json()`.",
      "origin": "inherited"
    },
    {
      "name": "name",
      "annotation": "str | None",
      "default": "None",
      "description": "Optional unique name for boundary.",
      "origin": "inherited"
    },
    {
      "name": "extrude_structures",
      "annotation": "bool",
      "default": "False",
      "description": "Automatically extrude structures into the absorbing region (e.g., PML or adiabatic absorber). Any structure located within 2 cells of a simulation boundary will be extended through the full thickness of the PML/absorber. The extruded region is assigned the material properties of the structure 2 cells from the simulation boundary. Extrusion is performed along the direction normal to the PML/absorber surface.",
      "origin": "inherited"
    }
  ],
  "members": [],
  "group": "flex_rf.tidy3d"
}
