This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
solvers:temperature [2012/11/14 22:53] gag [General Informations] |
solvers:temperature [2018/10/28 14:28] tzwinger [Examples] |
||
---|---|---|---|
Line 4: | Line 4: | ||
==== General Informations ==== | ==== General Informations ==== | ||
- | * **Solver Fortran File:** //TemperateIce.f90// | + | * **Solver Fortran File:** ''TemperateIce.f90'' |
- | * **Solver Name:** //TemperateIceSolver// | + | * **Solver Name:** ''TemperateIceSolver'' |
- | * **Required Output Variable(s):** //Temp// (User defined) | + | * **Required Output Variable(s):** ''Temp'' (user defined) |
- | * **Required Input Variable(s):** //Flow Solution// | + | * **Required Input Variable(s):** A ''Flow Solution'' (in ''Flow Solution Name'') |
- | * **Optional Output Variable(s):** //Temp Homologous//, //Temp Residual// | + | * **Optional Output Variable(s):** ''Temp Homologous'', ''Temp Residual'' |
- | * **Optional Input Variable(s):** Deformational Heat //W// | + | * **Optional Input Variable(s):** Deformational Heat ''W'' |
==== General Description ==== | ==== 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. | + | 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. |
+ | |||
+ | The volumetric heat source term can be estimated from the ice flow deformational heat using the [[:solvers:deformationalheat|DeformationalHeat Solver]]. | ||
+ | |||
+ | **Looping option, added 6th June 2013 (version 6205)**: It is possible in some cases that the nonlinear convergence tolerance can be reached before all nodes have been properly constrained. At this point the solver can exit with some nodes retaining temperatures above the upper limit. A new option was added to check for nodes with temperatures above the limit and to continue looping if such nodes exist. Using this option may cause more iterations but should ensure the upper limit is properly applied at all nodes. To use it add the following line to the temperate ice solver section in the sif file (default is False): | ||
+ | <code> | ||
+ | Loop While Unconstrained Nodes = Logical True | ||
+ | </code> | ||
==== Known bugs ==== | ==== Known bugs ==== | ||
Line 20: | Line 27: | ||
==== SIF contents ==== | ==== SIF contents ==== | ||
- | The required keywords in the SIF file for this solver are: | + | The required keywords in the SIF file for this solver are given below. The MATC functions used here are explain and given on this [[tips:thermoprop|page]]. |
<code> | <code> | ||
- | ! Some useful MATC functions | + | ! Units : MPa - m - yr |
- | !! conductivity | + | $yearinsec = 365.25*24*60*60 |
- | $ function conductivity(T) { _conductivity=9.828*exp(-5.7E-03*T)} | + | |
- | !! capacity | + | |
- | $ function capacity(T) { _capacity=146.3+(7.253*T)} | + | |
- | + | ||
- | !! pressuremeltingpoint | + | |
- | $ function pressuremeltingpoint(PIN) {\ | + | |
- | P = PIN;\ | + | |
- | if (P<0.0) P=0.0;\ | + | |
- | beta=9.8E-08*1.0E06;\ | + | |
- | _pressuremeltingpoint=273.15-(beta*P);\ | + | |
- | } | + | |
!Compute the heat generated by ice deformation | !Compute the heat generated by ice deformation | ||
Line 42: | Line 38: | ||
Variable DOFs = 1 | Variable DOFs = 1 | ||
- | procedure = "./DeformationalHeat" "DeformationalHeatSolver" | + | procedure = "ElmerIceSolvers" "DeformationalHeatSolver" |
Linear System Solver = direct | Linear System Solver = direct | ||
Line 50: | Line 46: | ||
Solver 4 | Solver 4 | ||
Equation = String "Homologous Temperature Equation" | Equation = String "Homologous Temperature Equation" | ||
- | Procedure = File "TemperateIce" "TemperateIceSolver" | + | Procedure = File "ElmerIceSolvers" "TemperateIceSolver" |
! Comment next line in parallel, as EliminateDirichlet does | ! Comment next line in parallel, as EliminateDirichlet does | ||
! not work in parallel | ! not work in parallel | ||
Line 92: | Line 88: | ||
!----------------------------------------------------------- | !----------------------------------------------------------- | ||
Temp Heat Capacity = Variable Temp | Temp Heat Capacity = Variable Temp | ||
- | Real MATC "capacity(tx)*1.0E06*(31556926.0)" | + | Real MATC "capacity(tx)*yearinsec^2" |
! the heat conductivity as a MATC function of temperature itself | ! the heat conductivity as a MATC function of temperature itself | ||
!-------------------------------------------------------------- | !-------------------------------------------------------------- | ||
Temp Heat Conductivity = Variable Temp | Temp Heat Conductivity = Variable Temp | ||
- | Real MATC "conductivity(tx)" | + | Real MATC "conductivity(tx)*yearinsec*1.0E-06" |
! Upper limit - pressure melting point | ! Upper limit - pressure melting point | ||
! as a MATC function of the pressure (what else?) | ! as a MATC function of the pressure (what else?) | ||
Line 110: | Line 106: | ||
Boundary Condition 1 | Boundary Condition 1 | ||
... | ... | ||
- | Temp = Real -10.0 | + | Temp = Real 263.15 |
End | End | ||
Line 120: | Line 116: | ||
!-------------------- | !-------------------- | ||
Temp Flux BC = Logical True | Temp Flux BC = Logical True | ||
- | Temp Heat Flux = Real 56.05E-03 | + | Temp Heat Flux = Real $56.05E-03*yearinsec*1.0E-6 |
+ | !------------------- | ||
+ | ! frictional heat | ||
+ | !-------------------- | ||
+ | Temp Load = Variable Velocity 1 | ||
+ | Real Procedure "ElmerIceUSF" "getFrictionLoads" | ||
End | End | ||
</code> | </code> | ||
+ | |||
+ | See also [[:tips:thermoprop|Thermodynamic Properties]] for heat capacity and conductivity functions. | ||
==== Examples ==== | ==== Examples ==== | ||
- | Download an example using the TemperateIce Solver. TODO | + | An example demonstrating the use of the thermal properties of ice can be found in ''[ELMER_TRUNK]/elmerice/Tests/TemperateIceTest'' |
==== Reference ==== | ==== Reference ==== | ||
When used this solver can be cited using the following reference:\\ | When used this solver can be cited using the following reference:\\ | ||
Zwinger T. , R. Greve, O. Gagliardini , T. Shiraiwa and M. Lyly, 2007. A full Stokes-flow thermo-mechanical model for firn and ice applied to the Gorshkov crater glacier, Kamchatka. Annals of Glaciol., 45, p. 29-37. | Zwinger T. , R. Greve, O. Gagliardini , T. Shiraiwa and M. Lyly, 2007. A full Stokes-flow thermo-mechanical model for firn and ice applied to the Gorshkov crater glacier, Kamchatka. Annals of Glaciol., 45, p. 29-37. |