This is an old revision of the document!

Warning: Declaration of syntax_plugin_mathpublish::handle(\$match, \$state, \$pos, &\$handler) should be compatible with DokuWiki_Syntax_Plugin::handle(\$match, \$state, \$pos, Doku_Handler \$handler) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

Warning: Declaration of syntax_plugin_mathpublish::render(\$mode, &\$R, \$data) should be compatible with DokuWiki_Syntax_Plugin::render(\$format, Doku_Renderer \$renderer, \$data) in /home/np29546/public_html/elmerice/wiki/lib/plugins/mathpublish/syntax.php on line 0

## TemperateIce Solver

### General Informations

• Solver Fortran File: TemperateIce.f90
• Solver Name: TemperateIceSolver
• Required Output Variable(s): Temperature
• Required Input Variable(s): Flow Solution
• Optional Output Variable(s): None
• Optional Input Variable(s): None

### General Description

This solver treats the heat transfer problem with respect to an upper limit of the temperature (usually with ice the pressure-melting point, T< T_pm). Optionally, such a limit (and furthermore also a lower limit, e.g., T > 0 K) is introduced by solving the consequent `variational inequality` problem using an algorithm that - in comparison to the free surface problem - can be interpreted as a contact problem solver. In case of temperature, it basically introduces additional heat sinks/sources in order to comply with the constraints.

### Known bugs

• timestep was not initialized; caused excessive heating if transient simulations with more than one iteration at the steady state level were done. Fixed June 2012

### SIF contents

The required keywords in the SIF file for this solver are:

```'''Keywords of''' '''TemperateIceSolver''':
<pre>Solver 1
Equation = String "Homologous Temperature Equation"
Procedure =  File "TemperateIce" "TemperateIceSolver"
! Comment next line in parallel, as EliminateDirichlet does
! not work in parallel
!------------------------------------------------------------
Before Linsolve = "EliminateDirichlet" "EliminateDirichlet"
Variable = String "Temp"
Variable DOFs = 1
Linear System Solver = "Iterative"
Linear System Iterative Method = "BiCGStab"
Linear System Max Iterations = 500
Linear System Convergence Tolerance = 1.0E-07
Linear System Abort Not Converged = True
Linear System Preconditioning = "ILU0"
Linear System Residual Output = 1
Steady State Convergence Tolerance = 1.0E-04
Nonlinear System Convergence Tolerance = 1.0E-05
Nonlinear System Max Iterations = 50
Nonlinear System Relaxation Factor = Real 9.999E-01
! uses the contact algorithm (aka Dirichlet algorithm)
!-----------------------------------------------------
Apply Dirichlet = Logical True
Stabilize = True
! those two variables are needed in order to store
! the relative or homologous temperature as well
! as the residual
!-------------------------------------------------
Exported Variable 1 = String "Temp Homologous"
Exported Variable 1 DOFs = 1
Exported Variable 2 = String "Temp Residual"
Exported Variable 2 DOFs = 1
End

Body Force 1
...
Temp Volume Source = Real 1.0E00 ! The volumetric heat source
End

Material 1
...
! the heat capacity as a MATC function of temperature itself
!-----------------------------------------------------------
Temp Heat Capacity = Variable Temp
Real MATC "capacity(tx)*1.0E06*(31556926.0)"
! the heat conductivity as a MATC function of temperature itself
!--------------------------------------------------------------
Temp Heat Conductivity = Variable Temp
Real MATC "conductivity(tx)"
! Upper limit - pressure melting point
!  as a MATC function of the pressure (what else?)
!-------------------------------------------------
Temp Upper Limit = Variable Pressure
Real MATC "pressuremeltingpoint(tx)"
! lower limit (to be save) as 0 K
!--------------------------------
Temp Lower Limit = Real 0.0
End

Boundary Condition 1
...
! Temperature distribution as a MATC function of elevation
!---------------------------------------------------------
Temp = Variable Coordinate 3
Real MATC "SurfTemp(tx)"
End

Boundary Condition 2
...
!-------------------
! geothermal heatflux
!--------------------
Temp Flux BC = Logical True
Temp Heat Flux = Real 56.05E-03
End</pre>```