VolAvgLorentzJCrossDev

VolAvgLorentzJCrossDev

Works with XSimEM license.

MultiField updater that calculates the polarization current from the electric field (E), the polarization field (P), and the coefficient field (A) for the frequency-dependent part of the Lorentz permittivity. The coefficient field, A, is computed by the InitVolAvgLorentzInvEpsCrossDev initial update step.

VolAvgLorentzJCrossDev Parameters

The volAvgLorentzJCrossDev updater takes the lowerBounds and upperBounds parameters of Field Slab updaters, as well as the following parameters:

resonantFreq (float, required)

The resonant frequency of the Lorentz dielectric.

readFields (list of strings, required)

A list of field names in the following order: the electric field, the polarization field, and the 6-component Lorentz coefficient field (initialized by the InitVolAvgLorentzInvEpsCrossDev updater).

writeFields (list of strings, required)

A list of field names containing a single element: the polarization current field.

VolAvgLorentzJCrossDev Usage Notes

The Lorentz algorithm models dielectrics with the following frequency-dependent form:

\[\varepsilon(\omega) = \varepsilon_{\infty} + \frac{A}{\omega_0^2-\omega^2}\]

In this form, Maxwell’s equations may be written as

\[\begin{split}\frac{d\mathbf{B}}{dt} &= -\nabla\times\mathbf{E} \\ \frac{d\mathbf{D}}{dt} &= c^2 \nabla\times\mathbf{B}-\frac{1}{\varepsilon_0}( \mathbf{J}^{\rm pol} + \mathbf{J}^{\rm src}) \\ \mathbf{E} &= \varepsilon_{\infty}^{-1} \mathbf{D} \\ \frac{d\mathbf{P}}{dt} &= \frac{1}{\varepsilon_0} \mathbf{J}^{\rm pol} \\ \frac{d\mathbf{J}^{\rm pol}}{dt} &= \varepsilon_0 ( A \mathbf{E} - \omega_0^2 \mathbf{P})\end{split}\]

The first two equations are Faraday’s and Ampere’s laws, respectively; these are implemented using the compCurlCrossDev updater or the Dey-Mittra counterparts if the simulation contains perfectly-conducting boundaries (e.g. DeyMittraAmpereCrossDev). Note also the sum of polarization and source currents in Ampere’s law; this superposition can be carried out a number of ways (e.g. using twoFieldOpCrossDev to sum fields JPol and JSrc into a J field).

The last three equations are implemented using special updaters, for convenience and to ensure 2nd-order error in grid cells cut by the boundaries of dielectric objects. This updater, VolAvgLorentzJCrossDev, implements the last equation listed above.

Example VolAvgLorentzJCrossDev block

<FieldUpdater lorentzJUpdater>
  kind = volAvgLorentzJCrossDev
  lowerBounds = [0 0 0]
  upperBounds = [NX NY NZ]
  readFields = [E P A]
  writeFields = [JPol]
  resonantFreq = Si_RESFREQ
</FieldUpdater>

Notes

History

VolAvgLorentzJCrossDev was introduced in XSim 1.0