Warning: Undefined array key 1 in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 78
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/auth.php on line 431
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
Warning: Cannot modify header information - headers already sent by (output started at /home/np29546/public_html/elmerice/wiki/inc/auth.php:78) in /home/np29546/public_html/elmerice/wiki/inc/Action/Export.php on line 104
~~NOTOC~~
===== User Function USF_Zs =====
==== General Informations ====
* **USF Fortran File:** ''USF_Zs.f90''
* **USF Name:** ''ZsIni'', ''ZsMZsIni'', ''ZsTopIni'', ''ZsTopMZsIni'',...
* **Required Input Variable(s):** ''Zs'' or ''Zs Top'' or ''Zs Bottom''
==== General Description ====
The aim of these user functions is to get the appropriate value of the mesh update from the surface displacement.
The first type of user function (''~Ini'') is used to initialize the free surface elevation (surface elevation equals to the altitude of the nodes belonging on this surface). The second type (''~MZsIni'') calculate the mesh update variable as the new surface elevation minus the initial elevation.
As presented [[tips:freesurface|here]], these user functions can be easily replaced by MATC functions (recalling that a MATC function consumes more cpu than a user function).
==== SIF contents ====
The required keywords in the SIF file for this solver are:
Initial Condition 2
Zs Top = Variable Coordinate 3
Real Procedure "ElmerIceUSF" "ZsTopIni"
End
Initial Condition 3
Zs Bottom = Variable Coordinate 3
Real Procedure "ElmerIceUSF" "ZsBottomIni"
End
! Bottom boundary condition
Boundary Condition 1
Target Boundaries = 1
!!! this BC is equal to body no. 3 !!!
Body Id = 3
Mesh Update 1 = Real 0.0
Mesh Update 2 = Real 0.0
Mesh Update 3 = Variable Zs Bottom
Real Procedure "ElmerIceUSF" "ZsBottomMzsIni"
End
! Upper Surface
Boundary Condition 2
Target Boundaries = 2
!!! this BC is equal to body no. 2 !!!
Body Id = 2
Mesh Update 1 = Real 0.0
Mesh Update 2 = Real 0.0
Mesh Update 3 = Variable Zs Top
Real Procedure "ElmerIceUSF" "ZsTopMzsIni"
End
==== Examples ====
Examples of the usage of these user functions can be found in the [[:courses:courses|Elmer/Ice course material]] (ISMIP application for one upper free surface and TĂȘte Rousse application for an upper and lower free surfaces).