{
  "title": "CompositeCurrentIntegralSpec",
  "public_path": "flex_rf.tidy3d.CompositeCurrentIntegralSpec",
  "lookup_path": "tidy3d.rf.CompositeCurrentIntegralSpec",
  "slug": "flex_rf/tidy3d/CompositeCurrentIntegralSpec",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/compositecurrentintegralspec/",
  "object_kind": "class",
  "introduction": "Specification for a composite current integral.",
  "notes": "This class is used to set up a `CompositeCurrentIntegral`, which combines\nmultiple current integrals. It does not perform any integration itself.",
  "examples": "```python\nspec1 = AxisAlignedCurrentIntegralSpec(\n    center=(0, 0, 0), size=(1, 1, 0), sign=\"+\"\n)\nspec2 = AxisAlignedCurrentIntegralSpec(\n    center=(2, 0, 0), size=(1, 1, 0), sign=\"+\"\n)\ncomposite_spec = CompositeCurrentIntegralSpec(\n    path_specs=(spec1, spec2),\n    sum_spec=\"sum\"\n)\n```",
  "references": "",
  "signature": "class CompositeCurrentIntegralSpec(MicrowaveBaseModel)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/microwave/path_integrals/specs/current.py",
    "url": "",
    "lineno": 318,
    "endlineno": 424
  },
  "bases": [
    "MicrowaveBaseModel"
  ],
  "parameter_rows": [
    {
      "name": "path_specs",
      "annotation": "tuple[AxisAlignedCurrentIntegralSpec | Custom2DCurrentIntegralSpec, ...]",
      "default": "",
      "description": "Definition of the disjoint path specifications for each isolated contour integral.",
      "origin": "declared"
    },
    {
      "name": "sum_spec",
      "annotation": "Literal['sum', 'split']",
      "default": "",
      "description": "Determines the method used to combine the currents calculated by the different current integrals defined by `path_specs`. `sum` simply adds all currents, while `split` keeps contributions with opposite phase separate, which allows for isolating the current flowing in opposite directions. In `split` version, the current returned is the maximum of the two contributions.",
      "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": "bounds",
      "kind": "function",
      "signature": "bounds()",
      "description": "Return the overall bounding box of all path specifications."
    },
    {
      "name": "plot",
      "kind": "function",
      "signature": "plot(x: float | None = None, y: float | None = None, z: float | None = None, ax: Ax = None, plot_arrow: bool = True, **path_kwargs: Any)",
      "description": "Plot path integral at single (x,y,z) coordinate."
    }
  ],
  "group": "flex_rf.tidy3d"
}
