This is an old revision of the document!
important changes have been made in SSABasalSolver; This doc applies from Rev. 6440
SSASolver.f90
SSABasalSolver
, (2) GetMeanValueSolver
and (3) SSASolver
SSAVelocity
Mean Viscosity
and Mean Density
SSAFlow
Zb
, Zs
Depth
Depth
, FreeSurfGrad1
, FreeSurfGrad2
and SSABasalFlow
As the SIA Solver, the SSA 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 SSA solver. But, on the other hand, it works for unstructured grid and non-constant viscosity. The SSA 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 SSA 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).
The SSA solution requires to run first the FlowDepth solver. After this, the sequence of the solvers is:
GetMeanValueSolver
routine to infer the vertically integrated value of the viscosity and the mean density. SSABasalSolver
solver. SSASolver
routine (no vertical variation of the velocities) or the SIA Solver using the SSABasalFlow
solution as a Dirichlet boundary condition for the SIA velocity. The required keywords in the SIF file for this solver are:
Solver 2 Equation = "SSA-IntValue" Procedure = File "ElmerIceSolvers" "GetMeanValueSolver" Variable = -nooutput String "Integrated variable" Variable DOFs = 1 Exported Variable 1 = String "Integrated Viscosity" Exported Variable 1 DOFs = 1 Exported Variable 2 = String "Mean Density" Exported Variable 2 DOFs = 1 Linear System Solver = Direct Linear System Direct Method = umfpack Steady State Convergence Tolerance = Real 1.0e-3 End ! Solver 3 Equation = "SSA-BasalVelo" Procedure = File "ElmerIceSolvers" "SSABasalSolver" Variable = String "SSABasalFlow" Variable DOFs = 2 ! 2 in 3D Linear System Solver = Direct Linear System Direct Method = umfpack Nonlinear System Max Iterations = 100 Nonlinear System Convergence Tolerance = 1.0e-5 Nonlinear System Relaxation Factor = 1.00 Steady State Convergence Tolerance = Real 1.0e-3 End Solver 4 Equation = "SSA Velocity" Procedure = File "ElmerIceSolvers" "SSASolver" Variable = -nooutput String "varSSA" Variable DOFs = 1 Exported Variable 1 = String "SSAFlow" Exported Variable 1 DOFs = 4 ! 3 in 2D, 4 in 3D Linear System Solver = Direct Linear System Direct Method = umfpack Steady State Convergence Tolerance = Real 1.0e-3 End ! SSA equation only solved on the bedrock boundary Equation 2 Active Solvers(1) = 3 End !!! bedrock Boundary Condition 5 Target Boundaries = 5 Body Id = Integer 2 SSAFlow 1 = Equals SSABasalFlow 1 SSAFlow 2 = Equals SSABasalFlow 2 SSAFlow 3 = Real 0.0e0 SSA Slip Coefficient 1 = Variable Coordinate 1, Coordinate 2 Real MATC "1000.0e-6*(1.0+sin(2.0*pi*tx(0)/L)*sin(2.0*pi*tx(1)/L))" SSA Slip Coefficient 2 = Variable Coordinate 1, Coordinate 2 Real MATC "1000.0e-6*(1.0+sin(2.0*pi*tx(0)/L)*sin(2.0*pi*tx(1)/L))" End !!! Upper free surface Boundary Condition 6 Target Boundaries = 6 Depth = Real 0.0 Integrated Viscosity = Real 0.0 Mean Density = real 0.0 SSAFlow 4 = Real 0.0 ! p=0 at the bottom End
If one wants to solve the SSA + SIA, the sif will read:
Solver 4 Equation = "SIA Velocity" Procedure = File "SIASolver" "SIASolver" Variable = -nooutput String "varSIA" Variable DOFs = 1 Exported Variable 1 = String "SIAFlow" Exported Variable 1 DOFs = 4 ! 3 in 2D, 4 in 3D 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 Body Id = Integer 2 SIAFlow 1 = Equals SSABasalFlow 1 SIAFlow 2 = Equals SSABasalFlow 2 SIAFlow 3 = Real 0.0e0 ... End !!! Upper free surface Boundary Condition 6 Target Boundaries = 6 ... SIAFlow 4 = Real 0.0 ! p=0 at the bottom End
If the front is in contact with the ocean, this boundary condition reads:
$rhow = 1000.0/(1.0e6*yearinsec^2) Constants Water Density = Real $rhow End !!! BC Lateral Ice-Shelf (air or sea contact) Boundary Condition 2 Target Boundaries = 2 Calving Front = Logical True End
For examples look in your elmer source distribution under [ELMER_TRUNK]/elmerice/examples/Test_SSA