Bending channel with a porous media region (Local time stepping)

Update: December 17, 2018
OpenFOAM 4.x

Case directory



We calculate a flow with a porous material that models a filter in the middle of the flow path. The fluid flows in from the region "inlet" (end face of blue part) at a mass flow rate of 0.1 kg/s, passes through the filter (red part), and flows out from the region "outlet" (end face of green part).

Model geometry Model geometry

Local time stepping (LTS) is used as a calculation method. The local time stepping is a fast computation method that changes the time step for each mesh according to the mesh size. The local time stepping function is enabled by setting "localEuler" as ddtSchemes in the file "fvSchemes" in the directory "system", as shown below.

    default         localEuler;

Porous media depends on the Darcy-Forchheimer law S_i = -\biggl(\mu D_{ij}+ \frac{1}{2}\rho\left \vert u \right \vert F\biggr) u_i, and for a flow velocity ui (i=x, y, z) in direction i, a generation term Si (pressure drop) in the opposite direction of flow is added to the Navier-Stokes equations. Here, μ is the viscosity coefficient and ρ is the density.

The parameters that determine the properties of the porous media, Dij, F, the direction of the properties, and the region in which the porous media, are specified in the file constant/fvOptions as follows.

	type            explicitPorositySource;
	active          yes;

		selectionMode   cellZone;
		cellZone        porosity;

		type            DarcyForchheimer;

			d   (5e7 -1000 -1000);
			f   (0 0 0);

				type    cartesian;
				origin  (0 0 0);
					type    axesRotation;
					e1  (0.70710678 0.70710678 0);
					e2  (0 0 1);

The standard k-ε model is used as the turbulence model, and calculations are performed for 500 seconds.

The meshes are as follows, and the number of mesh is 22000.

Mesh Meshes

If you want to visualize turbulent energy and turbulent dissipation rate, check "k" and "epsilon" in the "Properties" tab in ParaView. you can see the time step size on each mesh by checking "rDeltaT" checkbox.

Check k and epsilon in Properties tab Check "k" and "epsilon" in "Properties" tab

The calculation result at final time is as follows.

Flow velocity (U) Flow velocity (U)
Pressure (p) Pressure (p)
Turbulent energy (k) Turbulent energy (k)
Turbulent dissipation rate (epsilon) Turbulent dissipation rate (epsilon)


cp -r $FOAM_TUTORIALS/compressible/rhoPimpleFoam/ras/angledDuctLTS angledDuctLTS
cd angledDuctLTS

m4 system/blockMeshDict.m4 > system/blockMeshDict


Calculation time

21.14 seconds *Single, Inter(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19GHz