|
Navigation: GeoDict 2025 - User Guide > Simulation & Prediction > FlowDict > Stokes(-Brinkman) > Solver |
Scroll |
Advanced Options
Unfold Advanced Options to gain access to several advanced solver options.
Checking Analyze Geometry performs the analysis of the geometry and is enabled by default. It should be turned off when geometry analysis is not necessary. The flow solver tries to solve the flow in all the pores of the structure, regardless of whether they are open or closed pores. However, flow in the closed pores may not exist or does not influence the whole flow field. The efforts in solving the flow in the closed pores are wasted. For this reason, a geometrical analysis is routinely run before the solver computations to determine whether a through path exists, to remove unconnected solid components, and to fill up unconnected empty spaces. This geometry analysis also takes time, so that when the user knows beforehand that closed pores do not exist in a structure or that the structure has been processed to eliminate them, the geometry analysis can be switched off by unchecking Analyze Geometry. |
The tridiagonal matrix algorithm (Tdma), also known as the Thomas Algorithm, may help to improve the convergence for high porosity structure, especially for Navier-Stokes. The algorithm transforms the 3D flow problem to 2D. Thus, it leads to a shorter runtime and increases the convergence speed. Three options can be chosen from the pull-down menu: Automatic, NotUse Tdma or Use Tdma. If Automatic is selected, the SimpleFFT solver decides if Tdma will be used, regarding the porosity of the structure. Thus, Tdma is used if the porosity is high. For most cases it is recommended to choose Automatic. If a message dialog appears, displaying that NaN is detected in iterations, NotUse Tdma should be tried. If the structures porosity is very high, it might decrease the runtime a little bit to explicitly choose Use Tdma. But for most cases Automatic will work well. For more information about the Thomas algorithm see here. |
Depending on the material parameters and geometrical structure of the structure, the underlying mathematical problem can vary in complexity, thus influencing the behavior of the solver. This is directly related to the Reynolds number, an indication of the complexity of the flow solver computations. The higher the Reynolds number, the more Stable the flow solver settings should be, resulting in higher number of iterations, slower time stepping, and longer flow solver run times. However, making the solver run less iterations and, thus, faster (Fast), implies the risk that the solver does not converge. For the SimpleFFT solver, the management of this balance is done through the Velocity relaxation: Stable ↔ Fast and Pressure relaxation: Stable ↔ Fast slide bars. Setting the balance of Stable versus Fast is a trial-and-error process. Although there is no general rule to optimize it, the log files and the visualization of the structure might help finding the balance. Non-sense structure visualization results indicate that a more stable, slower solver is needed. For the LIR solver, this balance is managed through Relaxation in the Optimization Options. The value should be between zero and two. For relaxation values smaller than one (<1.0), the simulation is more stable. For relaxation values larger than one (>1.0), the simulation is faster. |
Write Compressed Volume Fields
The LIR solver uses a very memory efficient adaptive grid structure for flow simulations. If the option Write Compressed Volume Fields is checked, then the adaptive grid is used as compression method for writing out velocity and pressure (VAP) fields. This option allows to save 80-90% space on hard drive. The runtime for writing VAP files is also reduced significantly. But the runtime for loading and uncompressing of compressed VAP is increased by the amount of runtime that was saved for writing out compressed VAP files. If the option Write Compressed Volume Fields is not checked, then a usual regular grid is used for writing out VAP files. |
The Multigrid Method for LIR was introduced to speed-up the computation and reduce the runtime significantly. The main idea of Multigrid is the usage of multiple coarser adaptive grids to speed up convergence behavior but requires only little more memory. The method is available in FlowDict and FilterDict as well as for solving diffusion, thermal and electrical conduction in DiffuDict and ConductoDict and is enabled by default. The strength of the Multigrid Method is shown for Stokes flow on four of the digital rocks used by Saxena et al. (2017) with porosities ranging from 9% to 22%. The graph below displays the total runtime for the GeoDict 2019 release, when the Multigrid Method was introduced, compared to three earlier GeoDict releases without Multigrid. The runtime could be reduced by more than 50% compared to GeoDict 2018. |
In GeoDict 2022 another speed-up option was introduced to accelerate the convergence behavior of the LIR solver. The runtime of the LIR solver depends on many different properties of the structure and the simulation parameters. For example, the runtime is high if the porosity is very small – let‘s say less than 15%. This is due to the growing complexity of the pore space in low porous structures. For Stokes-Brinkman the runtime also depends on the permeability of porous voxels and the voxel length. For Navier-Stokes it depends on the applied velocity of pressure drop. For example, the Velocity-in Pressure-out boundary condition can increase the runtime significantly. These challenging simulations can now be tackled with a special solution method called Krylov Subspace Method. The method was originally implemented for the Battery-LIR solver but is now available in the flow solver too. Here, the BiCGStab algorithm is used under the hood. This method can reduce the runtime for challenging simulation very drastically, but this is paid by an increased memory consumption. Unfortunately, the new method is not always faster than the old method and therefore we introduced an Automatic mode which uses some heuristics to choose the best solution for the user automatically. Of course, it is possible to explicitly enable (Enabled) or disable (Disabled) the method. |
The LIR solver can Optimize for Speed or Memory. If Speed is chosen, the solver constructs additional optimization structures. The runtime is decreased by up to 30% but requires up to 50% more memory compared to the other option. If Memory is chosen, then the runtime is increased by up to 40% but the solver requires up to 50% less memory. |
The Grid Type decides what kind of tree structure is used for the simulation. The default option is LIR-Tree and should always be used. The solver uses an adaptive tree structure called LIR-tree and needs up to 10 times less runtime and memory compared to the Regular Grid option. |
The solver can analyze the velocity and pressure field during the computation and improves the adaptive grid in places where more accuracy is needed. The LIR solver splits cells where a high velocity-gradient or high pressure-gradient occurs when the Grid Refinement Method is enabled. When A Posteriori Error Bound is selected, the solver targets the specified accuracy Threshold. While Error Bound determines the relative error in the solution of the linear system, A Posteriori Error Bound refers to the relative error estimated by comparing high-order and low-order discrete solutions. The accuracy Threshold refers to the relative error to the analytical solution and the value must be between 0.0 and 1.0. Choosing Difference (Automatic) leads to computational cells being split when the difference in values between neighboring cells exceeds a certain Threshold. The solver automatically chooses all internal parameters based on the structure and simulation settings. For this option, cells are split where the current velocity or pressure gradient is greater than the Threshold multiplied by the maximum velocity or pressure gradient, where the threshold is determined automatically. Selecting Difference (Manual) also causes the computational cells to be split when the difference in values between neighboring cells exceeds the specified Threshold. You can specify all parameters for the grid refinement manually. For this option, cells are split where the current velocity or pressure gradient is greater than the Threshold multiplied by the maximum velocity or pressure gradient. This threshold must be between 0.0 and 1.0. The recommended value range is between 0.05 and 0.1. The Number of Grid Refinements controls the maximum number of grid refinements that the solver can perform. The value should be set between 1 and 10. Grid refinements may increase the number of iterations, runtime, and memory requirements. |
When Allow Sub-Voxel Resolution is enabled, the solver is allowed to split computation cells to sizes smaller than the voxel length. This feature is beneficial for low-porosity structures where the pore throats require finer resolution. It may also be advantageous for modeling fast Navier-Stokes flows with strong vortices. However, cells smaller than the voxel length may increase the number of iterations, runtime, and memory requirements. |
©2025 created by Math2Market GmbH / Imprint / Privacy Policy