{
  "title": "ModeABCBoundary",
  "public_path": "flex_rf.tidy3d.ModeABCBoundary",
  "lookup_path": "tidy3d.ModeABCBoundary",
  "slug": "flex_rf/tidy3d/ModeABCBoundary",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/modeabcboundary/",
  "object_kind": "class",
  "introduction": "One-way wave equation absorbing boundary conditions for absorbing a waveguide mode.",
  "notes": "",
  "examples": "",
  "references": "",
  "signature": "class ModeABCBoundary(AbstractABCBoundary)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/boundary.py",
    "url": "",
    "lineno": 269,
    "endlineno": 383
  },
  "bases": [
    "AbstractABCBoundary"
  ],
  "parameter_rows": [
    {
      "name": "mode_spec",
      "annotation": "ModeSpecType",
      "default": "DEFAULT_MODE_SPEC_MODE_ABC",
      "description": "Parameters that determine the modes computed by the mode solver.",
      "origin": "declared"
    },
    {
      "name": "mode_index",
      "annotation": "NonNegativeInt",
      "default": "0",
      "description": "Index into the collection of modes returned by mode solver. The absorbing boundary conditions are configured to absorb the specified mode. If larger than `mode_spec.num_modes`, `num_modes` in the solver will be set to `mode_index + 1`.",
      "origin": "declared"
    },
    {
      "name": "freq_spec",
      "annotation": "PositiveFloat | BroadbandModeABCSpec | None",
      "default": "None",
      "description": "Specifies the frequency at which field is absorbed. If `None`, then the central frequency of the source is used. If `BroadbandModeABCSpec`, then the field is absorbed over the specified frequency range.",
      "origin": "declared"
    },
    {
      "name": "plane",
      "annotation": "Box",
      "default": "...",
      "description": "Cross-sectional plane in which the absorbed mode will be computed.",
      "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"
    }
  ],
  "members": [
    {
      "name": "from_monitor",
      "kind": "function",
      "signature": "from_monitor(monitor: ModeMonitor | ModeSolverMonitor, mode_index: NonNegativeInt = 0, freq_spec: PositiveFloat | BroadbandModeABCSpec | None = None)",
      "description": "Instantiate from a `ModeMonitor` or `ModeSolverMonitor`."
    },
    {
      "name": "from_source",
      "kind": "function",
      "signature": "from_source(source: ModeSource, freq_spec: PositiveFloat | BroadbandModeABCSpec | None = None)",
      "description": "Instantiate from a `ModeSource`."
    },
    {
      "name": "is_plane",
      "kind": "function",
      "signature": "is_plane(val: Box)",
      "description": "Raise validation error if not planar."
    }
  ],
  "group": "flex_rf.tidy3d"
}
