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::IP_H1NormFunctional2S Class Reference

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)
 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
 
- 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

 IP_H1NormFunctional2S (IP_H1NormFunctional2S const &)
 
IP_H1NormFunctional2Soperator= (IP_H1NormFunctional2S const &)
 

Detailed Description

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 38 of file IP_H1NormFunctional.hh.


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