maxwellEqn

Fluxes and eigensystem for Maxwell’s equations in vacuum with divergence cleaning.

\[\begin{align} \frac{\partial \mathbf{E}}{\partial t} + c^2 \nabla\times\mathbf{B} + \nabla \Phi= 0 \\ \frac{\partial \mathbf{B}}{\partial t} - \nabla\times\mathbf{E} + \nabla \psi= 0 \\ \frac{\partial \Phi}{\partial t} + \nabla\cdot\left[ c^{2}_{\mathrm{fast}} \mathbf{E} \right] = 0 \\ \frac{\partial \psi}{\partial t} + \nabla\cdot\left[ c^{2}_{\mathrm{fast}} \mathbf{B} \right] = 0 \end{align}\]

Coupling of Maxwell’s equations to a plasma is accomplished using current.

Parameters

c0 (float)
The speed of light
gamma (float)
Magnetic correction potential propagation factor. \(\gamma c_0\) is the magnetic correction potential propagation speed.
chi (float)
Electric correction potential propagation factor. \(\chi c_0\) is the correction propagation speed.

Parent Updater Data

in (string vector, required)
Vector of Conserved Quantities (nodalArray, 8-components, required)

The vector of conserved quantities, \(\mathbf{q}\) has 8 entries:

  1. \({E}_{\hat{\mathbf{i}}} = \mathbf{E} \cdot \hat{\mathbf{i}}\): electric field in the \(\hat{\mathbf{i}}\) direction.
  2. \({E}_{\hat{\mathbf{j}}} =\mathbf{E} \cdot \hat{\mathbf{j}}\): electric field in the \(\hat{\mathbf{j}}\) direction
  3. \({E}_{\hat{\mathbf{k}}} = \mathbf{E} \cdot \hat{\mathbf{k}}\): electric field in the \(\hat{\mathbf{k}}\) direction
  4. \(B_{\hat{\mathbf{i}}} = \mathbf{B} \cdot \hat{\mathbf{i}}\): magnetic field in the \(\hat{\mathbf{i}}\) direction
  5. \(B_{\hat{\mathbf{j}}} = \mathbf{B} \cdot \hat{\mathbf{j}}\): magnetic field in the \(\hat{\mathbf{j}}\) direction
  6. \(B_{\hat{\mathbf{k}}} = \mathbf{B} \cdot \hat{\mathbf{k}}\): magnetic field in the \(\hat{\mathbf{k}}\) direction
  7. \(\Phi\) electric field correction potential
  8. \(\Psi\) magnetic field correction potential
out (string vector, required)

For the maxwellEqn, one of three output variables are computed, depending on whether the equation is combined with an updater capable of computing fluxes (classicMusclUpdater (1d, 2d, 3d)), the time step associated with the CFL condition (timeStepRestrictionUpdater (1d, 2d, 3d)) or the fastest wave speed in the grid (hyperbolic (1d, 2d, 3d)).

Vector of Fluxes (nodalArray, 9-components)

When combined with an updater that computes \(\nabla \cdot \mathcal{F}\left(\mathbf{w} \right)\) (e.g. classicMusclUpdater (1d, 2d, 3d)), the equation system returns:

  1. \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{i}}} \right)\): \(\hat{\mathbf{i}}\) electric field flux
  2. \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{j}}} \right)\): \(\hat{\mathbf{i}}\) electric field flux
  3. \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{k}}} \right)\): \(\hat{\mathbf{j}}\) electric field flux
  4. \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{i}}} \right)\): \(\hat{\mathbf{i}}\) magnetic field flux
  5. \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{j}}} \right)\): \(\hat{\mathbf{i}}\) magnetic field flux
  6. \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{k}}} \right)\): \(\hat{\mathbf{j}}\) magnetic field flux
  7. \(\nabla \cdot \mathcal{F}\left(\psi \right)\): electric correction potential flux
  8. \(\nabla \cdot \mathcal{F}\left(\psi \right)\): magnetic correction potential flux
Time Step (dynVector, 1-component)
When combined with timeStepRestrictionUpdater (1d, 2d, 3d), the equation system returns the time step consisten with the CFL condition across the entire simulation domain.
Fastest Wave Speed (dynVector, 1-component)
When combined with hyperbolic (1d, 2d, 3d), the equation system returns the fastest wave speed across the entire simulation domain, \(c_{\mathrm{fast}}\).

Example

The following block demonstrates the maxwellEqn used in combination with classicMusclUpdater (1d, 2d, 3d) to compute \(\nabla \cdot \mathcal{F}\left(\mathbf{w} \right)\):

<Updater hyperEm>
  kind = classicMuscl3d
  onGrid = domain
  timeIntegrationScheme = none
  numericalFlux = fWaveFlux
  limiterType = component
  limiter = [minmod, none, none]
  variableForm = conservative

  in = [em, electrons, ions]
  out = [emNew]

  cfl = CFL
  equations = [maxwell]

  <Equation maxwell>
    kind = maxwellEqn
    c0 = SPEED_OF_LIGHT
    gamma = BP
    chi = 0.0
  </Equation>

</Updater>

The following block demonstrates the maxwellEqn used in combination with timeStepRestrictionUpdater (1d, 2d, 3d) and hyperbolic (1d, 2d, 3d) to compute \(c_{\mathrm{fast}}\):

 <Updater getWaveSpeed>
  kind = timeStepRestrictionUpdater2d
  in = [q]
  waveSpeeds = [waveSpeed]
  onGrid = domain
  restrictions = [hyperbolic]
  cfl = CFL
  courantCondition = CFL

  <TimeStepRestriction hyperbolic>
   kind = hyperbolic2d
   model = maxwellEqn
   cfl = CFL
   c0 = SPEED_OF_LIGHT
   gamma = 0.0
   chi = 0.0
   includeInTimeStep = False
 </TimeStepRestriction>
</Updater>