|
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
|
Implements a functional corresponding to (the square of) an \(H^1\) norm of a scalar valued function. More...
#include <IP_H1NormFunctional.hh>
Inheritance diagram for pism::inverse::IP_H1NormFunctional2S:Public Member Functions | |
| IP_H1NormFunctional2S (std::shared_ptr< const Grid > grid, double cL2, double cH1, array::Scalar *dirichletLocations=NULL) | |
| virtual | ~IP_H1NormFunctional2S () |
| virtual void | valueAt (array::Scalar &x, double *OUTPUT) |
| virtual void | dot (array::Scalar &a, array::Scalar &b, double *OUTPUT) |
| Computes the inner product \(Q(a, b)\). | |
| virtual void | gradientAt (array::Scalar &x, array::Scalar &gradient) |
| 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. | |
Public Member Functions inherited from pism::inverse::IPFunctional< IMVecType > | |
| IPFunctional (std::shared_ptr< const Grid > grid) | |
| virtual | ~IPFunctional () |
| virtual void | valueAt (IMVecType &x, double *OUTPUT)=0 |
| Computes the value of the functional at the vector x. | |
| virtual void | gradientAt (IMVecType &x, IMVecType &gradient)=0 |
| Computes the gradient of the functional at the vector x. | |
Protected Attributes | |
| double | m_cL2 |
| double | m_cH1 |
| array::Scalar * | m_dirichletIndices |
Protected Attributes inherited from pism::inverse::IPFunctional< IMVecType > | |
| std::shared_ptr< const Grid > | m_grid |
| fem::ElementIterator | m_element_index |
| fem::Q1Element2 | m_element |
Private Member Functions | |
| IP_H1NormFunctional2S (IP_H1NormFunctional2S const &) | |
| IP_H1NormFunctional2S & | operator= (IP_H1NormFunctional2S const &) |
Implements a functional corresponding to (the square of) an \(H^1\) norm of a scalar valued function.
The functional is, in continuous terms
\[ J(f) = \int_{\Omega} c_{H^1} \left|\nabla f\right|^2 + c_{L^2}f^2 \; dA \]
where \(\Omega\) is the square domain. Numerically it is implemented using Q1 finite elements. 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 39 of file IP_H1NormFunctional.hh.