Two fluid equations written as total mass density, momentum density, total charge density total current density and ion and electron energy. The two-fluid equations can also be written as two separate sets of euler equations, however, this form has the advantage that numerical diffusion is applied to the total charge density so that quasi-neutrality is enforced numerically.

\[\notag \begin{align} \frac{\partial}{\partial t}\left( \begin{array}{c} \rho \\ \rho\,u_{x} \\ \rho\,u_{y} \\ \rho\,u_{z} \\ \rho_{c}\\ j_{x}\\ j_{y}\\ j_{z}\\ e_{i}\\ e_{e}\\ \end{array} \right) + \nabla\cdot P = 0 \end{align}\]

where \(P\) is defined as

\[\begin{split}\begin{pmatrix} \rho_{i}\,u_{x\,i}+\rho_{i}\,u_{x\,e} & \rho_{i}\,u_{y\,i}+\rho_{e}\,u_{y\,e} & \rho_{i}\,u_{z\,i}+\rho_{e}\,u_{z\,e} \\ \rho_{i}\,u_{x\,i}^{2}+P_{i}+ \rho_{e}\,u_{x\,e}^{2}+P_{e} & \rho_{i}\,u_{x\,i}\,u_{y\,i}+\rho_{e}\,u_{x\,e}\,u_{y\,e} & \rho_{i}\,u_{x\,i}\,u_{z\,i}+\rho_{e}\,u_{x\,e}\,u_{z\,e} \\ \rho_{i}\,u_{y\,i}\,u_{x\,i}+\rho_{e}\,u_{y\,e}\,u_{x\,e} & \rho_{i}\,u_{y\,i}\,u_{y\,i} + P_{i}+\rho_{e}\,u_{y\,e}\,u_{y\,e} + P_{e} & \rho_{i}\,u_{y\,i}\,u_{z\,i}+\rho_{e}\,u_{y\,e}\,u_{z\,e} \\ \rho_{i}\,u_{z\,i}\,u_{x\,i}+\rho_{e}\,u_{z\,e}\,u_{x\,e} & \rho_{i}\,u_{z\,i}\,u_{y\,i}+\rho_{e}\,u_{z\,e}\,u_{y\,e} & \rho_{i}\,u_{z\,i}\,u_{z\,i} + P_{i}+\rho_{e}\,u_{z\,e}\,u_{z\,e} + P_{e} \\ \rho_{i}\,u_{x\,i}+\rho_{i}\,u_{x\,e} & \rho_{i}\,u_{y\,i}+\rho_{e}\,u_{y\,e} & \rho_{i}\,u_{z\,i}+\rho_{e}\,u_{z\,e} \\ r_{i}(\rho_{i}\,u_{x\,i}^{2}+P_{i})+ r_{e}(\rho_{e}\,u_{x\,e}^{2}+P_{e}) & r_{i}\rho_{i}\,u_{x\,i}\,u_{y\,i}+r_{e}\rho_{e}\,u_{x\,e}\,u_{y\,e} & r_{i}\rho_{i}\,u_{x\,i}\,u_{z\,i}+r_{e}\rho_{e}\,u_{x\,e}\,u_{z\,e} \\ r_{i}\rho_{i}\,u_{y\,i}\,u_{x\,i}+r_{e}\rho_{e}\,u_{y\,e}\,u_{x\,e} & r_{i}(\rho_{i}\,u_{y\,i}\,u_{y\,i} + P_{i})+r_{e}(\rho_{e}\,u_{y\,e}\,u_{y\,e} + P_{e}) & r_{i}\rho_{i}\,u_{y\,i}\,u_{z\,i}+r_{e}\rho_{e}\,u_{y\,e}\,u_{z\,e} \\ r_{i}\rho_{i}\,u_{z\,i}\,u_{x\,i}+r_{e}\rho_{e}\,u_{z\,e}\,u_{x\,e} & r_{i}\rho_{i}\,u_{z\,i}\,u_{y\,i}+r_{e}\rho_{e}\,u_{z\,e}\,u_{y\,e} & r_{i}(\rho_{i}\,u_{z\,i}\,u_{z\,i} + P_{i})+r_{e}(\rho_{e}\,u_{z\,e}\,u_{z\,e} + P_{e}) \\ u_{x\,i}\left(e_{i}+P_{i}\right) & u_{y\,i}\left(e_{i}+P_{i}\right) & u_{z\,i}\left(e_{i}+P_{i}\right)\\ u_{x\,e}\left(e_{e}+P_{e}\right) & u_{y\,e}\left(e_{e}+P_{e}\right) & u_{z\,e}\left(e_{e}+P_{e}\right)\\ \end{pmatrix}\end{split}\]

With \(r_{i}=q_{i}/m_{i}\) and \(r_{e}=q_{e}/m_{e}\) where \(q_{e}\) is the electron charge, \(q_{i}\) is the ion charge, \(m_{e}\) is the electron mass and \(m_{i}\) is the ion mass. In addition the variables \((\rho_{\alpha},u_{x\,\alpha},u_{y\,\alpha},u_{x\,\alpha},e_{\alpha},P_{\alpha})\) are the species mass density, species x velocity, species y velocity, species z velocity, species total energy density, and species pressure respectively. In this case \(\alpha\) represents the species, either \(e\) for electron or \(i\) for ion.


ionGamma (float)
Specific heat ratio for the ions
electronGamma (float)
Specific heat ratio for the electrons. Defaults to 5/3
ionMass (float)
ion mass
electronMass (float)
electron mass
ionCharge (float)
ion charge
electron charge
basementPressure (float)
The minimum pressure allowed. Defaults to 0.
basementDensity (float)
The minimum density allowed for the ions. Defaults to 0. The electron basement density is determined by multiplying by the mass ratio, therefore \(basementDensityElectrons = (me/mi)basementDensity\)

Parent Updater Data

in (string vector, required)
1st Input Variable
  1. \(\rho\) mass density
  2. \(\rho\,u_{x}\) x momentum density
  3. \(\rho\,u_{y}\) y momentum density
  4. \(\rho\,u_{z}\) z momentum density
  5. \(\rho_{c}\) total charge density
  6. \(j_{x}\) x current density
  7. \(j_{y}\) y current density
  8. \(j_{z}\) z current density
  9. \(e_{i}\) ion energy density
  10. \(e_{e}\) electron energy density


An example twoFluidEqn equation block is given below:

<Equation twoFluid>
  kind = twoFluidEqn
  ionGamma = GAS_GAMMA
  electronGamma = GAS_GAMMA
  ionMass = ION_MASS
  electronMass = ELECTRON_MASS
  ionCharge = ION_CHARGE
  electronCharge = ELECTRON_CHARGE
  basementDensity = BASEMENT_DENSITY
  basementPressure = BASEMENT_PRESSURE