PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
pism::inverse::IPGroundedIceH1NormFunctional2S Class Reference

Implements a functional corresponding to (the square of) an \(H^1\) norm of a scalar valued function over a region with only grounded ice. More...

#include <IPGroundedIceH1NormFunctional.hh>

+ Inheritance diagram for pism::inverse::IPGroundedIceH1NormFunctional2S:

Public Member Functions

 IPGroundedIceH1NormFunctional2S (std::shared_ptr< const Grid > grid, double cL2, double cH1, array::CellType1 &ice_mask, array::Scalar *dirichletLocations=NULL)
 
virtual ~IPGroundedIceH1NormFunctional2S ()
 
virtual void valueAt (array::Scalar &x, double *OUTPUT)
 Computes the value of the functional at the vector x. More...
 
virtual void dot (array::Scalar &a, array::Scalar &b, double *OUTPUT)
 Computes the inner product \(Q(a, b)\). More...
 
virtual void gradientAt (array::Scalar &x, array::Scalar &gradient)
 Computes the gradient of the functional at the vector x. More...
 
virtual void assemble_form (Mat J)
 
- Public Member Functions inherited from pism::inverse::IPInnerProductFunctional< array::Scalar >
 IPInnerProductFunctional (std::shared_ptr< const Grid > grid)
 
virtual void interior_product (array::Scalar &x, array::Scalar &y)
 Computes the interior product of a vector with the IPInnerProductFunctional's underlying bilinear form. More...
 
- Public Member Functions inherited from pism::inverse::IPFunctional< array::Scalar >
 IPFunctional (std::shared_ptr< const Grid > grid)
 
virtual ~IPFunctional ()
 

Protected Attributes

double m_cL2
 
double m_cH1
 
array::Scalarm_dirichletIndices
 
array::CellType1m_ice_mask
 
- Protected Attributes inherited from pism::inverse::IPFunctional< array::Scalar >
std::shared_ptr< const Gridm_grid
 
fem::ElementIterator m_element_index
 
fem::Q1Element2 m_element
 

Private Member Functions

 IPGroundedIceH1NormFunctional2S (IPGroundedIceH1NormFunctional2S const &)
 
IPGroundedIceH1NormFunctional2Soperator= (IPGroundedIceH1NormFunctional2S const &)
 

Detailed Description

Implements a functional corresponding to (the square of) an \(H^1\) norm of a scalar valued function over a region with only grounded ice.

The functional is, in continuous terms

\[ J(f) = \int_{\Omega_g} c_{H^1} \left|\nabla f\right|^2 + c_{L^2}f^2 \; dA \]

where \(\Omega_g\) is a subset of the square domain consisting of grounded ice. Numerically it is implemented using Q1 finite elements. Only those elements where all nodes have grounded ice are included in the integration, which alleviates edge effects due to steep derivatives in parameters that can occur at the transition between icy/non-icy regions. Integration can be 'restricted', in a sense, to a subset of the domain using a projection that forces \(f\) to equal zero at nodes specified by the constructor argument dirichletLocations.

Definition at line 48 of file IPGroundedIceH1NormFunctional.hh.


The documentation for this class was generated from the following files: