tidy3d.PointCloudFieldMonitor#

class PointCloudFieldMonitor[source]#

Bases: FreqMonitor

Monitor that records electromagnetic fields at arbitrary points.

Parameters:
  • name (str) – Unique name for monitor.

  • interval_space (tuple[Literal[1], Literal[1], Literal[1]] = (1, 1, 1)) – Point-cloud field monitors do not support spatial downsampling.

  • colocate (Literal[False] = False) – Point-cloud field monitors always store fields sampled from native Yee-grid field values and do not support field colocation.

  • use_colocated_integration (Literal[True] = True) – Whether to use colocated fields for flux, dot products, and overlap integrals. Hard-coded to True for most monitor types. Can be toggled on field, overlap, and flux monitors.

  • freqs (ArrayLike[dtype=float, ndim=1]) – [units = Hz]. Array or list of frequencies stored by the field monitor.

  • apodization (ApodizationSpec = ApodizationSpec()) – Sets parameters of (optional) apodization. Apodization applies a windowing function to the Fourier transform of the time-domain fields into frequency-domain ones, and can be used to truncate the beginning and/or end of the time signal, for example to eliminate the source pulse when studying the eigenmodes of a system. Note: apodization affects the normalization of the frequency-domain fields.

  • points (PointDataArray) – [units = um]. Point coordinates at which fields are recorded. The array must have dimensions ('index', 'axis') and shape (num_points, 3).

  • fields (tuple[Literal['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'], ...] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']) – Collection of field components to store in the monitor.

  • are (The monitor stores field components indexed by point and frequency. Point coordinates)

:param supplied as a PointDataArray with dimensions ("index": :param "axis") and shape: :param (num_points: :param 3). Point-cloud fields are sampled from native field values: :param equivalent to: :param point FieldMonitor objects with colocate=False.:

Example

>>> points = PointDataArray(
...     [[0.0, 0.0, 0.0], [0.1, 0.2, 0.3]],
...     coords={"index": [0, 1], "axis": [0, 1, 2]},
... )
>>> monitor = PointCloudFieldMonitor(
...     points=points,
...     fields=["Ex", "Hy"],
...     freqs=[200e12],
...     name="point_cloud",
... )

Attributes

num_points

Number of points sampled by this monitor.

center

size

points

fields

interval_space

colocate

freqs

apodization

use_colocated_integration

name

Methods

storage_size(num_cells, tmesh)

Size of monitor storage given the number of point-cloud samples.

center#
size#
points#
fields#
interval_space#
colocate#
property num_points#

Number of points sampled by this monitor.

storage_size(num_cells, tmesh)[source]#

Size of monitor storage given the number of point-cloud samples.