|
Navigation: GeoDict 2026 - User Guide > Simulation & Prediction > AddiDict > Transport Concentration Field > Options > Flow Solver |
Scroll |
Solver Settings
The equations are solved by an iterative approach.
Iterative Solver The basic idea of an iterative method is to
|
The iterative process is controlled by setting the values and activation for Error Bound, Tolerance, Residual, Maximal Iterations, and Maximal Run Time (h). The stopping criteria apply for each computational direction individually.
If multiple stopping criteria are selected, the first criterion that is reached causes the solver to stop.
The stopping criterion that has been reached can be viewed in the Result Viewer of the GeoDict result file (*.gdr) under the Results Report tab.
The default stopping criterion of the LIR and the SimpleFFT solver, Error Bound, uses the result of previous iterations, and predicts the final solution based on linear and quadratic extrapolation. The solver stops if the relative difference between computed and predicted solution is smaller than the specified error bound. The stopping criterion recognizes oscillations in the convergence behavior and prevents premature stopping at local minima or maxima. A damped convergence curve is fit through the oscillating curve and the solver stops then regarding the damped convergence curve. If the Krylov method (under LIR - Advanced Options) is activated, the definition of Error Bound is somewhat different. Here, no prediction is made, instead the continuity between neighboring cells and the conservation of mass is checked. The maximal value is normalized by the mean flow and if this value is smaller than the Error Bound the simulation stops. |
The Tolerance stopping criterion, the default stopping criterion for EJ, looks for stagnation of the method when the process becomes stationary, i.e. the improvement in the permeability value becomes extremely small from iteration to iteration. In each iteration, the solver checks for the current computed value against the values of the last 100 iterations if there are any changes. The computation is stopped if the maximal relative change is smaller than the value entered for Tolerance. When there is doubt about the quality of the solution, decrease the Tolerance value by a factor of ten. The drawback of this criterion is that the solver sometimes might stop too early in case of slow convergence rate or at local extrema of oscillatory convergence curves. |
When the Residual stopping criterion is used, the iteration is stopped if the solution satisfies the equation up to the required accuracy. By setting the stopping criterion to Residual, the computations terminate as soon as the relative norm drops below the selected residual threshold. The relative norm of the Schur Complement residual is computed and displayed in the console window during the calculations. The console is visible by clicking the double arrow button on the lower right corner in the progress dialog. The recommendation to choose Tolerance or Residual for the EJ solver is based on the structure’s porosity. Both give similar results for highly porous structures. For dense structures, if using the Schur Complement Residual, the relative norm of the residual may be small even though the correct permeability has not been reached. So, when in doubt, use the Tolerance criteria – the default option. |
Control how many threads are used for the computation. Parallelization is possible if your license and hardware allow it. The Parallelization Options dialog opens when clicking the Edit button and you can choose between Sequential, Parallel (Shared Memory), Automatic Maximum of Threads, or Cluster (only available if EJ, SimpleFFT, or FeelMath were selected as solver). ![]() The parallelization of the solvers is done with two technical methods: MPI Parallelization or Thread parallelization. The following table shows the support of both parallelization methods:
Depending on the used parallelization method, the Number of Processes (MPI parallel) or the Number of Threads (thread parallel) can be entered.
|
|||||||||||||||||||||||||
If Load from File has been selected from the Flow Solver Type menu in the Flow Calculation panel, choose a GeoDict result file of a previously run computation. Some information about the computation is shown. The mean velocity of the computation can be rescaled to another one by checking Rescale and editing the mean velocity. |
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. |
The LIR solver uses a very memory efficient adaptive grid structure for the simulations. If the option Write Compressed Volume Fields is checked, then the adaptive grid is used as compression method for writing out *.vap files. 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 (see e.g. Wesseling, 2004) 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 to solve the Stokes and Stokes–Brinkman equations as well as for solving mechanics, diffusion, thermal, and electrical conduction and is enabled by default. Another speed-up option to accelerate the convergence behavior of the LIR solver is called Krylov Subspace Method. The runtime of the LIR solver depends on many different properties of the structure and the simulation parameters. The BiCGStab algorithm is used, which can reduce the runtime for challenging simulation very drastically.
Unfortunately, the Krylov method is not always faster than a simulation without the Krylov method and therefore we introduced an Automatic mode which uses some heuristics to choose the most efficient method based on structure, material parameters, and boundary conditions automatically. Of course, it is possible to explicitly enable (Enabled) or disable (Disabled) the method.
Depending on the material parameters and geometry of the structure, the underlying mathematical problem can vary in complexity, thus influencing the behavior of the solver. The more complex the problem is, the more stable the solver settings should be. With the Relaxation number, the solver is adjusted from Stable (which results in higher number of iterations, slower time stepping, and longer solver run times), to Fast, which makes the solver run less iterations but implies the risk that the solver does not converge. The Relaxation is a parameter of the SOR method and must be between 0 and 2 to ensure convergence. For relaxation values smaller than one (<1.0), the simulation is more stable. For relaxation values larger than one (>1.0), the simulation converges faster. The LIR solver can Optimize for Speed or 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 grid 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 result field during the computation and improves the adaptive grid in places where more accuracy is needed. The LIR solver splits cells where a high gradient occurs. The solver can analyze the computed field and refines the adaptive grid during the computation at locations where more accuracy is needed. The LIR solver splits cells where a high gradients occur when the Grid Refinement Method is enabled. In this case, the additional parameters Number of Grid Refinements, Allow Sub-Voxel Resolution, and Allow Grid Re-Coarsening become available. Select one of the three available refinement methods from the drop-down menu. When A Posteriori Error Bound is selected, the solver targets the specified accuracy Threshold. While the Error Bound (set as Simulation Stopping Criterion) 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 gradient is greater than the Threshold multiplied by the maximum 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 (Threshold and Number of Grid Refinements) for the grid refinement manually. For this option, cells are split where the current gradient is greater than the Threshold multiplied by the maximum gradient. The Threshold value must be between 0.0 and 1.0. The recommended value range is between 0.05 and 0.1. ![]() Activate Reynolds Grid Refinement to use the local Reynolds number (Re) for adaptive grid refinement. A grid cell is split if the local Reynolds number, i.e. the ratio between inertial and viscous forces exceeds the given threshold. The Reynolds number is defined as: where is the density of the fluid (SI units: kg/m3), u is the velocity of the fluid (m/s), is the dynamic viscosity of the fluid (Pa·s or N·s/m2 or kg/m·s), L is a characteristic length (m). For the local Reynolds number, the size of the grid cell is used for the characteristic length. The Number of Grid Refinements controls the maximum number of grid refinements that the solver can perform during the simulation. The value should be set between 0 and 10, where a value of 0 means that no grid refinements will be made. 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 computational cells to sizes smaller than the voxel length. ![]() This feature is beneficial for low-porosity structures for which the pore throats require finer resolution or for modeling fast Navier-Stokes flows with strong vortices. Enabling this feature may increase the number of iterations, runtime, and memory requirements. Check Allow Grid Re-Coarsening to allow the solver to automatically revert the grid refinement and coarsen the computational cells. ![]() This means, grid refinement is done temporarily. Afterwards, the cells are merged as soon as accuracy is not needed anymore. This reduces the memory and runtime requirements. |
©2025 created by Math2Market GmbH / Imprint / Privacy Policy
