{
  "title": "CompositeCurrentIntegral",
  "public_path": "flex_rf.tidy3d.CompositeCurrentIntegral",
  "lookup_path": "tidy3d.rf.CompositeCurrentIntegral",
  "slug": "flex_rf/tidy3d/CompositeCurrentIntegral",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/compositecurrentintegral/",
  "object_kind": "class",
  "introduction": "Current integral comprising one or more disjoint paths",
  "notes": "",
  "examples": "```python\nspec1 = AxisAlignedCurrentIntegralSpec(center=(0, 0, 0), size=(1, 1, 0), sign=\"+\")\nspec2 = AxisAlignedCurrentIntegralSpec(center=(2, 0, 0), size=(1, 1, 0), sign=\"+\")\ncomposite = CompositeCurrentIntegral(path_specs=(spec1, spec2), sum_spec=\"sum\")\n```",
  "references": "",
  "signature": "class CompositeCurrentIntegral(CompositeCurrentIntegralSpec)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/microwave/path_integrals/integrals/current.py",
    "url": "",
    "lineno": 128,
    "endlineno": 310
  },
  "bases": [
    "CompositeCurrentIntegralSpec"
  ],
  "parameter_rows": [
    {
      "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": "path_specs",
      "annotation": "tuple[AxisAlignedCurrentIntegralSpec | Custom2DCurrentIntegralSpec, ...]",
      "default": "",
      "description": "Definition of the disjoint path specifications for each isolated contour integral.",
      "origin": "inherited"
    },
    {
      "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": "inherited"
    }
  ],
  "members": [
    {
      "name": "compute_current",
      "kind": "function",
      "signature": "compute_current(em_field: IntegrableMonitorDataType)",
      "description": "Compute current flowing in loop defined by the outer edge of a rectangle."
    },
    {
      "name": "current_integrals",
      "kind": "function",
      "signature": "current_integrals()",
      "description": "\"Collection of closed current path integrals."
    }
  ],
  "group": "flex_rf.tidy3d"
}
