tidy3d.plugins.microwave.CustomPathIntegral2D#

class CustomPathIntegral2D[source]#

Bases: AbstractAxesRH

Class for defining a custom path integral defined as a curve on an axis-aligned plane.

Parameters:
  • attrs (dict = {}) – 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.json().

  • axis (Literal[0, 1, 2] = 2) – Specifies dimension of the planar axis (0,1,2) -> (x,y,z).

  • position (float) – Position of the plane along the axis.

  • vertices (ArrayLike[dtype=float, ndim=2]) – [units = um]. List of (d1, d2) defining the 2 dimensional positions of the path. The index of dimension should be in the ascending order, which means if the axis corresponds with y, the coordinates of the vertices should be (x, z). If you wish to indicate a closed contour, the final vertex should be made equal to the first vertex, i.e., vertices[-1] == vertices[0]

Notes

Given a set of vertices ri, this class approximates path integrals over vector fields of the form Fdl as iF(ri)dli, where the differential length dl is approximated using central differences dli=ri+1ri12. If the path is not closed, forward and backward differences are used at the endpoints.

Attributes

bounds

Helper to get the geometric bounding box of the path integral.

is_closed_contour

Returns true when the first vertex equals the last vertex.

main_axis

Axis for performing integration.

attrs

Methods

compute_integral(field, em_field)

Computes the path integral defined by vertices given the input em_field.

from_circular_path(center, radius, ...)

Creates a CustomPathIntegral2D from a circular path given a desired number of points along the perimeter.

Inherited Common Usage

axis#
position#
vertices#
compute_integral(field, em_field)[source]#

Computes the path integral defined by vertices given the input em_field.

Parameters:
  • field (FieldParameter) – Can take the value of "E" or "H". Determines whether to perform the integral over electric or magnetic field.

  • em_field (MonitorDataTypes) – The electromagnetic field data that will be used for integrating.

Returns:

Result of integral over remaining dimensions (frequency, time, mode indices).

Return type:

IntegralResultTypes

classmethod from_circular_path(center, radius, num_points, normal_axis, clockwise)[source]#

Creates a CustomPathIntegral2D from a circular path given a desired number of points along the perimeter.

Parameters:
  • center (Coordinate) – The center of the circle.

  • radius (float) – The radius of the circle.

  • num_points (int) – THe number of equidistant points to use along the perimeter of the circle.

  • normal_axis (Axis) – The axis normal to the defined circle.

  • clockwise (bool) – When True, the points will be ordered clockwise with respect to the positive direction of the normal_axis.

Returns:

A path integral defined on a circular path.

Return type:

CustomPathIntegral2D

property is_closed_contour#

Returns true when the first vertex equals the last vertex.

property main_axis#

Axis for performing integration.

property bounds#

Helper to get the geometric bounding box of the path integral.

__hash__()#

Hash method.