{
  "title": "RunTimeSpec",
  "public_path": "flex_rf.tidy3d.RunTimeSpec",
  "lookup_path": "tidy3d.RunTimeSpec",
  "slug": "flex_rf/tidy3d/RunTimeSpec",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/runtimespec/",
  "object_kind": "class",
  "introduction": "Defines specification for how long to run a simulation when added to `Simulation.run_time`.",
  "notes": "The evaluated `run_time` will be computed from a `RunTimeSpec()` as follows:\n\n$$\n\\text{run_time} =  \\text{source_factor} * T_{src_max} + \\text{quality_factor} n_{max} L_{max} / c_{0}\n$$\n\nWhere: `source_factor` and `quality_factor` are fields in the spec,\n$$T_{src_max}$$ is the longest time that a source is non-zero,\n$$n_{max}$$ is the maximum refractive index in the simulation,\n$$L_{max}$$ is the distance along the largest dimension in the simulation, and\n$$c_0$$ is the speed of light in vacuum.",
  "examples": "",
  "references": "",
  "signature": "class RunTimeSpec(Tidy3dBaseModel)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/run_time_spec.py",
    "url": "",
    "lineno": 9,
    "endlineno": 42
  },
  "bases": [
    "Tidy3dBaseModel"
  ],
  "parameter_rows": [
    {
      "name": "quality_factor",
      "annotation": "PositiveFloat",
      "default": "",
      "description": "Quality factor expected in the device. This determines how long the simulation will run as it assumes a field decay time that scales proportionally to this value.",
      "origin": "declared"
    },
    {
      "name": "source_factor",
      "annotation": "PositiveFloat",
      "default": "3",
      "description": "The contribution to the `run_time` from the longest source is computed from the `source_time` length times `source_factor`. Larger values provide more buffer at the expense of potentially giving `run_time` values that are larger than needed.",
      "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": [],
  "group": "flex_rf.tidy3d"
}
