FAS Multigrid on compressible flow
It's been almost a year since I've been searching this forum and as far as I remember I have never started a thread so here it goes.
I am working with steady compressible internal flow, namely Turbomachinery. I am aware there is a "new" class of solvers called DensityBasedTurbo but due to limitations ( no implicit schemes nor multigrid ) I find it very very slow. Despite of this, the good physical and mathematical meaning that I find in the Rieman problem lets me see it as a final stage to get my simulation more accurate.
For now I'm interested in subsonic/transonic flow. I sucedeed to assemble a solver based on SIMPLE that is quite fast and gives aceptable results (to build a initial field). I know that multigrid is being tested, but I can't find the source and there is also a guy (Luca) that developed FAS with a SIMPLE smoother, and that is exactly what I am trying to do now (can't find the source either). I reviewed his paper and it doesn't seem hard..unfortunately I don't master c++ and I'm a having some difficulties to call some functions.
-It seems that GAMGSolver and GAMGAgglomeration class has all it needs to make the FAS multigrid work.
-I thought of declaring GAMGAgglomeration a friend of GAMGsolver so that when I create my "agglomeration model" in createFields (similar aproach to creating turbulence model) I could use the members of GAMGsolver.
- I am able to create the "agglomeration model" but calling the function into the main solver just won't compile ( pretty sure its noob erros)..which leads to another doubt:
- To create the FAS solver, I should have the function to make agglomerations, cycles etc... just after the cycle runtime begins? I realize that my original solver (rhoSimpleFoam) is the smoother of the FAS but I am missing the way that I tell that that part of code (SIMPLE) is the smoother.
-Luca talks about hidden features in GAMGsolver class, I searched about it and it seems it can be reached with some virtual assignment. Do I have to make GAMGsolver runtime selectable?and if it is so, making a friend as I said won't do it? yes..I know my c++ sucks and probably this doesn't make much sense..but had to try!
Sincerely hope that one of you can point me a direction.
If not, i'll keep trying.
Thank you all!
Well, I guess I should have waited a little longer..I got some lights! If I suceed and if someone is interested I'll post it.
if you think about it, the way how proceed Luca (Gasparini) cannot work with 3D mesh. A plane pass through only three points..
We modified AeroFOAM adding several acceleration techniques like non linear geometric multigrid (FAS), but you have to change algorithm. Remember also that OpenFOAM is a face addressing based code, that handles, for each face, two unique centroids..
Thank you for your answer. I thought it might be more difficult than it seems. I didn't think of any plane because Agglomeration is a comum and efficient 3D method to implement multigrid on unstructured grids ( Brazek p316). As I was digging the GAMGsolver class and GamgAgglomeration plus the paper of Luca I thought I had the functions I needed to make it work.
I admit I dont master some subjects of OpenFOAM but I will get there..so your face adressing comment I am afraid I didin't get it :/...
From what I saw of aeroFoam, I realized it was good to external flow but can't find the FAS implementation..maybe I have an old version..could you direct me a link of a recent one?
I am aware of the major techniques to accelerate convergence to steady state but I think of FAS the most powerfull one.
Thank you again.
you are right, GAMG provides you 3D agglomeration, but what you want at the end is a non-linear (FAS) geometric multigrid. So that means that you need an fvMesh for each level, while GAMG class is provides you only cells and faces agglomeration but not the full topology.
AeroFOAM is improved and extended with FAS MG multigrid but it's not released public, we have still to publish papers.
|All times are GMT -4. The time now is 14:43.|