Mass Transport Solution

Physical basis

Conservation of mass

The mass transport equation is derived from the depth-integrated form of the mass conservation equation and reads:

Equation 1

where:

  • Equation 2 is the depth-averaged velocity vector
  • Equation 3 is the ice thickness
  • Equation 4 is the surface accumulation (in m/yr of ice equivalent, positive for accumulation)
  • Equation 5 is the basal melting (in m/yr of ice equivalent, positive for melting)

For full-Stokes models, free surface equations are solved for the upper surface and the base of floating ice:

Equation 6

and:

Equation 7

where:

  • Equation 8 is the elevation of the ice upper surface
  • Equation 9 is the elevation of the floating ice lower surface
  • Equation 10 are the ice velocity components at the upper surface Equation 11
  • Equation 12 are the ice velocity components at the base Equation 13

Boundary conditions

Ice thickness is imposed at the inflow boundary:

Equation 14

For free surfaces models, both Equation 16 and Equation 15 are constrained at the inflow boundary.

Numerical implementation

Mass transport is solved using finite elements in space, and implicit finite difference in time. To stabilize the equation, a stabilization term might be added to the left hand side, for example:

Equation 17

where Equation 18 is the artificial diffusivity. We take:

Equation 19

There are other stabilization schemes available in ISSM: (1) Artificial Diffusion, (2) Streamline Upwinding, (3) Discontinuous Galerkin (DG), (4) Flux Corrected Transport (FCT), and (5) Streamline Upwind Petrov-Galerlin (SUPG). They can used by setting:

>> md.masstransport.stabilization = 1;

Model parameters

The parameters relevant to the mass transport solution can be displayed by running:

>> md.masstransport
  • md.masstransport.spcthickness: thickness constraints (NaN means no constraint)
  • md.masstransport.hydrostatic_adjustment: adjustment of ice shelves upper and lower surfaces: 'Incremental' or 'Absolute'
  • md.masstransport.stabilization: 0: no stabilization, 1: artificial diffusion, 2: streamline upwinding 3: discontinuous Galerkin, 4: flux corrected transport (FCT), 5: streamline upwind Petrov-Galerkin (SUPG)
  • md.masstransport.penalty_factor: offset used by penalties
Equation 20
  • md.masstransport.vertex_pairing: pairs of vertices that are penalized (for periodic boundary conditions only)

The solution will also use the following model fields:

  • md.smb.ablation_rate: surface ablation rate (in meters)
  • md.smb.mass_balance: surface mass balance (in meters)
  • md.initialization.vx: x component of velocity
  • md.initialization.vy: y component of velocity
  • md.basalforcings.groundedice_melting_rate: basal melting rate applied on grounded ice (positive if melting)
  • md.basalforcings.floatingice_melting_rate: basal melting rate applied on floating ice (positive if melting)
  • md.smb.mass_balance: surface mass balance (in meters/year ice equivalent)
  • md.timestepping.time_step: length of time steps (in years)

Running a simulation

To run a simulation, use the following command:

>> md = solve(md,'Masstransport');

The first argument is the model, the second is the nature of the simulation one wants to run. This will compute one time step of the mass transport equation; use the transient solution for multiple time steps.