Page 1 of 1

FlowSolver

Posted: 15 Nov 2009, 09:24
by hamed
Dear Elmer group
I wanted to ask about the algorithm used in Elmer 'FlowSolver' module for solving incompressible stabilized Navier-Stokes equation. Is it for example a kind of FRONTAL solver or anything else?
Regards,
Hamed
"I just omitted a sentence, no need for answer"

Re: FlowSolver

Posted: 15 Nov 2009, 13:54
by raback
Hi Hamed

If you're referring to the solution of the linear systems arising from the discretization of the Navier-Stokes equation, there are a number of choices. Indeed one good option in 2D is Umfpack which is a multi-frontal direct solver, see
http://www.cise.ufl.edu/research/sparse/umfpack/. For larger and 3D problems usually iterative methods are applied, see
Ch. 4 in http://www.nic.funet.fi/pub/sci/physics ... Manual.pdf for more details (unfortunately this isn't quite up to date missing quite many more recent options).

In ElmerGUI the place to choose the linear solver is
Equation -> Navier-Stokes -> Edit Solver Settings -> Linear Systems ( and Parallel)

FlowEdgeResidual is related to the error indicators that may be used in adaptive solution of the equations. Metric is related to the coordinate transformation in non-cartesian coordinates.

-Peter

Re: FlowSolver

Posted: 16 Nov 2009, 11:16
by hamed
So what is the difference between functions 'FlowBoundaryResidual' and 'FlowEdgeResidual' ? These functions alongside 'FlowInsideResidual' constitute the main part of 'FlowSolver' module.

Thanks,

Re: FlowSolver

Posted: 17 Nov 2009, 10:47
by Juha
Hi Hamed,

EdgeResiduals() is for computing jump in normal stresses over the element
edges (2D) or faces (3D). BoundaryResiduals() is for computing an solution error
measure for boundary conditions.

Both routines return values that can are used, together with the value returned be
InsideResiduals(), to compute an elementwise solution error indicator.The indicator
may then be used in mesh refinement procedures, for example.

Regards, Juha

PS. The main subroutine in the FlowSolve.src file is the FlowSolver() subroutine
which is the actual driver for the N-S equation.