• Of particular importance to our simulation is the Darcy Velocity:

$$$$\vec{u} = -\frac{\mathbf{K}}{\mu} \nabla p$$$$

  • The Darcy velocity appears in the heat convection-conduction equation:

$$$$C\left( \frac{\partial T}{\partial t} + \epsilon \vec{u}\cdot\nabla T \right) - \nabla \cdot k \nabla T = 0$$$$

  • The primary unknown (aka nonlinear variable) is the pressure.
  • Once the pressure is computed, the AuxiliarySystem can compute the velocity field and write it to the output file.
  • We must couple in the primary nonlinear variable's gradient and make use of Material properties in the auxiliary computation.
  • Auxiliary variables come in two flavors: Nodal and Elemental
  • Nodal Auxiliary variables cannot couple to gradients of nonlinear variables.
    • Gradients of $$$C^0$$$ continuous nonlinear variables are not well-defined at the nodes.
  • Elemental Auxiliary variables (i.e. family = MONOMIAL) can couple to gradients of nonlinear variables -- they are only evaluated in element interiors.

Auxiliary Variables

Auxiliary Kernels

Source Code

DarcyVelocity.h

DarcyVelocity.C

step4.i

Create a Test

  • Build a test for DarcyVelocity.
  • To simplify the test, we:
    • Remove Kernels and disable the solve.
    • Create an artificial pressure field using FunctionIC.

tutorials/darcy_thermo_mech/step04_velocity_aux/tests/auxkernels/velocity_aux/tests

tutorials/darcy_thermo_mech/step04_velocity_aux/tests/auxkernels/velocity_aux/velocity_aux.i