{
  "title": "GaussianPulse",
  "public_path": "flex_rf.tidy3d.GaussianPulse",
  "lookup_path": "tidy3d.GaussianPulse",
  "slug": "flex_rf/tidy3d/GaussianPulse",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/gaussianpulse/",
  "object_kind": "class",
  "introduction": "Source time dependence that describes a Gaussian pulse.",
  "notes": "",
  "examples": "```python\npulse = GaussianPulse(freq0=200e12, fwidth=20e12)\n```",
  "references": "",
  "signature": "class GaussianPulse(Pulse)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/source/time.py",
    "url": "",
    "lineno": 208,
    "endlineno": 442
  },
  "bases": [
    "Pulse"
  ],
  "parameter_rows": [
    {
      "name": "remove_dc_component",
      "annotation": "bool",
      "default": "True",
      "description": "Whether to remove the DC component in the Gaussian pulse spectrum. If `True`, the Gaussian pulse is modified at low frequencies to zero out the DC component, which is usually desirable so that the fields will decay. However, for broadband simulations, it may be better to have non-vanishing source power near zero frequency. Setting this to `False` results in an unmodified Gaussian pulse spectrum which can have a nonzero DC component.",
      "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": "amplitude",
      "annotation": "NonNegativeFloat",
      "default": "1.0",
      "description": "Real-valued maximum amplitude of the time dependence.",
      "origin": "inherited"
    },
    {
      "name": "phase",
      "annotation": "float",
      "default": "0.0",
      "description": "Phase shift of the time dependence.",
      "origin": "inherited"
    },
    {
      "name": "freq0",
      "annotation": "PositiveFloat",
      "default": "",
      "description": "Central frequency of the pulse.",
      "origin": "inherited"
    },
    {
      "name": "fwidth",
      "annotation": "PositiveFloat",
      "default": "",
      "description": "Standard deviation of the frequency content of the pulse.",
      "origin": "inherited"
    },
    {
      "name": "offset",
      "annotation": "float",
      "default": "5.0",
      "description": "Time delay of the maximum value of the pulse in units of 1 / (`2pi * fwidth`).",
      "origin": "inherited"
    }
  ],
  "members": [
    {
      "name": "amp_complex",
      "kind": "attribute",
      "signature": "amp_complex: complex",
      "description": "Grab the complex amplitude from a `GaussianPulse`."
    },
    {
      "name": "amp_freq",
      "kind": "function",
      "signature": "amp_freq(freq: float)",
      "description": "Complex-valued source spectrum in frequency domain."
    },
    {
      "name": "amp_time",
      "kind": "function",
      "signature": "amp_time(time: float | ArrayFloat1D)",
      "description": "Complex-valued source amplitude as a function of time."
    },
    {
      "name": "end_time",
      "kind": "function",
      "signature": "end_time()",
      "description": "Time after which the source is effectively turned off / close to zero amplitude."
    },
    {
      "name": "frequency_range_sigma",
      "kind": "function",
      "signature": "frequency_range_sigma(sigma: float = DEFAULT_SIGMA)",
      "description": "Frequency range where the source amplitude is within `exp(-sigma**2/2)` of the peak amplitude."
    },
    {
      "name": "from_amp_complex",
      "kind": "function",
      "signature": "from_amp_complex(amp: complex, **kwargs: Any)",
      "description": "Set the complex amplitude of a `GaussianPulse`."
    },
    {
      "name": "from_frequency_range",
      "kind": "function",
      "signature": "from_frequency_range(fmin: PositiveFloat, fmax: PositiveFloat, minimum_source_bandwidth: PositiveFloat | None = None, **kwargs: Any)",
      "description": "Create a `GaussianPulse` that maximizes its amplitude in the frequency range [fmin, fmax]."
    },
    {
      "name": "offset_time",
      "kind": "attribute",
      "signature": "offset_time: float",
      "description": "Offset time in seconds. Note that in the case of DC removal, the maximal value of pulse can be shifted."
    },
    {
      "name": "peak_frequency",
      "kind": "attribute",
      "signature": "peak_frequency: float",
      "description": "Frequency at which the source time dependence has its peak amplitude in the frequency domain."
    },
    {
      "name": "peak_time",
      "kind": "attribute",
      "signature": "peak_time: float",
      "description": "Peak time in seconds, defined by `offset`."
    }
  ],
  "group": "flex_rf.tidy3d"
}
