**Solver Fortran File:**`EPLSolver.f90`

**Solver Name:**`EPLSolver`

**Required Output Variable(s):**`EPLHead`

,`Open EPL`

and`EPLHead Homologous`

**Required Input Variable(s):**`IDSHead Residual`

and`IDSHead`

**Optional Output Variable(s):**`None`

**Optional Input Variable(s):**`EPL Head Upper Limit`

(required if the upper limit is used)

This solver treat the diffusion equation for the efficient drainage system. The activation of the layer is dealt by the `Open EPL`

mask. The upper limit is needed to increase the size of the drainage system once the water head in the efficient layer reaches a given value.

The required keywords in the SIF file for this solver are given bellow. The IDSSolver is needed to use the efficient layer solver, in the following, we assume that the SIF file is written as shown in the IDSSolver section, the SIF should then be overload as follow.

! Initial condition for the hydrology Initial Condition 2 EPLHead = real 0.0 End

The transfer between the two layers is dealt here. An example is given here with the WaterTransfer user function, but one could choose to define an other type of transfer (just keep in mind the sign of the transfer, positive if the flux is from the efficient to the inefficient system).

Body Force 1 EPLToIDS Transfer = Variable Coordinate 1 Real Procedure "ElmerIceUSF" "EPLToIDS" EPLHead Passive = Equals Open EPL Active Element Min Nodes = Integer 1 End

Material 1 !this is a variable of the transfer USF Leakage Factor = Real 20.0 ! EPL Solver EPL Transmitivity = Real 2.5e5 EPL Porosity = Real 0.4 EPL Thickness = Real 1.0 EPL Compressibility = Real 1.0e-2 !Upper limit at the flotation limit EPLHead Upper Limit = Variable Depth, coordinate 3 Real matc "tx(1)+tx(0)*0.91" End

Solver 2 Equation = "EPL Equation" Procedure = "ElmerIceSolvers" "EPLSolver" Variable = EPLHead Variable DOFs = 1 Steady State Convergence Tolerance = Real 1.0E-5 Linear System Solver = Direct Linear System Direct Method = umfpack Linear System Convergence Tolerance = Real 1.0E-7 Linear System Residual Output = integer 1 Nonlinear System Max Iterations = Integer 100 Nonlinear System Convergence Tolerance = Real 1.0E-6 Nonlinear System Relaxation Factor = Real 1.0 IDS Residual Name = String "IDSHead Residual" IDS Load Name = String "IDSHead" !This deals with the upper limit (enabled if TRUE) Apply Dirichlet = Logical TRUE Exported Variable 2 = String "EPLHead Homologous" Exported Variable 3 = String "Open EPL" End

Equation 2 Active Solvers (2) = 1 2 End

The boundary condition of the hydrological model should be applied on a 1D boundary located at the corner between the side and bed of the mesh.

Boundary Condition 4 Name = "Lower frame" Target Boundaries = 4 ! Flux condition on the borders of the hydrological domain ! Zero flux is not a necessary input as it is the natural ! boundary condition of the system EPLHead Flux BC = Logical True EPLHead Water Flux = Real 0.0 End Boundary Condition 5 Name = "Glacier snout" Target Boundaries = 5 ! Take care to choose a value bellow or equals to the upper 1 limit of the water head EPLHead = variable coordinate 3, depth real matc "tx(0)+0.91*tx(1)" End

Two basic tests can be found in `[ELMER_TRUNK]/elmerice/Tests/Hydro_SedOnly`

and `[ELMER_TRUNK]/elmerice/Tests/Hydro_Coupled`

.

When used this solver can be cited using the following reference :

de Fleurian, B.; Gagliardini, O.; Zwinger, T.; Durand, G.; Le Meur, E.; Mair, D. & Råback, P. A double continuum hydrological model for glacier applications The Cryosphere, 2014, 8, 137-153