|
[Sponsors] |
Similarity between Symmetric Gauss-Seidel and ILU0 smoothing |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
December 2, 2017, 08:02 |
Similarity between Symmetric Gauss-Seidel and ILU0 smoothing
|
#1 |
Senior Member
|
Dear all,
in the Fluent manual, more specifically at the end of this page: https://www.sharcnet.ca/Software/Ans...lar_couple_amg it is stated that their ILU0 smoother is basically written as their Symmetric Gauss-Seidel one, the only difference being how they compute the diagonal blocks. Not a linear algebra expert here, but the only reference I found on this is in Saad, Iterative Methods for Sparse Linear Systems, pp. 294, but it seems to me that he also states that this is not possible in general, and only cites the case where the system matrix is penta-diagonal as suitable for this equivalence. Is anyone aware of additional references on this and/or if the Fluent approach (whose matrix is clearly not pentadiagonal) is actually correct? Not that implementing ILU0 separately would be such a great deal, but would be great if possible by only working on the diagonal. Thanks |
|
December 2, 2017, 08:12 |
|
#2 |
Senior Member
|
The book of Saad can be found here:
http://www-users.cs.umn.edu/~saad/It...Book_2ndEd.pdf but the relative page is 308. |
|
December 2, 2017, 14:33 |
|
#3 |
Senior Member
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 6,849
Rep Power: 73 |
Paolo, maybe you can check the references cited in the book of Peric & Ferziger...
|
|
December 4, 2017, 06:18 |
|
#5 |
Senior Member
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 6,849
Rep Power: 73 |
||
December 4, 2017, 06:43 |
|
#6 |
Senior Member
|
At the moment I'm actually investigating the preconditioning world (where ILU0 seems to have a more prominent role) starting from the review of Benzi on JCP (http://www.cs.ucsb.edu/~gilbert/cs21...condSurvey.pdf) and following the references therein.
However, it seems that the formula used by Fluent is ILU0 applied just to the diagonal of the matrix. |
|
December 4, 2017, 06:54 |
|
#7 |
Senior Member
Filippo Maria Denaro
Join Date: Jul 2010
Posts: 6,849
Rep Power: 73 |
Checked also the references in the SPARSKIT2 of Saad?
|
|
December 4, 2017, 07:09 |
|
#8 |
Senior Member
|
Finally found it in here:
http://www.netlib.org/templates/templates.pdf That version is known as DILU, and now all makes more sense Thanks |
|
December 4, 2017, 08:02 |
|
#10 |
Senior Member
|
For the sake of completeness, here it is another good reference:
https://www.google.it/url?sa=t&rct=j...NgWw49Li29Ngqt- |
|
December 9, 2017, 21:49 |
|
#11 | |
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,285
Rep Power: 34 |
Quote:
i wanted to point you to it but had only access to phone where i couldn't log in to make comment. Anyway here is an additional information might be useful to you, when in parallel, during the construction of DILU diagonal if the off diagonal matrix elements are on another processor then they are ignored. (in Fluent's case) What it means that adding more and and more processors and performance of Fluent's dilu will go down. |
||
December 11, 2017, 08:14 |
|
#12 | |
Senior Member
|
Quote:
But I have a question: is it really necessary to neglect offdiagonal terms related to "cells" on other processors? I mean, they actually are available. Is it a consistency reason (in the sense that they are not within the square block related to a given processor)? Would the same apply also for ILU0? Or, maybe, would you do the same if you had to use the same reasoning for ILU0? Thanks |
||
December 11, 2017, 13:02 |
|
#13 | |
Senior Member
Arjun
Join Date: Mar 2009
Location: Nurenberg, Germany
Posts: 1,285
Rep Power: 34 |
Quote:
The issue is that ILU0 or DILU factorization loop is serial so what they do is that they run it on each processor disregarding other processors. (as if that processor doesn't know of others). (The issue is for Aij element of matrix we need also Aji element, this is not available. But if you know that matrix is symmetric then you can add this contribution. You can have such switch in your code). It is not necessary and there might be a parallel way to do factorization too (i searched but i did not find). But shall be less efficient to construct. |
||
December 11, 2017, 14:12 |
|
#14 |
Senior Member
|
||
|
|