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:
- \({E}_{\hat{\mathbf{i}}} =
\mathbf{E} \cdot \hat{\mathbf{i}}\): electric field in the \(\hat{\mathbf{i}}\) direction.
- \({E}_{\hat{\mathbf{j}}}
=\mathbf{E} \cdot \hat{\mathbf{j}}\): electric field in the \(\hat{\mathbf{j}}\) direction
- \({E}_{\hat{\mathbf{k}}} = \mathbf{E} \cdot \hat{\mathbf{k}}\): electric field in the \(\hat{\mathbf{k}}\) direction
- \(B_{\hat{\mathbf{i}}} = \mathbf{B} \cdot \hat{\mathbf{i}}\): magnetic field in the \(\hat{\mathbf{i}}\) direction
- \(B_{\hat{\mathbf{j}}} = \mathbf{B} \cdot \hat{\mathbf{j}}\): magnetic field in the \(\hat{\mathbf{j}}\) direction
- \(B_{\hat{\mathbf{k}}} = \mathbf{B} \cdot \hat{\mathbf{k}}\): magnetic field in the \(\hat{\mathbf{k}}\) direction
- \(\Phi\) electric field correction potential
- \(\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:
- \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{i}}} \right)\): \(\hat{\mathbf{i}}\) electric field flux
- \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{j}}} \right)\): \(\hat{\mathbf{i}}\) electric field flux
- \(\nabla \cdot \mathcal{F}\left( {E}_{\hat{\mathbf{k}}} \right)\): \(\hat{\mathbf{j}}\) electric field flux
- \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{i}}} \right)\): \(\hat{\mathbf{i}}\) magnetic field flux
- \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{j}}} \right)\): \(\hat{\mathbf{i}}\) magnetic field flux
- \(\nabla \cdot \mathcal{F}\left( {B}_{\hat{\mathbf{k}}} \right)\): \(\hat{\mathbf{j}}\) magnetic field flux
- \(\nabla \cdot \mathcal{F}\left(\psi \right)\): electric correction potential flux
- \(\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>