message: Let MFEM handle the memory for the mesh nodes.
diff: @@ -77,6 +77,8 @@ void CeedPAAssemble(const CeedPAOperator& op,
  mfem::Mesh *mesh = fes.GetMesh();
  CeedInt nqpts, nelem = mesh->GetNE();
  CeedInt dim = mesh->SpaceDimension(), vdim = fes.GetVDim();
  + CeedMemType mem;
  + CeedGetPreferredMemType(ceed, &mem);
  mesh->EnsureNodes();
  InitCeedBasisAndRestriction(fes, irm, ceed, &ceedData.basis, &ceedData.restr);
  @@ -94,8 +96,18 @@ void CeedPAAssemble(const CeedPAOperator& op,
  &ceedData.restr_i);
  CeedVectorCreate(ceed, mesh->GetNodes()->Size(), &ceedData.node_coords);
  - CeedVectorSetArray(ceedData.node_coords, CEED_MEM_HOST, CEED_USE_POINTER,
  - mesh->GetNodes()->GetData());
  + CeedScalar *nodes_ptr;
  + CeedGetPreferredMemType(ceed, &mem);
  + if ( Device::Allows(Backend::DEVICE_MASK) && mem==CEED_MEM_DEVICE )
  + {
  + nodes_ptr = const_cast<CeedScalar*>(mesh->GetNodes()->Read());
  + }
  + else
  + {
  + nodes_ptr = const_cast<CeedScalar*>(mesh->GetNodes()->HostRead());
  + mem = CEED_MEM_HOST;
  + }
  + CeedVectorSetArray(ceedData.node_coords, mem, CEED_USE_POINTER, nodes_ptr);
  CeedVectorCreate(ceed, nelem * nqpts * qdatasize, &ceedData.rho);
  