19 #ifndef IP_H1NORMFUNCTIONAL_HH_TF8AKRNQ
20 #define IP_H1NORMFUNCTIONAL_HH_TF8AKRNQ
22 #include "pism/inverse/functional/IPFunctional.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 & operator=(IP_H1NormFunctional2S const &)
IP_H1NormFunctional2S(std::shared_ptr< const Grid > grid, double cL2, double cH1, array::Scalar *dirichletLocations=NULL)
array::Scalar * m_dirichletIndices
virtual void gradientAt(array::Scalar &x, array::Scalar &gradient)
Computes the gradient of the functional at the vector x.
virtual void valueAt(array::Scalar &x, double *OUTPUT)
Computes the value of the functional at the vector x.
virtual void assemble_form(Mat J)
Implements a functional corresponding to (the square of) an norm of a scalar valued function.