Warning: Declaration of syntax_plugin_mathpublish::handle(\$match, \$state, \$pos, &\$handler) should be compatible with DokuWiki_Syntax_Plugin::handle(\$match, \$state, \$pos, Doku_Handler \$handler) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

Warning: Declaration of syntax_plugin_mathpublish::render(\$mode, &\$R, \$data) should be compatible with DokuWiki_Syntax_Plugin::render(\$format, Doku_Renderer \$renderer, \$data) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php:0) in /home/np29546/public_html/elmerice/wiki/inc/actions.php on line 38
solvers:sia [Elmer/Ice Wiki]

Solver Shallow Ice Approximation (SIA)

General Informations

• Solver Fortran File: `SIASolver.f90`
• Solver Name: `SIAVariable` and `SIASolver`
• Required Output Variable(s): `SIAFlow`
• Required Input Variable(s): `Depth`, `FreeSurfGrad1` and `FreeSurfGrad2`
• Optional Output Variable(s): None
• Optional Input Variable(s): None

General Description

This SIA solver is not classical in that sense that the equations are not solved on a grid of dimension lower than the problem dimension itself. The geometry (H, B and S) is here given by the mesh. For a flow line problem, the mesh is a plane surface, and a volume for a 3D problem. Regarding this aspect, this solver is certainly not as efficient as a classical SIA solver. But, on the other hand, it works for unstructured grid and non-constant viscosity. The SIA velocities and pressure can be use, for example, as initial conditions for the Stokes Solver. Contrary to the NS solver, the gravity must be orientated along the z-axis.

The SIA solver uses the same input parameters as the NS solver (Viscosity, Density, Viscosity Exponent, Flow BodyForce,…). Doesn't work with the build-in Glen's flow law (TODO). Needs to run first the FlowDepth solver.

The basal velocities are given as Dirichlet BC on the bedrock surface. The SSA Solver can be used to this purpose.

More information regarding how the SIA is solved using the SIASolver can be found here.

SIF contents

The required keywords in the SIF file for this solver are:

```! Dummy solver just here to declare SIAFlow
! as a true variable (not an exported variable)
Solver 2
Equation = "SIA Variable"
Procedure = File "ElmerIceSolvers" "SIAVariable"
Variable = "SIAFlow"
Variable DOFs = 4  ! 4 in 3D (u,v,w,p), 3 in 2D (u,v,p)
End

Solver 3
Equation = "SIA"
Procedure = File "ElmerIceSolvers" "SIASolver"
Variable = -nooutput "SIAvar"
Variable DOFs = 1

Linear System Solver = "Direct"
Linear System Direct Method = umfpack

Steady State Convergence Tolerance = Real 1.0e-3
End

!!! bedrock
Boundary Condition 5
Target Boundaries = 5
SIAFlow 1 = Real 0.0e0
SIAFlow 2 = Real 0.0e0
SIAFlow 3 = Real 0.0e0
End

!!! free surface
Boundary Condition 6
Target Boundaries = 6
Save Line = Logical True
SIAFlow 4 = real 0.0  !(p=0)
Depth = real 0.0
End

```

Examples

An example using the `SIASolver` applied to experiment A160 of ISMIP-HOM benchamrks can be found in `[ELMER_TRUNK]/elmerice/Tests/SIA`.