{
  "title": "BlochBoundary",
  "public_path": "flex_rf.tidy3d.BlochBoundary",
  "lookup_path": "tidy3d.BlochBoundary",
  "slug": "flex_rf/tidy3d/BlochBoundary",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/blochboundary/",
  "object_kind": "class",
  "introduction": "Specifies a Bloch boundary condition along a single dimension.",
  "notes": "",
  "examples": "```python\nbloch = BlochBoundary(bloch_vec=1)\n```",
  "references": "",
  "signature": "class BlochBoundary(BoundaryEdge)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/boundary.py",
    "url": "",
    "lineno": 481,
    "endlineno": 589
  },
  "bases": [
    "BoundaryEdge"
  ],
  "parameter_rows": [
    {
      "name": "bloch_vec",
      "annotation": "float",
      "default": "",
      "description": "Normalized component of the Bloch vector in units of 2 * pi / (size along dimension) in the background medium, along the dimension in which the boundary is specified.",
      "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": "bloch_phase",
      "kind": "function",
      "signature": "bloch_phase()",
      "description": "Returns the forward phase factor associated with `bloch_vec`."
    },
    {
      "name": "from_source",
      "kind": "function",
      "signature": "from_source(source: BlochSourceType, domain_size: float, axis: Axis, medium: Medium | None = None)",
      "description": "Set the Bloch vector component based on a given angled source and its center frequency. Note that if a broadband angled source is used, only the frequency components near the center frequency will exhibit angled incidence at the expect angle. In this case, a narrowband source is recommended."
    }
  ],
  "group": "flex_rf.tidy3d"
}
