Gas flow calculation in LiquidFLow
This MR enables gas flow calculation in LiquidFLow.
In the existing local assembler, the matrices and vectors are scaled by the liquid density. This approach is not applicable to problems with varying liquid density, especially in gas flow scenarios. This MR introduces an optional input tag, equation_balance_type
, which allows user to choose the volume-based PDE (scaled by the liquid density) or the mass-based PDE for this process.
PS: The process can be renamed as SinglePhaseFlow
if it is necessary.
-
Feature description was added to the changelog -
Tests covering your feature were added? The HM benchmark flow_no_strain
is reused to test the new feature.

The mass balance of the new benchmark can be tested with the following script:
gas_flow_ts_1000_t_100.000000.vtu
The mass balance is calculated by integrating the PDE as:
\begin{align*}
\int \frac{{\mathrm d}}{{\mathrm d}t}(n\rho_L)\mathrm{d}\Omega &= \int\nabla\left(\rho_L\mathbf K (\nabla p + \rho_L g \nabla z)\right)\mathrm{d}\Omega\\
&= \int_{(\partial \Omega)_q} \left(\rho_L\mathbf K (\nabla p + \rho_L g \nabla z)\right) \cdot \mathbf{n}\mathrm{d}\Gamma\\
&= \int_{(\partial \Omega)_q} -q \mathrm{d}\Gamma
\end{align*}
Since the PDE is non-linear due to the non-constant gas density, the time derivative in \int \frac{{\mathrm d}}{{\mathrm d}t}(n\rho_L)\mathrm{d}\Omega is calculated numerically.
-
Any new feature or behaviour change was documented?