19#ifndef IP_H1NORMFUNCTIONAL_HH_TF8AKRNQ
20#define IP_H1NORMFUNCTIONAL_HH_TF8AKRNQ
22#include "pism/inverse/functional/IPFunctional.hh"
23#include "pism/util/array/Scalar.hh"
Abstract base class for IPFunctionals arising from an inner product.
virtual void dot(array::Scalar &a, array::Scalar &b, double *OUTPUT)
Computes the inner product .
virtual ~IP_H1NormFunctional2S()
IP_H1NormFunctional2S(IP_H1NormFunctional2S const &)
IP_H1NormFunctional2S(std::shared_ptr< const Grid > grid, double cL2, double cH1, array::Scalar *dirichletLocations=NULL)
array::Scalar * m_dirichletIndices
IP_H1NormFunctional2S & operator=(IP_H1NormFunctional2S const &)
virtual void gradientAt(array::Scalar &x, array::Scalar &gradient)
virtual void valueAt(array::Scalar &x, double *OUTPUT)
virtual void assemble_form(Mat J)
Implements a functional corresponding to (the square of) an norm of a scalar valued function.