{
  "title": "CustomImpedanceSpec",
  "public_path": "flex_rf.tidy3d.CustomImpedanceSpec",
  "lookup_path": "tidy3d.rf.CustomImpedanceSpec",
  "slug": "flex_rf/tidy3d/CustomImpedanceSpec",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/customimpedancespec/",
  "object_kind": "class",
  "introduction": "Specification for custom transmission line voltages and currents in mode solvers.",
  "notes": "The `CustomImpedanceSpec` class specifies how quantities related to transmission line\nmodes are computed. It defines the paths for line integrals, which are used to\ncompute voltage, current, and characteristic impedance of the transmission line.\n\nUsers must supply at least one of voltage or current path specifications to control where these integrals\nare evaluated. Both voltage_spec and current_spec cannot be `None` simultaneously.",
  "examples": "```python\nfrom tidy3d.components.microwave.path_integrals.specs.voltage import AxisAlignedVoltageIntegralSpec\nfrom tidy3d.components.microwave.path_integrals.specs.current import AxisAlignedCurrentIntegralSpec\nvoltage_spec = AxisAlignedVoltageIntegralSpec(\n    center=(0, 0, 0), size=(0, 0, 1), sign=\"+\"\n)\ncurrent_spec = AxisAlignedCurrentIntegralSpec(\n    center=(0, 0, 0), size=(2, 1, 0), sign=\"+\"\n)\nimpedance_spec = CustomImpedanceSpec(\n    voltage_spec=voltage_spec,\n    current_spec=current_spec\n)\n```",
  "references": "",
  "signature": "class CustomImpedanceSpec(AbstractImpedanceSpec)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/microwave/path_integrals/specs/impedance.py",
    "url": "",
    "lineno": 55,
    "endlineno": 177
  },
  "bases": [
    "AbstractImpedanceSpec"
  ],
  "parameter_rows": [
    {
      "name": "voltage_spec",
      "annotation": "VoltagePathSpecType | None",
      "default": "None",
      "description": "Path specification for computing the voltage associated with a mode profile.",
      "origin": "declared"
    },
    {
      "name": "current_spec",
      "annotation": "CurrentPathSpecType | None",
      "default": "None",
      "description": "Path specification for computing the current associated with a mode profile.",
      "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": "check_path_spec_combinations",
      "kind": "function",
      "signature": "check_path_spec_combinations()",
      "description": "Validate that at least one of voltage_spec or current_spec is provided."
    },
    {
      "name": "from_bounding_box",
      "kind": "function",
      "signature": "from_bounding_box(bounding_box: Box, current_sign: Direction = '+')",
      "description": "Create a custom impedance specification from a bounding box."
    },
    {
      "name": "impedance_definition",
      "kind": "attribute",
      "signature": "impedance_definition: ImpedanceDef",
      "description": "Determine the impedance definition based on provided path specifications."
    }
  ],
  "group": "flex_rf.tidy3d"
}
