SIASolver.f90
SIAVariable
and SIASolver
SIAFlow
Depth
, FreeSurfGrad1
and FreeSurfGrad2
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.
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) ! to allow access to previous values 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
An example using the SIASolver
applied to experiment A160 of ISMIP-HOM benchamrks can be found in [ELMER_TRUNK]/elmerice/Tests/SIA
.