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