Warning: Undefined array key 1 in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 78

Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 431

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

This is an old revision of the document!


Solver Shallow Stream/Shelf Approximation (SSA)

General Informations

:!: important changes have been made in SSABasalSolver; This doc applies from Rev. 6440

  • Solver Fortran File: SSASolver.f90
  • Solver Name: (1) SSABasalSolver, (2) GetMeanValueSolver and (3) SSASolver
  • Required Output Variable(s):
    • (1) SSAVelocity
    • (2) Mean Viscosity and Mean Density
    • (3) SSAFlow
  • Required Input Variable(s):
    • (1) Zb, Zs
    • (2) Depth
    • (3) Depth, FreeSurfGrad1, FreeSurfGrad2 and SSABasalFlow
  • Optional Output Variable(s): None
  • Optional Input Variable(s): None

General Description

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:

  • (1) Run the GetMeanValueSolver routine to infer the vertically integrated value of the viscosity and the mean density.
  • (2) Compute the SSA solution on the bedrock boundary using the SSABasalSolver solver.
  • (3) Export vertically the solution previously computed on the bedrock over the whole domain. This can be either done using the 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.

SIF contents

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

Examples

For examples look in your elmer source distribution under [ELMER_TRUNK]/elmerice/examples/Test_SSA

solvers/ssa.1385382331.txt.gz · Last modified: 2013/11/25 12:25 by fgillet
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0