message: Adding AssembleDiagonal for NCMesh using AbsMultTranspose.
diff: @@ -627,6 +627,26 @@ void BilinearForm::AssembleDiagonal(Vector &diag) const
  MFEM_ASSERT(diag.Size() == fes->GetTrueVSize(),
  "Vector for holding diagonal has wrong size!");
  const Operator *P = fes->GetProlongationMatrix();
  + if (!fes->Conforming())
  + {
  + Vector local_diag(P->Height());
  + ext->AssembleDiagonal(local_diag);
  + const SparseMatrix *SP = dynamic_cast<const SparseMatrix*>(P);
  + const HypreParMatrix *HP = dynamic_cast<const HypreParMatrix*>(P);
  + if (SP)
  + {
  + SP->AbsMultTranspose(local_diag, diag);
  + }
  + else if (HP)
  + {
  + HP->AbsMultTranspose(1.0, local_diag, 0.0, diag);
  + }
  + else
  + {
  + MFEM_ABORT("Prolongation matrix has unexpected type.");
  + }
  + return;
  + }
  if (!IsIdentityProlongation(P))
  {
  Vector local_diag(P->Height());
  