CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

What exactly smoother is in OpenFOAM's matrix solver

Register Blogs Community New Posts Updated Threads Search

Like Tree12Likes
  • 5 Post By arjun
  • 7 Post By chengdi

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 2, 2017, 11:23
Default What exactly smoother is in OpenFOAM's matrix solver
  #1
Member
 
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 15
chengdi is on a distinguished road
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?
chengdi is offline   Reply With Quote

Old   May 2, 2017, 11:27
Default
  #2
Senior Member
 
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,273
Rep Power: 34
arjun will become famous soon enougharjun will become famous soon enough
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.
arjun is offline   Reply With Quote

Old   May 7, 2017, 06:22
Default
  #3
Member
 
Di Cheng
Join Date: May 2010
Location: Beijing, China
Posts: 47
Rep Power: 15
chengdi is on a distinguished road
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.
chengdi is offline   Reply With Quote

Old   February 7, 2021, 18:40
Default Interested too
  #4
New Member
 
Russian Federation
Join Date: Apr 2020
Posts: 18
Rep Power: 6
fetc95 is on a distinguished road
Quote:
Originally Posted by chengdi View Post
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?
Hello.

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

Ax=\left(L+D+U\right)x=b

is found iteratively as follows

x^{new}=B x^{old} + g (1)

where B - is some operator, g - 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

B = -D^{-1}\left( L+U \right) = -D^{-1}\left( A-D \right)
g = D^{-1}b

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.
fetc95 is offline   Reply With Quote

Reply

Tags
openfoam, smoother


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Hybrid discretisation - blend factor gcoopermax CFX 5 September 23, 2016 08:05
Unknown asymmetric matrix solver BiCGStab in cavity example zonexo OpenFOAM Running, Solving & CFD 0 September 13, 2016 10:04
OpenFOAM version 1.6 details lakeat OpenFOAM Running, Solving & CFD 42 August 26, 2009 21:47
compressible two phase flow in CFX4.4 youngan CFX 0 July 1, 2003 23:32
solver for linear system with large sparse matrix Yangang Bao Main CFD Forum 1 October 25, 1999 04:22


All times are GMT -4. The time now is 12:08.