!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !! !! 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