• In order to implement the Darcy pressure equation, a Kernel object is needed to represent:

-\nabla \cdot \frac{\mathbf{K}}{\mu} \nabla p = 0

• The weak form of this equation is:

\left (\frac{\mathbf{K}}{\mu} \nabla p, \nabla \psi_i \right ) - \left <\frac{\mathbf{K}}{\mu} \nabla p \cdot \mathbf{n}, \psi_i \right > = 0

• For now we'll ignore the boundary term (essentially setting $$\frac{\mathbf{K}}{\mu} \nabla p \cdot \mathbf{n} = 0$$\$ : a "no-flux" boundary condition).
• The volume integral looks exactly like the Diffusion equation multiplied by some constants: so we can simply extend the Diffusion Kernel by inheriting from it...

MOOSE Mesh

MOOSE Outputs

Coordinate Systems

Anatomy of a MooseObject

InputParameters and MOOSE Types

Kernels

# Step 2: Source Code

include/kernels/DarcyPressure.h

src/kernels/DarcyPressure.C

src/base/DarcyThermoMechApp.C

problems/step2.i

# Create a Test

• Create a simple test that mimics the behavior of the problem above, i.e., a test that verifies that the DarcyPressure kernel is operating as expected.

tutorials/darcy_thermo_mech/step02_darcy_pressure/tests/kernels/darcy_pressure/tests

tutorials/darcy_thermo_mech/step02_darcy_pressure/tests/kernels/darcy_pressure/darcy_pressure.i