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

Need GAMG guide

Register Blogs Community New Posts Updated Threads Search

Like Tree5Likes
  • 3 Post By dlahaye
  • 1 Post By dlahaye
  • 1 Post By fxzf

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 20, 2022, 03:02
Default Need GAMG guide
  #1
Member
 
ff
Join Date: Feb 2010
Posts: 81
Rep Power: 16
fxzf is on a distinguished road
Hello All Foamers and Experts,

I am developing some stuff and found some potential issue in GAMG. So I need to know details about GAMG solver, how it is working and how the code implemented in OpenFOAM.

Can anyone provide me a document or somewhere I can find a detailed guide for GAMG solver?

Thanks very much.

Cheers,
fxzf is offline   Reply With Quote

Old   February 20, 2022, 03:45
Default
  #2
Senior Member
 
Domenico Lahaye
Join Date: Dec 2013
Posts: 773
Blog Entries: 1
Rep Power: 17
dlahaye is on a distinguished road
GAMG is the Generalized Geometric-Algebraic MultiGrid solver in OpenFoam.

GAMG consists of two phases: a set-up phase and a solve-phase.

In the set-up phase GAMG constructs a set of coarser meshes, the corresponding linear systems on these meshes, and the intergrid transfer operators. GAMG employs MGridGen http://glaros.dtc.umn.edu/gkhome/mgridgen/overview to do so.

In the solve phase, GAMG performs multigrid cycling via matrix-vector operations.

Details are (most obviously) in the source code. More precisely, here, https://github.com/OpenFOAM/OpenFOAM...x/solvers/GAMG .

What exactly are you looking for?
fxzf, Kummi and yueyun like this.
dlahaye is offline   Reply With Quote

Old   February 20, 2022, 23:36
Default
  #3
Member
 
ff
Join Date: Feb 2010
Posts: 81
Rep Power: 16
fxzf is on a distinguished road
Quote:
Originally Posted by dlahaye View Post
GAMG is the Generalized Geometric-Algebraic MultiGrid solver in OpenFoam.

GAMG consists of two phases: a set-up phase and a solve-phase.

In the set-up phase GAMG constructs a set of coarser meshes, the corresponding linear systems on these meshes, and the intergrid transfer operators. GAMG employs MGridGen http://glaros.dtc.umn.edu/gkhome/mgridgen/overview to do so.

In the solve phase, GAMG performs multigrid cycling via matrix-vector operations.

Details are (most obviously) in the source code. More precisely, here, https://github.com/OpenFOAM/OpenFOAM...x/solvers/GAMG .

What exactly are you looking for?
Hi Domenico,

Thanks very much for your reply.

This is exactly what I am looking for. I just wonder if anywhere has a bit details of how GAMG setup coarse grid set. I may need to play this a bit.

Thanks very much.

Cheers,
fxzf is offline   Reply With Quote

Old   February 21, 2022, 04:15
Default
  #4
Senior Member
 
Michael Alletto
Join Date: Jun 2018
Location: Bremen
Posts: 616
Rep Power: 16
mAlletto will become famous soon enough
Do you know this book https://www.springerprofessional.de/...d-ufvm/2406636

There is also a chapter about gamg inside. You may find it useful

Best Michael
mAlletto is offline   Reply With Quote

Old   February 21, 2022, 07:51
Default
  #5
Senior Member
 
Domenico Lahaye
Join Date: Dec 2013
Posts: 773
Blog Entries: 1
Rep Power: 17
dlahaye is on a distinguished road
Thank you both for your further elaboration.

The GAMG set-up phase is performed by MGridgen. Details on how agglomeration is performed might thus well depend on parameters by which MGridGen is called. I have not yet been able to identify where in the source code MGridGen is called. Nor am I aware what parameters mean. Possibly this https://github.com/OpenFOAM/OpenFOAM...GAgglomerate.C is a starting point. Literature on MGridGen should explain the meaning of the parameters.

Details might also depend on what parameters OpenFoam allows to modify. This might be OpenFoam version dependent.

