Please enable JavaScript to view this site.

GeoDict User Guide 2025

Flow Solvers

To solve the partial differential equations describing the fluid flow, three solution methods, called solvers, are available in FlowDict:

OpenLIR

OpenSimpleFFT

OpenEJ

Note-KnowHow

Know how!  It is important to distinguish between porous materials and porous voxels.

A flow simulation is run on a 3D material model, e.g., glass fibers, where the pores are filled with air. Thus, a highly porous material is a material with more fluid voxels than solid voxels, e.g., 80% air and 20% glass fibers.

Alternatively, a voxel, i.e. a grid cell, can be defined as porous voxel, if the pores in a material are too small to be resolved by the computational grid.

The sketch below shows which solver can be applied in which use case. The equations are denoted in red. The gray boxes show where the solution exhibits a linear relation between pressure drop and flow rate, and the blue boxes show where the 3D structure can have porous voxels:

Solver Benchmarks

Three parallelization benchmark results for FlowDict are shown here. All benchmark computations were run on a server with 2 x Intel E5-2697A v4 processors with 16 cores each, running with a maximum of 3.60 GHz, and 1,024 GB RAM.

OpenSandstone Benchmark

OpenFilter Benchmark

OpenMultilayer Weave Benchmark

Memory requirements for the examples and both solvers are listed in the following table:

Benchmark

RAM used (LIR)

RAM used (SimpleFFT with 32 Processes)

Sandstone

149 GB (Speed Optimization)

103 GB (Memory Optimization)

655 GB

Filter

184 GB

654 GB

Multilayer Weave

6.5 GB

35.2 GB (not using Tdma)

35.0 GB (using Tdma)

Memory Requirements

The RAM required for a flow computation depends on the set of flow equations, structure size, porosity, boundary conditions, parallelization, and the selected solver itself. Here, basic hints are given to estimate the memory requirements for the EJ solver, the SimpleFFT solver, and the LIR solver.

We assume a structure with

  1. NX, the voxels in X-direction,
  2. NY, the voxels in Y-direction,
  3. NZ, the voxels in Z-direction,
  4. NI, additional inlet voxel layers,
  5. NO, additional outlet voxel layers, and
  6. P, the number of parallel processes

In addition, we assume that a flow in Z-direction is computed. Then, the total number of voxels is given by

(282)

The EJ and SimpleFFT solver are MPI-parallel and need to have some overlap slices for each process in memory. The number of voxels including overlap slices is then given by

(283)

The memory requirements can now be roughly estimated using the following formulas for each of the solvers:

OpenMemory estimation for EJ

OpenMemory estimation for SimpleFFT

OpenMemory estimation for LIR

©2025 created by Math2Market GmbH / Imprint / Privacy Policy