Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmerice/Tests/DGsolver/density.sif
3206 views
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! All units are in MPa - m - a 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! DGSolver test modified September 2020 - OG

Check Keywords Warn
echo on

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! HEADER
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Header
  Mesh DB "." "cube"
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! CONSTANTS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Constants
  Density Name = String "DGDens"
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! SIMULATION
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Simulation
  Coordinate System = "Cartesian 3D"
  Simulation Type = "Transient"

  Timestepping Method = "bdf"
  BDF Order = 1
  Timestep Intervals = 10
  Output Intervals = 1
  Timestep Sizes = 1.0
  
  Steady State Max Iterations  = 1
  Steady State Min Iterations  = 1 
  
! Post File = "dgsolver.vtu"
  max output level = 3

  vtu: Discontinuous Galerkin = Logical True
  Initialize Dirichlet Conditions = logical True
End  

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! BODIES (i.e., domains to compute on)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Body 1
   Equation = 1
   Material = 1
   Body Force = 1
   Initial Condition = 1
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! BODY FORCE
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Body Force 1
  Porous Force 1 = Real 0.0E00
  Porous Force 2 = Real 0.0E00
  Porous Force 3 = Real -0.008996     
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! MATERIAL
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Material 1
!!!~~~ For the Porous solver~~~~~~
  Powerlaw Exponent = Real 3.0 
  Min Second Invariant = Real 1.0E-20
  Fluidity Parameter = Real 20.0  ! MPa^{-3}a^{-1} 

!!!~~~ For the AdvReact solver~~~~~~
!! Relative density must stay < 1
   DGDens Upper Limit = Real 1.0

!! a minimum relative density is recommended for the Porous solver : no less than pure snow density !
   DGDens Lower Limit = Real 0.2

!!Reaction rate is equal to Zero
   DGDens Gamma = Real 0.0
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! INITIAL CONDITIONS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Initial Condition 1
  Porous 1 = Real 0.0
  Porous 2 = Real 0.0
  Porous 3 = Real 0.0
  Porous 4 = Real 0.0
  
  DGDens = Variable Coordinate 3
    REAL MATC "1.0-0.6*tx/100" 
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! SOLVERS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Solver 1
  Equation = String "PorousFlow"
  Procedure = "ElmerIceSolvers" "PorousSolver"
  Variable = "Porous"
  Variable DOFs = 4

  Optimize Bandwidth = False
! Use p elements -> Incompatible with AdvReact !!!!
! Element = "p:1 b:3"
! Stablization Method = String pBubbles

  Linear System Solver = "Direct"

  Nonlinear System Convergence Tolerance = 1.0E-05
  Nonlinear System Max Iterations = 50

  Steady State Convergence Tolerance = 1.0E-03
End

Solver 2
  Equation = "AdvReact"
  Procedure = File "AdvectionReaction" "AdvectionReactionSolver"
! this is the DG variable, which is not part of the output
  Variable = "DGDens"
! this tells that the solver is run on DG mesh
  Discontinuous Galerkin = Logical True
!  Bubbles in Global System = Logical False
! the solver can account for upper and lower limits of the variable
! imposed by formulation of an variational inequality (VI)
! next line switches the VI to be accounted for
  Limit Solution = Logical True

!  Linear System Solver = Direct

  Linear System Solver = "Iterative"
  Linear System Iterative Method = "BiCGStab"
  Linear System Max Iterations  = 1000
  Linear System Preconditioning = "ILU0"
  Linear System Convergence Tolerance = 1.0e-06

!! Variational inequality makes it a non-linear problem
  Nonlinear System Max Iterations = 40
  Nonlinear System Min Iterations = 2
  Nonlinear System Convergence Tolerance = 1.0e-04
  
! This is the variable that is used to interpolate
! the DG solution to the regular FEM mesh. Required
! for the interpolation needed in case of remesh 
  Exported Variable 1 = String "Relative Density"
  Exported Variable 1 DOFS = 1
End

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! EQUATION
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Equation 1
   Active Solvers(2) = Integer 1 2   
   Flow Solution Name = String "Porous"
   Convection = String "Computed"
End


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! BOUNDARY CONDITIONS
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Boundary Condition 1
  Target Boundaries  = 6
  DGDens = Real 0.4 
End

Boundary Condition 2
  Target Boundaries  = 5
  DGDens = Real 1.0 
  Porous 1 = Real 0.0
  Porous 2 = Real 0.0
  Porous 3 = Real -1.0
End

Boundary Condition 3
   Target Boundaries(4)  = 1 2 3 4
   Normal-Tangential Porous = Logical True
   Porous 1 = Real 0.0
End

Solver 2 :: Reference Norm = Real 0.919542625
Solver 2 :: Reference Norm Tolerance = Real 1E-04