# 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>