!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! !!
!! Validation of test-case runs !!
!! !!
!! !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
check keywords warn
echo on
!*****************************************************************
!* GOOD PRACTICE: Always add the variables/constants/functions *
!* at the top of the file *
!*****************************************************************
! Name of output files
$name = "validation_flatslab_ref"
! Source of input files
$datain = "/media/sf_3tb/Nunataks/Validation/Surfaces/"
$outdir = "."
! Define the parameter in MPa - a - m
$slope=0.01
$yearinsec = 365.25*24*60*60
$rhoi = 900.0/(1.0e6*yearinsec^2)
$rhow = 1000.0/(1.0e6*yearinsec^2)
$gravity = -9.81*yearinsec^2*cos(slope)
$gravityx = 9.81*yearinsec^2*sin(slope)
! Prefactor from Cuffey and Paterson (2010) in MPa^{-3} a^{-1}
$A1 = 2.89165e-13*yearinsec*1.0e18
$A2 = 2.42736e-02*yearinsec*1.0e18
$Q1 = 60.0e3
$Q2 = 115.0e3
Header
Mesh DB "." "unstrucmesh"
End
Constants
Water Density = Real $rhow
!Gravity(4) = -0.01 -0.01 1 $gravity
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Simulation
Coordinate System = Cartesian 3D
Simulation Type = Transient
Steady State Max Iterations = 1
Steady State Min Iterations = 1
Extruded Mesh Levels = Integer 10
Timestepping Method = "bdf"
BDF Order = 1
Timestep Intervals = 10
Timestep Sizes = $10/365.25
Output Intervals = 10
Output File = "slab_$name".result" !"
!Restart File = "slab_read_sfc_nunatak0.result"
!Restart Position = 0 ! last solution from restart file!
!Restart Time = Real 0.0
!Restart Before Initial Conditions = Logical True
Max output level = 10
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The ice
Body 1
Name = "glacier"
Equation = 1
Body Force = 1
Material = 1
Initial Condition = 1
End
! The Upper Free Surface
Body 2
Name = "surface"
Equation = 2
Body Force = 2
Material = 2
Initial Condition = 2
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Body Force 1
Flow BodyForce 1 = Real $gravityx
Flow BodyForce 2 = Real 0.0
Flow BodyForce 3 = Real $gravity
End
! Prescribe SMB here in m/a!
Body Force 2
FS Upper Accumulation Flux 1 = Real 0.0e0
FS Upper Accumulation Flux 2 = Real 0.0e0
FS Upper Accumulation Flux 3 = Real 0.0e0
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Initial Condition 1
!Pressure = Real 0.0
Velocity 1 = Real 0.0
Velocity 2 = Real 0.0
Velocity 3 = Real 0.0
Normal Vector 1 = Real 0.0
Normal Vector 2 = Real 0.0
Normal Vector 3 = Real 0.0
Flow Solution Loads 1 = Real 0.0
Flow Solution Loads 2 = Real 0.0
Flow Solution Loads 3 = Real 0.0
Flow Solution Loads 4 = Real 0.0
Bedrock = Real 500.0 !Equals B
End
Initial Condition 2
FS Upper = Real 2000.0 !Equals s
ReferenceFS Upper = Real 2000.0 !Equals s
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Material 1
Density = Real $rhoi
Viscosity Model = String "glen"
Viscosity = 3200.0 ! Dummy but avoid warning output
Glen Exponent = Real 3.0
Rate Factor 1 = Real $A1
Rate Factor 2 = Real $A2
Activation Energy 1 = Real $Q1
Activation Energy 2 = Real $Q2
Glen Enhancement Factor = Real 1.0
Critical Shear Rate = Real 1.0e-10
Limit Temperature = Real -10.0
Constant Temperature = Real -10.0
Cauchy = Logical True
End
Material 2
! Density = Real $rhoi
Min FS Upper = Equals B
Max FS Upper = Real 2500.0
! Real MATC "tx(0)+500.0"
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Equation 1
Active Solvers(8) = 1 2 3 4 5 6 8 9
!Flow Solution Name = String "Flow Solution"
!Convection = String "Computed"
End
Equation 2
Active Solvers(1) = 7
Flow Solution Name = String "Flow Solution"
Convection = String "Computed"
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Solver that reads the Surfaces
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Solver 1
Exec Solver = "Never"
!Exec Solver = "Before All"
Equation = "ReadSurface"
Procedure = "GridDataReader" "GridDataReader"
Filename = File $datain"RestartTestIceStream-Control1.nc"
X Dim Name = File "x"
Y Dim Name = File "y"
X Var Name = String "x"
Y Var Name = String "y"
Epsilon X = Real 1.0e-1
Epsilon Y = Real 1.0e-1
Interpolation Bias = Real 0.0
Interpolation Multiplier = Real 1.0
Enable Scaling = Logical False
Variable 1 = File "s"
Variable 2 = File "B"
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Solver that extrudes the Mesh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Solver 2
Exec Solver = "Before All"
Equation = "MapCoordinateInit"
Procedure = "StructuredMeshMapper" "StructuredMeshMapper"
Active Coordinate = Integer 3
Dot Product Tolerance = Real 0.001
Minimum Height = Real 1.0
Top Surface Variable Name = String "FS Upper"
Bottom Surface Variable Name = String "Bedrock"
Correct Surface = Logical True
End
Solver 3
Equation = "HeightDepth"
Procedure = "StructuredProjectToPlane" "StructuredProjectToPlane"
Active Coordinate = Integer 3
Operator 1 = "Depth"
Operator 2 = "Height"
End
! Needed for Weertman's Law
Solver 4
Exec Solver = "Before Simulation"
Equation = "Normal vector"
Procedure = "ElmerIceSolvers" "ComputeNormalSolver"
Variable = "Normal Vector"
Variable DOFs = 3
!NB: does not need to actually solve a matrix
! hence no BW optimization needed
Optimize Bandwidth = Logical False
! if set to True, all boundary normals would be computed by default
ComputeAll = Logical False
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Solver that actually solves the (Navier-)Stokes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Solver 5
!Exec Solver = "Never"
Equation = "Navier-Stokes"
Stabilize = Logical True
Flow Model = "Stokes"
Calculate Loads = Logical True
Stabilization Method = String Stabilized
!Linear System Solver = Iterative! because geometry is nice (:
!Linear System Iterative Method = BICGStab
Linear System Solver = "Direct"
Linear System Direct Method = "mumps"
Mumps Percentage increase working space = Integer 200
Linear System Preconditioning = ILU0
!Linear System Convergence Tolerance = Real 1.0e-6 !1.0e-6
!Linear System Max Iterations = 5500
!Linear System Residual Output = 500
Linear System Abort Not Converged = True
Nonlinear System Max Iterations = 50
Nonlinear System Convergence Tolerance = 1.0e-5 !1.0e-5
Nonlinear System Newton After Iterations = 5
Nonlinear System Newton After Tolerance = 1.0e-02 !1.0e-2
Nonlinear System Relaxation Factor = 1.00
Steady State Convergence Tolerance = Real 1.0e-3 !1.0e-3
Exported Variable 1 = Flow Solution Loads[Stress Vector:3 CEQ Residual:1]
Exported Variable 2 = -dofs 1 "Bedrock"
Exported Variable 3 = -dofs 1 "s"
Exported Variable 4 = -dofs 1 "B"
End
Solver 6
Exec Solver = "Never"
Equation = "Sij" ! Computation of the stress fields
Procedure = "ElmerIceSolvers" "ComputeDevStress"
Variable = -nooutput "Sij"
Variable DOFs = 1
Exported Variable 1 = -dofs 6 "Stress"
Stress Variable Name = String "Stress"
Flow Solver Name = String "Flow Solution"
Linear System Solver = Direct
Linear System Direct Method = mumps
End
Solver 7
!Exec Solver = "Never"
Exec Solver = "After TimeStep"
Equation = String "Upper Free Surface"
Procedure = "FreeSurfaceSolver" "FreeSurfaceSolver"
Variable = String "FS Upper"
Variable DOFs = 1
Apply Dirichlet = Logical True
!Linear System Solver = Iterative
!Linear System Iterative Method = BICGStab
!Linear System Max Iterations = 500
!Linear System Preconditioning = ILU0
!Linear System Convergence Tolerance = Real 1.0e-9
Linear System Solver = "Direct"
Linear System Direct Method = "mumps"
Mumps Percentage increase working space = Integer 200
Linear System Preconditioning = ILU0
Linear System Convergence Tolerance = Real 1.0e-9
Linear System Max Iterations = 500
Linear System Residual Output = 500
Linear System Abort Not Converged = True
Nonlinear System Max Iterations = 100
Nonlinear System Min Iterations = 2
Nonlinear System Convergence Tolerance = 1.0e-6
Stabilization Method = Stabilized
Flow Solution Name = "Flow Solution"
!Use Accumulation = Logical True
Normal Flux = Logical False
! How much the free surface is relaxed
Relaxation Factor = Real 1.00
Exported Variable 1 = String "FS Upper Residual"
Exported Variable 1 DOFs = 1
Exported Variable 2 = String "ReferenceFS Upper"
Exported Variable 2 DOFs = 1
End
Solver 8
Exec Solver = "After TimeStep"
Equation = "MapCoordinate"
Procedure = "StructuredMeshMapper" "StructuredMeshMapper"
Active Coordinate = Integer 3
Dot Product Tolerance = Real 0.001
Minimum Height = Real 1.0
Top Surface Variable Name = String "FS Upper"
Bottom Surface Variable Name = String "Bedrock"
Correct Surface = Logical True
End
Solver 9
Exec Solver = "After Saving"
Equation = "ResultOutput"
Procedure = File "ResultOutputSolve" "ResultOutputSolver"
Save Geometry IDs = Logical True
Output File Name = File $name"."
Output Format = String "vtu"
Output Directory = File $outdir
Vtu Format = Logical True
End
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! inflow/outflow periodic boundary
Boundary Condition 1
Name = "Inflow"
Target Boundaries(1) = 4
Normal-Tangential Velocity = Logical True
Velocity 1 = Real 0.0
!Velocity 2 = real 0.0
End
Boundary Condition 2
Name = "Outflow"
Target Boundaries(1) = 2
!Periodic BC
!Periodic BC = 1
!Periodic BC Velocity 1 = True
!Periodic BC Velocity 2 = True
!Periodic BC Velocity 3 = True
!Periodic BC Pressure = True
! Non-penetrating BC
Normal-Tangential Velocity = Logical True
Velocity 1 = Real 0.0
End
Boundary Condition 3
Name = "Left"
Target Boundaries(1) = 1
!Normal-Tangential Velocity = Logical True
!Velocity 1 = Real 0.0
End
Boundary Condition 4
Name = "Right"
Target Boundaries(1) = 3
Periodic BC = 3
Periodic BC Velocity 1 = True
Periodic BC Velocity 2 = True
Periodic BC Velocity 3 = True
Periodic BC Pressure = True
End
! Bedrock
Boundary Condition 5
Name = "bed"
Target Boundaries(1) = 5
Body ID = 1
Height = Real 0.0
Bottom Surface = Equals Bedrock ! Natural boundary condition
!--------------------------------------------
! --------- No sliding
! Velocity 1 = Real 0.0
! Velocity 2 = Real 0.0
! Velocity 3 = Real 0.0
!----------- OR -----------------------------
! --------- Sliding
!Normal-Tangential Velocity = Logical True
!Velocity 1 = Real 0.0e0
!Slip Coefficient 2 = Real 0.01
!Slip Coefficient 3 = Real 0.01
!----------- OR -----------------------------
!---------- Weertman
Normal-Tangential Velocity = Logical True
Flow force BC = Logical True
Velocity 1 = Real 0.0e0
Slip Coefficient 2 = Variable Coordinate 1
Real Procedure "ElmerIceUSF" "Sliding_Weertman"
Slip Coefficient 3 = Variable Coordinate 1
Real Procedure "ElmerIceUSF" "Sliding_Weertman"
Weertman Friction Coefficient = Real 1.7235e+4
Weertman Exponent = Real $1.0/3.0
Weertman Linear Velocity = Real 1.0e-4
End
! Upper Surface
Boundary Condition 6
Name = "surface"
Target Boundaries(1) = 6
Body ID = 2
Top Surface = Equals "FS Upper" ! Natural boundary condition
Depth = Real 0.0
End