PISM, A Parallel Ice Sheet Model
stable v2.1.1 committed by Constantine Khrulev on 2024-12-04 13:36:58 -0900
|
Implements a functional for log-relative errors. More...
#include <IPLogRelativeFunctional.hh>
Public Member Functions | |
IPLogRelativeFunctional (std::shared_ptr< const Grid > grid, array::Vector &u_observed, double eps, array::Scalar *weights=NULL) | |
virtual | ~IPLogRelativeFunctional () |
virtual void | normalize (double scale) |
Determine the normalization constant for the functional. More... | |
virtual void | valueAt (array::Vector &x, double *OUTPUT) |
Computes the value of the functional at the vector x. More... | |
virtual void | gradientAt (array::Vector &x, array::Vector &gradient) |
Computes the gradient of the functional at the vector x. More... | |
Public Member Functions inherited from pism::inverse::IPFunctional< array::Vector > | |
IPFunctional (std::shared_ptr< const Grid > grid) | |
virtual | ~IPFunctional () |
Protected Attributes | |
array::Vector & | m_u_observed |
array::Scalar * | m_weights |
double | m_normalization |
double | m_eps |
Protected Attributes inherited from pism::inverse::IPFunctional< array::Vector > | |
std::shared_ptr< const Grid > | m_grid |
fem::ElementIterator | m_element_index |
fem::Q1Element2 | m_element |
Implements a functional for log-relative errors.
Specifically, given a reference function \(u_{obs}=[U_i]\),
\[ J(x) = c_N \sum_i \log\left(1+W_i\frac{|X_i|^2}{|U_{i}|^2+\epsilon^2}\right) \]
where \(\epsilon={\tt inv_ssa_velocity_eps}\) and \(w\) is an optionally provided weight function. The normalization constant \(c_N\) is determined implicitly by normalize().
Definition at line 36 of file IPLogRelativeFunctional.hh.