field p_laplacian::derivative_trans_mult (const field& mrh) const {
  field rh (Xh, 0);
  rh.set_u() = sm.solve(mrh.u());
  field mgh = a1*rh;
  mgh.set_b() = 0;
  return mgh;
}
Float p_laplacian::space_norm (const field& uh) const {
  return sqrt (m(uh,uh));
}
Float p_laplacian::dual_space_norm (const field& mrh) const {
  field rh (Xh, 0);
  rh.set_u() = sm.solve (mrh.u());
  return sqrt (dual(mrh, rh));
}
