tidy3d.plugins.microwave.Custom2DPathIntegral#
- class Custom2DPathIntegral[source]#
Bases:
Custom2DPathIntegralSpecClass for defining a custom path integral defined as a curve on an axis-aligned plane.
- Parameters:
axis (Literal[0, 1, 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 \(\vec{r}_i\), this class approximates path integrals over vector fields of the form \(\int{\vec{F} \cdot \vec{dl}}\) as \(\sum_i{\vec{F}(\vec{r}_i) \cdot \vec{dl}_i}\), where the differential length \(\vec{dl}\) is approximated using central differences \(\vec{dl}_i = \frac{\vec{r}_{i+1} - \vec{r}_{i-1}}{2}\). If the path is not closed, forward and backward differences are used at the endpoints.
Example
>>> import numpy as np >>> vertices = np.array([[0, 0], [1, 0], [1, 1], [0, 1]]) >>> path = Custom2DPathIntegral( ... axis=2, ... position=0.5, ... vertices=vertices, ... )
Attributes
axispositionverticesMethods
compute_integral(field, em_field)Computes the path integral defined by
verticesgiven the inputem_field.Inherited Common Usage
- compute_integral(field, em_field)[source]#
Computes the path integral defined by
verticesgiven the inputem_field.- Parameters:
field (
Literal['E', 'H']) – Can take the value of"E"or"H". Determines whether to perform the integral over electric or magnetic field.em_field (
IntegrableMonitorDataType) – The electromagnetic field data that will be used for integrating.
- Returns:
Result of integral over remaining dimensions (frequency, time, mode indices).
- Return type:
IntegralResultType