# FlowDepthSolver

From Elmer Wiki

**Name of the source code file:** Flowdepth.f90

**Name of contained subroutine(s):** FlowdepthSolver

**Name(s) of contained function(s):** ---

**Description of** **FlowdepthSolver:**

This solver computes the vertical distance from a surface (either free surface or bedrock in Glaciology). In structured FD-grids this is a trivial procedure - not so in unstructured FEM meshes as used by Elmer. A degenerated Poisson equation has to be solved in order to get nodal values for either the flow depth below the free surface or the flow height above the bedrock.

**Keywords of** **FlowdepthSolver:**

! This solves the depth underneath the free surface !-------------------------------------------------- Solver 1 Equation = "Flowdepth" Exec Solver = "Before Timestep" Procedure = File "Flowdepth" "FlowDepthSolver" Variable = String "Depth" Variable DOFs = 1 Linear System Solver = "Iterative" Linear System Max Iterations = 100 Linear System Convergence Tolerance = 1.0E-09 Linear System Abort Not Converged = False ! mostly not essential Linear System Preconditioning = "ILU0" Linear System Residual Output = 1 ! this sets the direction ! -1 is negative z-direction (upside down) ! +1 is positive (downside up) Gradient = Real -1.0E00 ! switch that to True, if you ! want to have free surface gradients ! to be computed !------------------------------------ Calc Free Surface = Logical True ! the name for the exported (if not existing) added variable ! the gradients will be stored in variables with the base ! name given and "Grad1" and (in 3 dimensions) "Grad2" added, ! so in our case "FreeSurfGrad1" and "FreeSurfGrad2" ! again, if those variables did not exist, they will be ! automatically created !----------------------------------------------------------- Freesurf Name = String "FreeSurf" End ! This solves the height above the bedrock !------------------------------------------ Solver 2 Equation = "Flowheight" ! mind different name Exec Solver = "Before Timestep" Procedure = File "Flowdepth2" "FlowDepthSolver" ! make a copy of the original solver, to get a separate address space Variable = String "Height" ! mind different name for variable Variable DOFs = 1 Linear System Solver = "Direct" Linear System Direct Method = "UMFPACK" Linear System Convergence Tolerance = 1.0E-09 Linear System Abort Not Converged = False Gradient = Real 1.0E00 ! this time positive Calc Free Surface = Logical False End ! boundary at the free surface !----------------------------- Boundary Condition 1 ... Depth = Real 0.0 End ! boundary at bedrock !----------------------------- Boundary Condition 2 ... Height = Real 0.0 End ! internal boundary with ! no Dirichlet and neither ! the default Neumann ! condition !----------------------------- Boundary Condition 3 ... Skip Flowdepth = Logical True End