Inversions

Introduction

Inversions are used to constrain poorly known model parameters such as basal friction. The method consists of finding a set of model inputs that minimizes the cost function Equation 2 that measures the misfit between model and observations. For example, inverse methods are used to infer the basal friction Equation 1:

Equation 3

and/or the depth-averaged ice hardness, Equation 4, in Glen’s flow law:

Equation 5

This section explains how to launch an inverse method and how optimization parameters must be tuned.

Cost functions

Absolute misfit

This is the classic way of calculating a misfit between a modeled and observed velocity field:

Equation 6

where:

  • vx is the x component of the glacier modeled velocity
  • vy is the y component of the glacier modeled velocity
  • vxobs is the x component of the glacier observed velocity
  • vyobs is the y component of the glacier observed velocity

Relative misfit

The relative misfit is defined as follows:

Equation 7

where:

  • Equation 8 is a minimum velocity used to avoid the observed velocity being equal to zero.

Logarithmic misfit

Equation 9

where:

  • v is the glacier modeled velocity magnitude
  • vobs is the glacier observed velocity magnitude
  • Equation 10 is a minimum velocity used to avoid the observed velocity being equal to zero

Thickness misfit

Equation 11

where:

  • H is the ice thickness
  • Hobs is the measured ice thickness

Drag gradient

Equation 12

where:

  • Equation 13 is a Tikhonov regularization parameter

Thickness gradient

Equation 14

where:

  • Equation 15 is a Tikhonov regularization parameter

Model parameters

The parameters relevant to the stress balance solution can be displayed by typing:

>> md.inversion
  • md.inversion.iscontrol: 1 if inversion is activated, 0 for a forward run (default)
  • md.inversion.incomplete_adjoint: 1 linear viscosity, 0 non-linear viscosity
  • md.inversion.control_parameters: parameters that are inferred (ex: {'FrictionCoefficient'} or {'MaterialsRheologyBbar'}
  • md.inversion.cost_functions: list of individual cost functions that are summed to calculate the final cost function Equation 16 to be minimized (ex: [101, 501])
  • md.inversion.cost_functions_coefficients: weight of each individual cost function previously defined for each vertex (more/no weight can be put on certain regions)
  • md.inversion.min_parameters: minimum value for the inferred parameter
  • md.inversion.max_parameters: maximum value for the inferred parameter
  • md.inversion.vx_obs: x component of the surface velocity
  • md.inversion.vy_obs: y component of the surface velocity
  • md.inversion.vel_obs: surface velocity magnitude
  • md.inversion.thickness_obs: measured ice thickness

Minimization algorithms

Depending on the class of md.inversion, several optimization algorithm are available:

  • Brent search algorithm (md.inversion = inversion(), the default)
  • Toolkit for Advanced Optimization (TAO) (md.inversion = taoinversion())
  • M1QN3 algorithm (md.inversion = m1qn3inversion()) Each minimizer has its own optimization parameters described below.

Brent search minimizers

  • md.inversion.nsteps: number of optimization searches (gradient evaluations)
  • md.inversion.maxiter_per_step: maximum iterations during each optimization step
  • md.inversion.step_threshold: decrease threshold for next step (default is 30%)
  • md.inversion.gradient_scaling: scaling factor on gradient direction during optimization, for each optimization step
Equation 17

Toolkit for Advanced Optimization (TAO)

ISSM has an interface to the Toolkit for Advanced Optimization (TAO) [Munson2012]. Here is a list of the relevant parameters:

  • md.inversion.maxsteps: maximum number of iterations (gradient computation)
  • md.inversion.maxiter: maximum number of Function evaluation (forward run)
  • md.inversion.algorithm: inimization algorithm. ex: 'tao_blmvm', 'tao_cg', 'tao_lmvm'
  • md.inversion.fatol: cost function absolute convergence criterion (defined below)
  • md.inversion.frtol: cost function relative convergence criterion (defined below)
  • md.inversion.gatol: gradient absolute convergence criterion (defined below)
  • md.inversion.grtol: gradient relative convergence criterion (defined below)
  • md.inversion.gttol: gradient relative convergence criterion 2 (defined below) with the following convergence criteria:
Equation 18

where:

  • Equation 20 is the cost function at Equation 19
  • Equation 22 is the cost function gradient with respect to Equation 21
  • Equation 23 is the estimated “true” minimum
  • Equation 24 is the initial guess

M1QN3

ISSM has an interface to M1QN3 (Inria) [Gilbert1989]. This interface was largely based on [Nardi2009]. Here is a list of the relevant parameters:

  • md.inversion.maxsteps: maximum number of iterations (gradient computation)
  • md.inversion.maxiter: maximum number of Function evaluation (forward run)
  • md.inversion.dxmin: convergence criterion: two points less than dxmin from each other (sup-norm) are considered identical
  • md.inversion.gttol: gradient relative convergence criterion 2 (defined below)

Running an inversion

To launch an inversion, run a stress balance solution with md.inversion.iscontrol = 1:

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

References