|
[Sponsors] |
What exactly smoother is in OpenFOAM's matrix solver |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 2, 2017, 12:23 |
What exactly smoother is in OpenFOAM's matrix solver
|
#1 |
Member
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 16 |
Hi, everyone
I am reading the code of matrix solvers of OpenFOAM, however, I found the implementation of smoothSolver is difficult to understand because the so-called smoother cannot be found in math textbooks and internet. Could anyone give me some hint on what exactly smoother is and how a smoothSolver works? |
|
May 2, 2017, 12:27 |
|
#2 |
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,290
Rep Power: 34 |
Smoother is another name for sparse linear solver like Jacobi, Gauss Seidel and all.
It is called smoother because we do not use this to solve the linear system but rather quickly remove some part of error. Other than Jacobi, openfoam also uses ILU based smoother. |
|
May 7, 2017, 07:22 |
|
#3 |
Member
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 16 |
Thanks, I just figured out that "smooth" means to smooth out some "spikes" in residual and decrease the residual. And the smoothSolver is just a class of iterative solver in which the iterative steps are implemented in "smoother". Comparing with Krylov-type solver, I think smoothSolver may need diagoal dominance as a sufficent condtion to work effectively.
|
|
February 7, 2021, 19:40 |
Interested too
|
#4 | |
New Member
Russian Federation
Join Date: Apr 2020
Posts: 18
Rep Power: 6 |
Quote:
I am interested this problem too. I do not pretend on fully correct interpretation but searching the code of different smoothers in smoothSolver class I concluded that this class contains the Gauss-Seidel and Jacobi methods and their variations. Concretely, the key word "GaussSeidel" or "symGaussSeidel", etc. sets the Gauss-Seidel method to solve the linear equations. If we look file GaussSeidel.C we find the code which coincides with description of the Gauss-Seidel method in Wikipedia. However, smoothers like "DIC" or "DILU" are seemed to set the Jacobi method to solve the linear equations, but the code does not coincide with classical description of Jacobi method. In Jacobi method, the solution of the system is found iteratively as follows (1) where - is some operator, - is some vector depending on the right part of the linear system. I believe that in DIC and DILU smoothers the solution is obtained as (1). In classical Jacobi method we have But in the code of DIC and DILU smoothers I cannot find that, so it seems that operator B and vector g are obtained in some other way. |
||
Tags |
openfoam, smoother |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Hybrid discretisation - blend factor | gcoopermax | CFX | 5 | September 23, 2016 09:05 |
Unknown asymmetric matrix solver BiCGStab in cavity example | zonexo | OpenFOAM Running, Solving & CFD | 0 | September 13, 2016 11:04 |
OpenFOAM version 1.6 details | lakeat | OpenFOAM Running, Solving & CFD | 42 | August 26, 2009 22:47 |
compressible two phase flow in CFX4.4 | youngan | CFX | 0 | July 2, 2003 00:32 |
solver for linear system with large sparse matrix | Yangang Bao | Main CFD Forum | 1 | October 25, 1999 05:22 |