{
  "title": "Boundary",
  "public_path": "flex_rf.tidy3d.Boundary",
  "lookup_path": "tidy3d.Boundary",
  "slug": "flex_rf/tidy3d/Boundary",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/boundary/",
  "object_kind": "class",
  "introduction": "Boundary conditions at the minus and plus extents along a dimension.",
  "notes": "To specify individual boundary conditions along different dimensions, instead of `BoundarySpec`,\nthis class is used, which defines the `plus` and `minus` boundaries along a single\ndimension.",
  "examples": "```python\nboundary = Boundary(plus = PML(), minus = PECBoundary())\n```",
  "references": "",
  "signature": "class Boundary(Tidy3dBaseModel)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/boundary.py",
    "url": "",
    "lineno": 998,
    "endlineno": 1364
  },
  "bases": [
    "Tidy3dBaseModel"
  ],
  "parameter_rows": [
    {
      "name": "plus",
      "annotation": "BoundaryEdgeType",
      "default": "factory: PML",
      "description": "Boundary condition on the plus side along a dimension.",
      "origin": "declared"
    },
    {
      "name": "minus",
      "annotation": "BoundaryEdgeType",
      "default": "factory: PML",
      "description": "Boundary condition on the minus side along a dimension.",
      "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"
    }
  ],
  "members": [
    {
      "name": "abc",
      "kind": "function",
      "signature": "abc(permittivity: PositiveFloat | None = None, conductivity: NonNegativeFloat | None = None)",
      "description": "ABC boundary specification on both sides along a dimension."
    },
    {
      "name": "absorber",
      "kind": "function",
      "signature": "absorber(num_layers: NonNegativeInt = 40, parameters: PMLParams = DefaultAbsorberParameters)",
      "description": "Adiabatic absorber boundary specification on both sides along a dimension."
    },
    {
      "name": "bloch",
      "kind": "function",
      "signature": "bloch(bloch_vec: complex)",
      "description": "Bloch boundary specification on both sides along a dimension."
    },
    {
      "name": "bloch_from_source",
      "kind": "function",
      "signature": "bloch_from_source(source: BlochSourceType, domain_size: float, axis: Axis, medium: Medium | None = None)",
      "description": "Bloch boundary specification on both sides along a dimension based on a given source."
    },
    {
      "name": "bloch_on_both_sides",
      "kind": "function",
      "signature": "bloch_on_both_sides()",
      "description": "Error if a Bloch boundary is applied on only one side."
    },
    {
      "name": "mode_abc",
      "kind": "function",
      "signature": "mode_abc(plane: Box, mode_spec: ModeSpecType = DEFAULT_MODE_SPEC_MODE_ABC, mode_index: NonNegativeInt = 0, freq_spec: PositiveFloat | BroadbandModeABCSpec | None = None)",
      "description": "One-way wave equation mode ABC boundary specification on both sides along a dimension."
    },
    {
      "name": "mode_abc_from_monitor",
      "kind": "function",
      "signature": "mode_abc_from_monitor(monitor: ModeMonitor | ModeSolverMonitor, mode_index: NonNegativeInt = 0, freq_spec: PositiveFloat | BroadbandModeABCSpec | None = None)",
      "description": "One-way wave equation mode ABC boundary specification on both sides along a dimension constructed from a mode monitor."
    },
    {
      "name": "mode_abc_from_source",
      "kind": "function",
      "signature": "mode_abc_from_source(source: ModeSource, freq_spec: PositiveFloat | BroadbandModeABCSpec | None = None)",
      "description": "One-way wave equation mode ABC boundary specification on both sides along a dimension constructed from a mode source."
    },
    {
      "name": "pec",
      "kind": "function",
      "signature": "pec()",
      "description": "PEC boundary specification on both sides along a dimension."
    },
    {
      "name": "periodic",
      "kind": "function",
      "signature": "periodic()",
      "description": "Periodic boundary specification on both sides along a dimension."
    },
    {
      "name": "periodic_with_pec_pmc",
      "kind": "function",
      "signature": "periodic_with_pec_pmc()",
      "description": "If a PBC is specified along with PEC or PMC on the other side, manually set the PBC to PEC or PMC so that no special treatment of halos is required."
    },
    {
      "name": "periodic_with_pml",
      "kind": "function",
      "signature": "periodic_with_pml()",
      "description": "Error if PBC is specified with a PML."
    },
    {
      "name": "pmc",
      "kind": "function",
      "signature": "pmc()",
      "description": "PMC boundary specification on both sides along a dimension."
    },
    {
      "name": "pml",
      "kind": "function",
      "signature": "pml(num_layers: NonNegativeInt = 12, parameters: PMLParams = DefaultPMLParameters)",
      "description": "PML boundary specification on both sides along a dimension."
    },
    {
      "name": "stable_pml",
      "kind": "function",
      "signature": "stable_pml(num_layers: NonNegativeInt = 40, parameters: PMLParams = DefaultStablePMLParameters)",
      "description": "Stable PML boundary specification on both sides along a dimension."
    }
  ],
  "group": "flex_rf.tidy3d"
}
