multi grid error

General discussion about Elmer
Post Reply
phsieh2005
Posts: 14
Joined: 12 Oct 2010, 04:22

multi grid error

Post by phsieh2005 »

Dear Elmer developers,

I setup a case under ElmerGUI (a code very nicely done!). When I used BiCGStab for N-S, the case ran without any problem. When I switched to multigrid, I got the following error:

It looks like ElmerGUI does not write out the sif file correctly?

Is there any general guideline for applying multigrid when solving N-S?

Pei-Ying
------------------------------------------

ResultOutputSolver: Time used for saving: 3.8129999999999997
ResultOutputSolver: -------------------------------------
FlowSolve:
FlowSolve:
FlowSolve: -------------------------------------
FlowSolve: NAVIER-STOKES ITERATION 1
FlowSolve: -------------------------------------
FlowSolve:
FlowSolve: Starting Assembly...

FlowSolve: Assembly done

FlowSolve: Dirichlet conditions done

WARNING:: ListFind:
WARNING:: ListFind: Requested property: [Linear System Convergence Tolerance], not found
WARNING:: ListFind:
MeshName:.
ERROR:: LoadMesh: Unable to load mesh: ./mgrid2

Could not open ./mgrid2/mesh.header
raback
Site Admin
Posts: 4868
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: multi grid error

Post by raback »

Hi Pei-Ying
phsieh2005 wrote: Is there any general guideline for applying multigrid when solving N-S?
Don't ;-)

Generally none of the provided multigrid method does not converge particularly well for monolithic Navier-Stokes. With the segragated version you may have better luck but that does not have all the bells and whisles, and is not available via ElmerGUI.

-Peter
Pisolino
Posts: 43
Joined: 11 Jul 2011, 11:32
Antispam: Yes

Re: multi grid error

Post by Pisolino »

HI, i don't know if MG can help in N-S (i'm trying to do this too) but probably your error is given because of a GUI bug. From the GUI you can adjust your option for MG either preconditioning or solver but then the GUI pre-processor doesn't write command lines in the .sif file. For example i manually added the MG lines:

Solver 2
Equation = Navier-Stokes
Variable = Flow Solution[Velocity:2 Pressure:1]
Procedure = "FlowSolve" "FlowSolver"
Exec Solver = Always
Stabilize = True
Bubbles = False
Lumped Mass Matrix = False
Optimize Bandwidth = True
Steady State Convergence Tolerance = 1.0e-5
Nonlinear System Convergence Tolerance = 1.0e-8
Nonlinear System Max Iterations = 20
Nonlinear System Newton After Iterations = 3
Nonlinear System Newton After Tolerance = 1.0e-3
Nonlinear System Relaxation Factor = 0.5
Linear System Solver = Multigrid
MG Levels= 4
MG Equal Split = True
MG Mesh Name = prova
MG Max Iterations = 2
MG Convergence Tolerance = 1e-05
MG Smoother = Jacobi
MG Pre Smoothing Iterations = 5
MG Post Smoothing Iterations = 5
MG Preconditioning = ILUT
MG ILUT Tolerance = 1e-03
Supituki
Posts: 14
Joined: 18 Oct 2011, 10:07
Antispam: Yes

Re: multi grid error

Post by Supituki »

Hi Everyone,

I've been trying to use the Multigrid option as a preconditioner but i didnt make it work since either it always crashes or i get the following message:
ERROR:: LoadMesh: Unable to load mesh: ./mgrid2
or
ERROR:: LoadMesh: Unable to load mesh: ./mgrid3

I wrote the following commands in the .sif file (while trying i wrote other options too, but unsuccessfully anyway):

Procedure = "StressSolve" "StressSolver"
...
Linear System Preconditioning = Multigrid
MG Levels = 4
MG Equal Split = True
MG Max Iterations = 4
MG Convergence Tolerance = 1e-5

In this example, ElmerSolver crashes. What is missing in there? Is something wrong defined?

Thanks in advance

Supituki

Pd: I have only defined one mess. After reading the documentation i seems it should be that way, since i don't want them to be introduced manually with the "MG Mesh Name" command
raback
Site Admin
Posts: 4868
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: multi grid error

Post by raback »

Hi

The geometric multigrid (GMG) assumes a hierarchy of meshes. They may either be given by the user, or created internally by mesh multiplication i.e. splitting the initial mesh recursively a few times. This is controlled by the "Mesh Levels" keyword in Simulation section. The downside of this is that the initial coarse mesh must be able to describe the geometetry and mesh grading accurately enough.

-Peter
Supituki
Posts: 14
Joined: 18 Oct 2011, 10:07
Antispam: Yes

Re: multi grid error

Post by Supituki »

Hi peter,

Thanks for your repply.

I have read the Meshing Utilities chapter and added the necessary command to the .sif file.

Elmersolver now correctly splits the mesh although sometimes it crashes. This is probably due to the mesh¿?, as depending on it sometimes elmer runs until the assembly part.
At this point i always get the following:
"Operating system error: No error"
"Out of memory"
or
"Error: BANDSOLVER: Memory allocation error."

It is something strange to me, because the mesh is not extremely big nor complex. What could be the reason?

Supituki.

Pd: These are the lines of the .sif file:

Code: Select all

Simulation
Max Output Level = 4
Coordinate System = Cartesian
Coordinate Mapping(3) = 1 2 3
Simulation Type = Steady state
Steady State Max Iterations = 1
Output Intervals = 1
Solver Input File = Flexo_DynExperts_Modal_EigenValues_1.sif
Post File = Results_Flexo_DynExperts_Modal_EigenValues_1.ep
Mesh Levels = 2
Mesh Keep Grading = True
Mesh Grading Power = 3
End

Code: Select all

Solver 1
  Equation = Linear elasticity
  Procedure = "StressSolve" "StressSolver" 
  Variable = -dofs 3 Displacement
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-7
  Linear System Solver = Iterative
  Linear System Max Iterations = 10000
  Linear System Iterative Method = BiCGstabl
  BiCGstabl polynomial degree = 3
  Linear System Convergence Tolerance = 5.0e-7
  Linear System Preconditioning = Multigrid
  MG Levels = 2
  MG Equal Split = True
  MG Max Iterations = 4
  MG Convergence Tolerance = 1e-5
  Linear System Abort Not Converged = False
  Linear System Residual Output = 1
  Linear System Precondition Recompute = 1
  Solver Timing Cumulative = True
  Linear System Timing Cumulative = True
  Eigen Analysis = True
  Eigen System Values = 3
  Eigen System Max Iterations = 5000
  Eigen System Select = Smallest Magnitude
End
raback
Site Admin
Posts: 4868
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: multi grid error

Post by raback »

Hi

Note that if you split a 3D mesh n times you will have 2^3^n more elements. So four levels would give 4096 times the amount of elements. Therefore the initial mesh density should be rather sparse. Probably your system becomes too big for the memory.

-Peter
Supituki
Posts: 14
Joined: 18 Oct 2011, 10:07
Antispam: Yes

Re: multi grid error

Post by Supituki »

Hi Peter,

Upsssssssssssssssssssssssssssssss. That was a huge mistake.

Thanks very much for your help

Supituki
Post Reply