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

The SSABasalSolver solve the classical SSA equation, it has been modified in Rev. 6440 to be executed either on a grid of dimension lower than the problem dimension itself (i.e. the top or bottom grid of a 2D or 3D mesh for a SSA 1D or 2D problem), or on a grid of the same dimension of the problem (i.e. 2D mesh for a 2D plane view SSA solution).

It will work on a 3D mesh only if the mesh as been extruded along the vertical direction and if the base line boundary conditions have been preserved (to impose neumann conditions).

The mandatory input variables are the bottom surface elevation and top surface elevation variables called Zb and Zs, respectively.

For the Flow law the SSA solver use a “power-law” formulation and use the keywords 'Viscosity Exponent', 'Critical Shear Rate', and “Mean Viscosity”. It Doesn't work with the build-in Glen's flow law (TODO).
Newton linearistaion of the viscosity can be used usning the keywords 'Nonlinear System Newton After Tolerance' and/or 'Nonlinear System Newton After Iterations'. It is automatically reset to False at the beginning of a new iteration.

The “Mean Density” and “Mean Viscosity”, if not uniform along the vertical direction, can be computed using the GetMeanValueSolver routine or the “StucturedProjectToPlane” solver (prefered solution).

Contrary to the NS solver, the gravity must be orientated along the z-axis and it taken form the value of Flow BodyForce 2 for a SSA-1D problem or Flow BodyForce 3 for a SSA-2D problem.

A Neumann condition on the lateral boundaries can be applied with the keyword “Calving front = Logical True” in the Bounadry condition section. The condition is : 0.5 * g * (rho_ice * h^2 - rho_water * h_im^2) where

  1. g is the absolute value of the gravity taken from Flow BodyForce i“
    - rho_ice is the ice “Mean Density”
    - rho_water is “water density” taken from the “constants” section (or default=1.03225e-18)
    - h is the front thickness computed as Zs-Zb
    - h_im is the thickness below sea level computed as “Sea Level - Zb”, where “Sea Level” is taken from the “constants” section (or default=0.0).
    Note that in the absence of explicit boundary condition (no dirichlet condition or “Calving front = Logical True” not found) the natural boundary condition is force equilibrium (rho_ice * h^2 = rho_water * h_im^2). The slip coefficient coefficient values are imposed in the Material section with the keywords “SSA slip coefficient i = Real …” with i=1,2
    The SSA velocities and pressure can be use, for example, as initial conditions for the Stokes Solver.
    When the SSA solution is computed on a boundary of a mesh of dimension larger than the SSA problem (e.g. a 3D mesh for a SSA-2D problem), the SSA solution computed on the boundary - can be exported on the whole mesh using (i) The “StructuredProjectToPlane” solver (prefered solution) or (ii) the
    SSASolver'' routine
  2. can be used as a dirichlet condition for the SIA velocity (see the SIA Solver).

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.1385385405.txt.gz · Last modified: 2013/11/25 13:16 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