It is clear that GAMG allows to limit the number of coarsest level point as a means via nCellsCoarsestLevel to control the number of number of levels.

The Darwish and Moukalled book (that Michael refers to) has Listing 10.11 on page 357 with the parameter agglomerator. This parameter is however not (or no longer) available in version-2012, see https://www.openfoam.com/documentati...grid-gamg.html So I have no idea what is does.

I am happy to learn more on this topic.
Kummi likes this.
dlahaye is offline   Reply With Quote

Old   February 21, 2022, 19:53
Default
  #6
Member
 
ff
Join Date: Feb 2010
Posts: 81
Rep Power: 16
fxzf is on a distinguished road
Quote:
Originally Posted by mAlletto View Post
Do you know this book https://www.springerprofessional.de/...d-ufvm/2406636

There is also a chapter about gamg inside. You may find it useful

Best Michael
Great. I will have a look
fxzf is offline   Reply With Quote

Old   February 21, 2022, 19:57
Default
  #7
Member
 
ff
Join Date: Feb 2010
Posts: 81
Rep Power: 16
fxzf is on a distinguished road
Quote:
Originally Posted by dlahaye View Post
Thank you both for your further elaboration.

The GAMG set-up phase is performed by MGridgen. Details on how agglomeration is performed might thus well depend on parameters by which MGridGen is called. I have not yet been able to identify where in the source code MGridGen is called. Nor am I aware what parameters mean. Possibly this https://github.com/OpenFOAM/OpenFOAM...GAgglomerate.C is a starting point. Literature on MGridGen should explain the meaning of the parameters.

Details might also depend on what parameters OpenFoam allows to modify. This might be OpenFoam version dependent.

It is clear that GAMG allows to limit the number of coarsest level point as a means via nCellsCoarsestLevel to control the number of number of levels.

The Darwish and Moukalled book (that Michael refers to) has Listing 10.11 on page 357 with the parameter agglomerator. This parameter is however not (or no longer) available in version-2012, see https://www.openfoam.com/documentati...grid-gamg.html So I have no idea what is does.

I am happy to learn more on this topic.
Hi Domenico,

Thanks very much for your kind reply. This is very helpful.

So it seems more complicated than I expected. I will start looking in the code and the book Michael refers. See if I can make any progress.

Thanks for both help.

Cheers.
dlahaye likes this.
fxzf is offline   Reply With Quote

Old   February 22, 2022, 03:01
Default
  #8
Senior Member
 
Domenico Lahaye
Join Date: Dec 2013
Posts: 773
Blog Entries: 1
Rep Power: 17
dlahaye is on a distinguished road
Please let us know what you learn ;-)
dlahaye is offline   Reply With Quote

Old   February 28, 2022, 08:59
Default
  #9
Senior Member
 
Domenico Lahaye
Join Date: Dec 2013
Posts: 773
Blog Entries: 1
Rep Power: 17
dlahaye is on a distinguished road
Any luck?

A master student just managed to run both Ruge/Stueben and smoothed aggregation that Julia (julialang.org) provides.

Can you dump your matrix to file and read it into Julia? Would this be valuable?

Cheers, Domenico.
dlahaye is offline   Reply With Quote

Reply


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
Suppress twoPhaseEulerFoam energy AlmostSurelyRob OpenFOAM Running, Solving & CFD 33 September 25, 2018 17:45
chtMultiRegionSimpleFoam turbulent case Aditya Patil OpenFOAM Running, Solving & CFD 6 April 24, 2017 22:13
Wrong fluctuation of pressure in transient simulation caitao OpenFOAM Running, Solving & CFD 2 March 5, 2015 21:33
pimpleFoam: turbulence->correct(); is not executed when using residualControl hfs OpenFOAM Running, Solving & CFD 3 October 29, 2013 08:35
Differences between serial and parallel runs carsten OpenFOAM Bugs 11 September 12, 2008 11:16


All times are GMT -4. The time now is 02:46.