config["Boundaries"]
"Boundaries":
{
"PEC":
{
...
},
"PMC":
{
...
},
"Impedance":
[
...
],
"Absorbing":
{
...
},
"Conductivity":
[
...
],
"LumpedPort":
[
...
],
"WavePort":
[
...
],
"WavePortPEC":
{
...
},
"FloquetPort":
[
...
],
"SurfaceCurrent":
[
...
],
"Ground":
{
...
},
"ZeroCharge":
{
...
},
"Terminal":
[
...
],
"Periodic":
{
...
},
"Postprocessing":
{
"SurfaceFlux":
[
...
],
"Dielectric":
[
...
],
"Impedance":
[
...
],
"Voltage":
[
...
],
"FarField":
{
...
}
}
}with
"PEC" : Top-level object for configuring perfect electric conductor (PEC) boundary conditions (zero tangential electric field).
"PMC" : Top-level object for configuring perfect magnetic conductor (PMC) boundary conditions (zero tangential magnetic field). Also imposes symmetry of the electric field across the boundary surface.
"Impedance" : Array of objects for configuring surface impedance boundary conditions. A surface impedance boundary relates the tangential electric and magnetic fields on the boundary using a user specified surface impedance.
"Absorbing" : Top-level object for configuring absorbing boundary conditions. These are artificial scattering boundary conditions at farfield boundaries.
"Conductivity" : Array of objects for configuring finite conductivity surface impedance boundary conditions. Finite conductivity boundaries are only available for frequency domain driven and eigenmode simulation types.
"LumpedPort" : Array of objects for configuring lumped port boundary conditions. Lumped ports can be specified on boundaries which are internal to the computational domain.
"WavePort" : Array of objects for configuring numeric wave port boundary conditions. Wave ports can only be specified on boundaries which are on the true boundary of the computational domain. Additionally, wave port boundaries are only available for frequency domain driven and eigenmode simulation types.
"WavePortPEC" : Top-level object for forcing specific boundary attributes to act as PEC in the wave port boundary mode analysis, overriding any other boundary condition assigned to those attributes. Only relevant when wave port boundaries are specified under config["Boundaries"]["WavePort"].
"FloquetPort" : Array of objects for configuring Floquet port boundary conditions for periodic structures. Floquet ports provide absorbing boundary conditions for diffraction gratings and other periodic electromagnetic devices, enabling the computation of diffraction efficiencies (S-parameters) for multiple propagating orders. Floquet port boundaries are only available for frequency domain driven simulations and require periodic boundary conditions to be configured under config["Boundaries"]["Periodic"] with exactly two "BoundaryPairs" (periodicity in two transverse directions).
"SurfaceCurrent" : Array of objects for configuring surface current boundary conditions. This boundary prescribes a unit source surface current excitation on the given boundary in order to excite a frequency or time domain driven simulation or magnetostatic simulation. For the magnetostatic simulation type, entries of the inductance matrix are extracted corresponding to each surface current boundary.
"Ground" : Top-level object for specifying ground, or zero voltage, boundary conditions for for electrostatic simulations.
"ZeroCharge" : Top-level object for specifying zero charge boundary conditions for for electrostatic simulations. Also imposes symmetry of the electric field across the boundary surface.
"Terminal" : Array of objects for configuring terminal boundary conditions for electrostatic simulations. Entries of the capacitance matrix are extracted corresponding to each terminal boundary.
"Periodic" : Top-level object for configuring periodic boundary conditions for surfaces with meshes that are identical after translation and/or rotation.
"Postprocessing" : Top-level object for configuring boundary postprocessing.
"SurfaceFlux" : Array of objects for postprocessing surface flux.
"Dielectric" : Array of objects for postprocessing surface interface dielectric loss.
"Impedance" : Array of objects for postprocessing mode impedance via voltage and current line integrals.
"Voltage" : Array of objects for postprocessing mode voltage via line integrals.
"FarField" : Top-level object for extracting electric fields in the far-field region.
boundaries["PEC"]
"PEC":
{
"Attributes": [<int array>]
}with
"Attributes" [None] : Integer array of mesh boundary attributes at which to apply the PEC boundary condition.
boundaries["PMC"]
"PMC":
{
"Attributes": [<int array>]
}with
"Attributes" [None] : Integer array of mesh boundary attributes at which to apply the PMC boundary condition.
boundaries["Impedance"]
"Impedance":
[
{
"Attributes": [<int array>],
"Rs": <float>,
"Ls": <float>,
"Cs": <float>
},
...
]with
"Attributes" [None] : Integer array of mesh boundary attributes for this surface impedance boundary.
"Rs" [0.0] : Surface resistance used for computing this surface impedance boundary's impedance per square, $\Omega$/sq.
"Ls" [0.0] : Surface inductance used for computing this surface impedance boundary's impedance per square, H/sq.
"Cs" [0.0] : Surface capacitance used computing this surface impedance boundary's impedance per square, F/sq.
boundaries["Absorbing"]
"Absorbing":
{
"Attributes": [<int array>],
"Order": <int>
}with
"Attributes" [None] : Integer array of mesh boundary attributes at which to apply farfield absorbing boundary conditions.
"Order" [1] : Specify a first- or second-order approximation for the farfield absorbing boundary condition. Second-order absorbing boundary conditions are only available for the frequency domain simulations.
boundaries["Conductivity"]
"Conductivity":
[
{
"Attributes": [<int array>],
"Conductivity": <float>,
"Permeability": <float>,
"Thickness": <float>
},
...
]with
"Attributes" [None] : Integer array of mesh boundary attributes for this finite conductivity boundary.
"Conductivity" [None] : Electrical conductivity for this finite conductivity boundary, S/m.
"Permeability" [1.0] : Relative permeability for this finite conductivity boundary.
"Thickness" [None] : Optional conductor thickness for this finite conductivity boundary specified in mesh length units. Activates a finite conductivity boundary condition which accounts for nonzero metal thickness.
boundaries["LumpedPort"]
"LumpedPort":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Direction": <string> or [<float array>],
"CoordinateSystem": <string>,
"Excitation": <bool>,
"Active": <bool>,
"IncludeInSynthesis": <bool>,
"R": <float>,
"L": <float>,
"C": <float>,
"Rs": <float>,
"Ls": <float>,
"Cs": <float>,
"Elements":
[
{
"Attributes": [<int array>],
"Direction": <string> or [<float array>],
"CoordinateSystem": <string>
},
...
]
},
...
]with
"Index" [None] : Index of this lumped port, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this lumped port boundary. If this port is to be a multielement lumped port with more than a single lumped element, use the "Elements" array described below.
"Direction" [None] : Direction to define the polarization direction of the port field mode on this lumped port boundary. Axis aligned lumped ports can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z", while coaxial lumped ports can be specified using "+R", "-R". The direction can alternatively be specified as a normalized array of three values, for example [0.0, 1.0, 0.0]. If a vector direction is specified, the "CoordinateSystem" value specifies the coordinate system it is expressed in. If this port is to be a multielement lumped port with more than a single lumped element, use the "Elements" array described below.
"CoordinateSystem" ["Cartesian"] : Coordinate system used to express the "Direction" vector, the options are "Cartesian" and "Cylindrical". If a keyword argument is used for "Direction" this value is ignored, and the appropriate coordinate system is used instead.
"Excitation" [false/0] : Turns on or off port excitation for this lumped port boundary for driven or transient simulation types. Can be specified either as a bool or as a non-negative integer — see Boundary Conditions.
"Active" [true] : Turns on or off damping boundary condition for this lumped port boundary for driven or transient simulation types.
"IncludeInSynthesis" [true] : Controls whether this lumped port contributes a port-mode basis vector to the reduced-order model when adaptive driven circuit synthesis is enabled (config["Solver"]["Driven"]["AdaptiveCircuitSynthesis"]). The boundary condition itself (the R/L/C or Rs/Ls/Cs termination) is always enforced; only the inclusion of the port mode in the synthesized circuit matrices is affected. Set to false on passive terminations whose row/column in the synthesized $L^{-1}$, $C$, $R^{-1}$ matrices is not needed — for example, peripheral 50 Ohm launcher pads kept in the simulation for correct physics but not measured. Setting this to false reduces the size of the PROM basis (and the corresponding storage and orthogonalization cost) by one vector per excluded port. Excited ports must always be included; the configuration parser will reject a port with "Excitation" > 0 and "IncludeInSynthesis": false.
"R" [0.0] : Circuit resistance used for computing this lumped port boundary's impedance, $\Omega$. This option should only be used along with the corresponding "L" and "C" parameters, and not with any of the surface parameters "Rs", "Ls", or "Cs".
"L" [0.0] : Circuit inductance used for computing this lumped port boundary's impedance, H. This option should only be used along with the corresponding "R" and "C" parameters, and not with any of the surface parameters "Rs", "Ls", or "Cs".
"C" [0.0] : Circuit capacitance used for computing this lumped port boundary's impedance, F. This option should only be used along with the corresponding "R" and "L" parameters, and not with any of the surface parameters "Rs", "Ls", or "Cs".
"Rs" [0.0] : Surface resistance used for computing this lumped port boundary's impedance, $\Omega$/sq. This option should only be used along with the corresponding "Ls" and "Cs" parameters, and not with any of the circuit parameters "R", "L", or "C".
"Ls" [0.0] : Surface inductance used for computing this lumped port boundary's impedance, H/sq. This option should only be used along with the corresponding "Rs" and "Cs" parameters, and not with any of the circuit parameters "R", "L", or "C".
"Cs" [0.0] : Surface capacitance used for computing this lumped port boundary's impedance, F/sq. This option should only be used along with the corresponding "Rs" and "Ls" parameters, and not with any of the circuit parameters "R", "L", or "C".
"Elements"[]["Attributes"] [None] : This option is for multielement lumped ports and should not be combined with the "Attributes" field described above. Each element of a multielement lumped port can be described by its own unique integer array of mesh boundary attributes, which are specified here. The elements of a multielement port add in parallel.
"Elements"[]["Direction"] [None] : This option is for multielement lumped ports and should not be combined with the "Direction" field described above. Each element of a multielement lumped port can be described by its own unique direction, which is specified here. The elements of a multielement port add in parallel.
"Elements"[]["CoordinateSystem"] ["Cartesian"] : This option is for multielement lumped ports and should not be combined with the "CoordinateSystem" field described above. Each element of a multielement lumped port can be described by its own unique direction, and corresponding coordinate system.
boundaries["WavePort"]
"WavePort":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Excitation": <bool>,
"Active": <bool>,
"Mode": <int>,
"Offset": <float>,
"SolverType": <string>,
"MaxIts": <int>,
"KSPTol": <float>,
"EigenTol": <float>,
"MaxSize": <int>,
"Verbose": <int>,
"VoltagePath": [[<float array>], ...],
"NSamples": <int>
},
...
]with
"Index" [None] : Index of this wave port boundary, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this wave port boundary.
"Excitation" [false/0] : Turns on or off port excitation for this wave port boundary for driven simulation types. Can be specified either as a bool or as a non-negative integer — see Boundary Conditions.
"Active" [true] : Turns on or off damping boundary condition for this wave port boundary for driven simulation types.
"Mode" [1] : Mode index (1-based) for the characteristic port mode of this wave port boundary. Ranked in order of decreasing wave number.
"Offset" [0.0] : Offset distance used for scattering parameter de-embedding for this wave port boundary, specified in mesh length units.
"SolverType" ["Default"] : Specifies the eigenvalue solver to be used in computing the boundary mode for this wave port. See config["Solver"]["Eigenmode"]["Type"].
"MaxIts" [30] : Specifies the maximum number of iterations to be used in the GMRES solver.
"KSPTol" [1e-8] : Specifies the tolerance to be used in the linear solver.
"EigenTol" [1e-6] : Specifies the tolerance to be used in the eigenvalue solver.
"MaxSize" [0] : Maximum subspace dimension for the eigenvalue solver. For values less than 1, the solver uses a default subspace dimension.
"Verbose" [0] : Specifies the verbosity level to be used in the linear and eigensolver for the wave port problem.
"VoltagePath" [None] : Open path of coordinate points across the port face, specified in mesh length units. Each entry is a floating point array of length equal to the spatial dimension. The path is directed from the signal (high-potential) terminal to the ground (low-potential) terminal, matching the lumped-port "Direction" convention. When specified, this:
- Pins the wave-port mode polarity so that $\int E_{\text{mode}} \cdot dl$ along the path is real-positive (required for consistent S-parameter signs when mixing wave and lumped ports in a driven simulation; without it, cross-type S-parameters may be $180^\circ$ out of phase).
- Enables voltage and characteristic impedance $Z_{PV}$ postprocessing for the wave port.
For example, in a coaxial wave port the first point is on the inner conductor (signal) and the last point is on the outer conductor (ground); for a CPW port, the first point is on the center trace and the last point in the gap. Uses GSLIB interpolation.
"NSamples" [100] : Number of uniformly spaced sample points for the coordinate-based voltage line integral.
"PolarityAttributes" [None] : Pair of parent-mesh boundary attributes $[\text{signal}, \text{ground}]$ (signal/high-potential terminal first, ground/low- potential terminal second). Same role as the polarity component of "VoltagePath": the mode is flipped so that the modal E-field points from the signal attribute toward the ground attribute. Ignored if "VoltagePath" is also specified.
Lightweight alternative to "VoltagePath" when only polarity is needed (no $Z_{PV}$, no GSLIB). Both attributes must be present as distinct boundary attributes in the input mesh, with edges that lie on the port face.
boundaries["WavePortPEC"]
"WavePortPEC":
{
"Attributes": [<int array>]
}with
"Attributes" [None] : Integer array of mesh boundary attributes to force as PEC when solving the 2D eigenproblem for the wave port boundary mode analysis, in addition to those specified under config["Boundaries"]["PEC"]["Attributes"]. This overrides any impedance, absorbing, or conductivity boundary condition that may be assigned to the same attributes for the purpose of the 2D wave port boundary mode problem.
boundaries["FloquetPort"]
"FloquetPort":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Excitation": <bool>,
"IncidentPolarization": <string>,
"MaxOrder": <int>
},
...
]with
"Index" [None] : Index of this Floquet port, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this Floquet port boundary. The port face must be planar and lie on the true boundary of the computational domain (one-sided, like wave ports). The medium adjacent to the port must be homogeneous and isotropic.
Floquet ports require periodic boundary conditions (config["Boundaries"]["Periodic"]) with exactly two "BoundaryPairs" defining periodicity in the two transverse directions. The "FloquetWaveVector" in the periodic configuration determines the angle of incidence: zero for normal incidence, nonzero for oblique. The wave vector is specified in radians per mesh length unit.
"Excitation" [false] : Turns on or off port excitation for this Floquet port boundary. When excited, a plane wave in the specular (0,0) diffraction order is injected with unit power.
"IncidentPolarization" ["TE"] : Polarization of the incident plane wave. Available options are:
"TE": Transverse electric (s-polarization). Electric field perpendicular to the plane of incidence."TM": Transverse magnetic (p-polarization). Electric field in the plane of incidence."RHC": Right-hand circular polarization. Equal superposition of TE and TM with 90° phase shift: $\mathbf{E} = (\hat{e}_\text{TE} + j\hat{e}_\text{TM})/\sqrt{2}$."LHC": Left-hand circular polarization. Equal superposition of TE and TM with -90° phase shift: $\mathbf{E} = (\hat{e}_\text{TE} - j\hat{e}_\text{TM})/\sqrt{2}$.
"MaxOrder" [-1] : Maximum diffraction order index to include. With MaxOrder = M, all orders $(m, n)$ with $|m| \leq M$ and $|n| \leq M$ are included, each with both TE and TM polarizations. A value of -1 (default) enables automatic selection. A value of 0 includes only the specular (0,0) order. Higher values are needed when the periodic cell supports propagating higher-order diffraction.
boundaries["SurfaceCurrent"]
"SurfaceCurrent":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Direction": <string> or [<float array>],
"CoordinateSystem": <string>,
"Elements":
[
{
"Attributes": [<int array>],
"Direction": <string> or [<float array>],
"CoordinateSystem": <string>,
},
...
]
},
...
]with
"Index" [None] : Index of this surface current boundary, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this surface current boundary. If this source is to be a multielement source which distributes the source across more than a single lumped element, use the "Elements" array described below.
"Direction" [None] : Defines the source current direction for this surface current boundary. The available options are the same as under config["Boundaries"]["LumpedPort"]["Direction"]. If this source is to be a multielement source which distributes the source across more than a single lumped element, use the "Elements" array described below.
"CoordinateSystem" ["Cartesian"] : Defines the coordinate system for the source current direction for this surface current boundary. The available options are the same as under config["Boundaries"]["LumpedPort"]["CoordinateSystem"]. If this source is to be a multielement source which distributes the source across more than a single lumped element, use the "Elements" array described below.
"Elements"[]["Attributes"] [None] : This option is for multielement surface current boundaries should not be combined with the "Attributes" field described above. Each element of a multielement current source can be described by its own unique integer array of mesh boundary attributes, which are specified here. The elements of a multielement source add in parallel to give the same total current as a single-element source.
"Elements"[]["Direction"] [None] : This option is for multielement surface current boundaries and should not be combined with the "Direction" field described above. Each element of a multielement current source can be described by its own unique direction, which is specified here. The elements of a multielement source add in parallel to give the same total current as a single-element source.
"Elements"[]["CoordinateSystem"] ["Cartesian"] : This option is for multielement surface current boundaries and should not be combined with the "CoordinateSystem" field described above. Each element of a multielement current source can be described by its own unique direction, and corresponding coordinate system.
boundaries["Ground"]
"Ground":
{
"Attributes": [<int array>]
}with
"Attributes" [None] : Integer array of mesh boundary attributes at which to apply the ground boundary condition.
boundaries["ZeroCharge"]
"ZeroCharge":
{
"Attributes": [<int array>]
}with
"Attributes" [None] : Integer array of mesh boundary attributes at which to apply the zero-charge boundary condition.
boundaries["Terminal"]
"Terminal":
[
{
"Index": <int>,
"Attributes": [<int array>],
},
...
]with
"Index" [None] : Index of this terminal boundary, used in postprocessing output files and to index the computed capacitance matrix.
"Attributes" [None] : Integer array of mesh boundary attributes for this terminal boundary.
boundaries["Periodic"]
"Periodic":
{
"FloquetWaveVector": [<float array>],
"FloquetReferenceFrequency": <float>,
"BoundaryPairs":
[
{
"DonorAttributes": [<int array>],
"ReceiverAttributes": [<int array>],
"Translation": [<float array>],
"AffineTransformation": [<float array>],
},
...
]
}with
"DonorAttributes" [None] : Integer array of the donor attributes of the mesh boundary attributes for this periodic boundary.
"ReceiverAttributes" [None] : Integer array of the receiver attributes of the mesh boundary attributes for this periodic boundary.
"Translation" [None] : Optional floating point array defining the distance from the donor attribute to the receiver attribute in mesh units. If neither "Translation" nor "AffineTransformation" are specified, the transformation between donor and receiver boundaries is automatically detected.
"AffineTransformation" [None] : Optional floating point array of size 16 defining the three-dimensional (4 x 4) affine transformation matrix (in row major format) from the donor attribute to the receiver attribute in mesh units. If neither "Translation" or "AffineTransformation" are specified, the transformation between donor and receiver boundaries is automatically detected.
"FloquetWaveVector" [None] : Optional floating point array defining the phase delay between the periodic boundaries in the X/Y/Z directions in radians per mesh unit. When used with "FloquetReferenceFrequency", it is defined at the reference frequency.
For a Floquet port, this is the tangential component of the incident wave vector. For example, for a port normal to z with periodicity in x and y, the "FloquetWaveVector", $\bm{k}_{F,\mathrm{ref}}$, can be computed from the incidence and azimuthal angles as
\[k_{F,\mathrm{ref},x} = k_\mathrm{ref}\sin\theta\cos\phi,\qquad k_{F,\mathrm{ref},y} = k_\mathrm{ref}\sin\theta\sin\phi,\]
where $k_\mathrm{ref} = \frac{2\pi f_\mathrm{ref}}{c_0}\sqrt{\mu_r\varepsilon_r},$, where $f_\mathrm{ref}$ is the "FloquetReferenceFrequency", $\theta$ is the incidence angle away from the port normal, and $\phi$ is the azimuthal direction in the periodic plane.
"FloquetReferenceFrequency" [None] : Optional frequency in GHz at which the "FloquetWaveVector" is defined. When specified, the Bloch wave vector scales linearly with frequency during a driven simulation frequency sweep, $\bm{k}_F(f) = \bm{k}_{F,\mathrm{ref}} f / f_\mathrm{ref}$, preserving the incidence angles across the sweep. When not specified (default), the wave vector is held constant across all frequencies. Only supported for driven simulations.
boundaries["Postprocessing"]["SurfaceFlux"]
"Postprocessing":
{
"SurfaceFlux":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Type": <string>,
"TwoSided": <bool>,
"Center": [<float array>]
},
...
]
}with
"Index" [None] : Index of this surface flux postprocessing boundary, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this surface flux postprocessing boundary.
"Type" [None] : Specifies the type of surface flux to calculate for this postprocessing boundary. The available options are:
"Electric": Integrate the electric flux density over the boundary surface."Magnetic": Integrate the magnetic flux density over the boundary surface."Power": Integrate the energy flux density, given by the Poynting vector, over the boundary surface.
"TwoSided" [false] : Specifies how to account for internal boundary surfaces with a possible discontinuous field on either side. When set to false, the flux on either side of an internal boundary surface is averaged. When true, it is summed with an opposite normal direction.
"Center" [None] : Floating point array of length equal to the model spatial dimension specifying the coordinates of a central point used to compute the outward flux. The true surface normal is used in the calculation, and this point is only used to ensure the correct orientation of the normal. Specified in mesh length units, and only relevant when "TwoSided" is false. If not specified, the point will be computed as the centroid of the axis-aligned bounding box for all elements making up the postprocessing boundary.
boundaries["Postprocessing"]["Dielectric"]
"Postprocessing":
{
"Dielectric":
[
{
"Index": <int>,
"Attributes": [<int array>],
"Type": <string>,
"Thickness": <float>,
"Permittivity": <float>,
"LossTan": <float>
},
...
]
}with
"Index" [None] : Index of this dielectric interface, used in postprocessing output files.
"Attributes" [None] : Integer array of mesh boundary attributes for this dielectric interface.
"Type" [None] : Specifies the type of dielectric interface for this postprocessing boundary. See also this page. Available options are:
"Default": Use the full electric field evaluated at the boundary to compute the energy participation ratio (EPR) of this dielectric interface and estimate loss."MA": Use the boundary conditions assuming a metal-air interface to compute the EPR of this dielectric interface."MS": Use the boundary conditions assuming a metal-substrate interface to compute the EPR of this dielectric interface."SA": Use the boundary conditions assuming a substrate-air interface to compute the EPR of this dielectric interface.
"Thickness" [None] : Thickness of this dielectric interface, specified in mesh length units.
"Permittivity" [None] : Relative permittivity for this dielectric interface. This should be the interface layer permittivity for the specific "Type" of interface specified.
"LossTan" [0.0] : Loss tangent for this lossy dielectric interface.
boundaries["Postprocessing"]["Impedance"]
"Postprocessing":
{
"Impedance":
[
{
"Index": <int>,
"VoltageAttributes": [<int array>],
"CurrentAttributes": [<int array>],
"VoltagePath": [[<float array>], ...],
"CurrentPath": [[<float array>], ...],
"NSamples": <int>
},
...
]
}with
"Index" [None] : Index of this impedance postprocessing boundary, used in postprocessing output files.
"VoltageAttributes" [None] : Integer array of mesh boundary attributes for the voltage integration path across the gap between ground and trace. Either "VoltageAttributes" or "VoltagePath" must be specified.
"CurrentAttributes" [None] : Integer array of mesh boundary attributes for the current integration loop around the trace. Either "CurrentAttributes" or "CurrentPath" may be specified for the V/I impedance calculation.
"VoltagePath" [None] : Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units. Uses uniformly weighted GSLIB interpolation, which is less accurate than the attribute-based method but does not require modifying the mesh to include integration boundaries.
"CurrentPath" [None] : Array of coordinate points defining a closed loop for computing the current line integral $I = \oint \mathbf{H}_t \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. The last point connects back to the first. Specified in mesh length units.
"NSamples" [100] : Number of uniformly spaced sample points for the coordinate-based line integrals (using GSLIB interpolation).
boundaries["Postprocessing"]["Voltage"]
"Postprocessing":
{
"Voltage":
[
{
"Index": <int>,
"VoltageAttributes": [<int array>],
"VoltagePath": [[<float array>], ...],
"NSamples": <int>
},
...
]
}with
"Index" [None] : Index of this voltage postprocessing boundary, used in postprocessing output files.
"VoltageAttributes" [None] : Integer array of mesh boundary attributes for the voltage integration path. Either "VoltageAttributes" or "VoltagePath" must be specified.
"VoltagePath" [None] : Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units.
"NSamples" [100] : Number of uniformly spaced sample points for the coordinate-based line integral (GSLIB interpolation).
boundaries["Postprocessing"]["FarField"]
"Postprocessing":
{
"FarField":
{
"Attributes": [<int array>],
"NSample": <int>,
"ThetaPhis": [<array of pairs of floats>]
}
}with
"Attributes" [None] : Integer array of mesh boundary attributes to be used to compute the far fields. It has to be an external boundary and enclose the system.
"NSample" [0] : Number of uniformly-spaced points to use to discretize the far-field sphere.
"ThetaPhi" [None] : Evaluate the far-field electric field at these specific angles too (in degrees). $\theta \in [0, 180°]$ is the polar angle and $\phi \in [0, 360°]$ is the azimuthal angle.