Path: blob/devel/elmerice/Solvers/Documentation/AdjointSSA_CostFluxDivSolver.md
3206 views
AdjointSSA : Flux divergence cost solver {#ssa_fluxdiv_cost}
Module name: AdjointSSA_CostFluxDivSolver.F90 Module subroutines: AdjointSSA_CostFluxDivSolver Module authors: Fabien Gillet-Chaulet (IGE-Grenoble) Document authors: Fabien Gillet-Chaulet Document edited: 28/04/2020
Required input variables:
Variable solution of the direct problem (SSA solver) (SSAVelocity [hard coded])
top surface elevation : Zs [hard coded]
bottom surface elevation : Zb [hard coded]
**output variables: **
CostValue [computed cost can be a global variable]
Velocityb [derivative with respect to the ssavelocity]
[Optional] DJDZb [derivative with respect to Zb]
[Optional] DJDZs [derivative with respect to Zs]
Introduction
Compute a cost function that compares the diagnostic model thickness rate of change with the observed as
is the diagnostic flux divergence
the top surface mass balance (>0 for accumulation)
the bottom surface mass balance (>0 for accumulation)
In general flux divergences anomalies are due to uncertainties in the bedrock topography and others model assumptions, so that adjusting only the friction parameter will not allow to perfectly fit the observations. But adding this cost function in addition to the direct comparison with observed surface velocities may allow to reduce initial flux divergence anomalies. Putting too much weight to this cost function may tend to decrease the magnitude of the velocity at the expense of observations.
As this cost function depends on the solution of the SSA, it has to be run before the adjoint of the linear system.
The sequence in the .sif will usually be as follow:
Compute the velocity using the SSA solver
Compute a cost function that measures the difference between the model velocities and some observation
Compute the Flux divergence cost
Compute the solution of the adjoint linear system
Compute the gradient of your cost functions with respect to your input parameters (SSA Gradient Solver)
Keywords
Solver section
Body Force section
Provide values for the mass balance and observation in the body force section.
You can use keywords related to passive elements if you want to skip the evaluation of the cost function for some elements. By default the name of the solver variable is [Equation_name]_var.