PorousMedia

Local flow resistance in isotropic and anisotropic porous materials

Goals of this Unit:

  • Learn to implement anisotropic porous media into your fluid dynamic simulations
  • Learn how to vary initial parameters like e.g. porous media velocities

The fluid-mechanical problem

The porous letters are standing in a box with a constant inflow from the side. We look at two aspects of the porous media functionality:

  1. With respect to their physical properties the letters can have a favored direction in terms of the flow-through which is implemented in this example.
  2. The example can be initiated with various porous material velocities.

Starting point

As a starting point, let us consider an inflow from the left hand side of a partially filled box. By this setup we ensure to see both vertical and horizontal flow while implementing gravity. This results in the following velocity field:

Here should be a picture
Figure 1: CFD-Letters in a box facing a constant inflow from the side

Local flow resistance in isotropic and anisotropic, porous materials

In a wide range of applications the fluid is not moving as freely as in tut3d_09 . Local flow resistance may be caused by suspended particles of another phase or by a contiguous porous medium, such as filters. To understand how we can introduce such a flow resistance into the above inflow, we implement the letter blocks "CFD" consisting of isotropic and non-isotropic porous materials within the flow geometry. In case of the "C" we specify a scalar value of flow resistance for the porous block. This implies, that the fluid will experience the same resistance independent of the angle at which it flows through the block and therefore have the same DarcyConstant and ForchheimerConstant among all three directions in space. Thus, the block "C" represents an isotropic material. To represent anisotropic materials, one can specify the resistance along three individual directions within the porous material. To visualize the possibilities, we prescribe a significantly decreased (in this case 0) flow resistance along the x-axis (letter "F") or the z-axis (letter "D") while the resistance along the other axes remains the same. First step to define this by means of UCV functionalities is through an indicator function using the InDom() functionality:

begin_equation{"InsideCFD"} (InDom("C") + 2*InDom("F") + 3*InDom("D")) end_equation

This equation will be:

0 if points are outside the porous material volumes, 1 if points are within "C", 2 if points are within "F", 3 if points are within "D".

Since the letters are stationary, we further want to prescribe zero velocity for all components of the porous material velocity. We may do this via the following command:

DarcyBasisVelocity($MatUSER$) = ( 0.0, 0.0, 0.0)

NOTE: This defines the porous material velocity of the fluid media $MatUSER$. In this case we use the probabilities of water. For different fluids, one need to define different materials. If there is a need of defining different porous material velocities for different objects in the same fluid, one have to work again via InDom() , which is shown in the extension to this tutorial [PorousBlockExampleExtension].

After preparing, finally the porous media setup can be determine in the UCV by the DarcyConstant :

DarcyConstant($MatUSER$) = curve{$DarcyDescription$}depvar{equn{$InsideCFD$}}

and the ForchheimerConstant :

ForchheimerConstant($MatUSER$) = curve{$ForchheimerDescription$}depvar{equn{$InsideCFD$}

defined for each letter and direction using the Curves functionality:

begin_curve{$DarcyDescription$}, nb_functions{12} 0 0.0 1 0 0 0.0 0 1 0 0.0 0 0 1 1 &DarcyConstCx& 1 0 0 &DarcyConstCy& 0 1 0 &DarcyConstCz& 0 0 1 2 0.0 1 0 0 &DarcyConstFy& 0 1 0 &DarcyConstFz& 0 0 1 3 &DarcyConstDx& 1 0 0 &DarcyConstDy& 0 1 0 0.0 0 0 1 end_curve begin_curve{$ForchheimerDescription$}, nb_functions{3} 0 0.0 0.0 0.0 1 &ForchheimerConstCx& &ForchheimerConstCy& &ForchheimerConstCz& 2 0.0 &ForchheimerConstFy& &ForchheimerConstFz& 3 &ForchheimerConstDx& &ForchheimerConstDy& 0.0 end_curve

with your designated values for each letter and each direction (in this case x:100 y:010 z:001):

begin_alias{} "DarcyConst" = "10e5" "DarcyConstCx" = &DarcyConst& "DarcyConstCy" = &DarcyConst& "DarcyConstCz" = &DarcyConst& #"DarcyConstFx" = 0 "DarcyConstFy" = &DarcyConst& "DarcyConstFz" = &DarcyConst& "DarcyConstDx" = &DarcyConst& "DarcyConstDy" = &DarcyConst& #"DarcyConstDz" = 0 "ForchheimerConst" = "10e0" "ForchheimerConstCx" = &ForchheimerConst& "ForchheimerConstCy" = &ForchheimerConst& "ForchheimerConstCz" = &ForchheimerConst& #"ForchheimerConstFx" = 0 "ForchheimerConstFy" = &ForchheimerConst& "ForchheimerConstFz" = &ForchheimerConst& "ForchheimerConstDx" = &ForchheimerConst& "ForchheimerConstDy" = &ForchheimerConst& #"ForchheimerConstDz" = 0 end_alias

The results should look like:

Here should be a picture
Figure 2: Anisotropic flow-through

Without a doubt, the differences in flow through the letters with different anisotropies is prominent.