message: Optimize for QuadratureFunctionCoefficient in VectorFEMassIntegrator::AssemblePA
diff: #include "../general/forall.hpp"
  #include "bilininteg.hpp"
  +#include "gridfunc.hpp"
  namespace mfem
  {
  @@ -830,7 +831,18 @@ void VectorFEMassIntegrator::AssemblePA(const FiniteElementSpace &trial_fes,
  pa_data.SetSize((symmetric ? symmDims : MQfullDim) * nq * ne,
  Device::GetMemoryType());
  - Vector coeff(coeffDim * ne * nq);
  + Vector coeff;
  +
  + auto *qf_c = dynamic_cast<QuadratureFunctionCoefficient*>(Q);
  + if (qf_c)
  + {
  + const QuadratureFunction &qf = qf_c->GetQuadFunction();
  + qf.Read();
  + coeff.MakeRef(const_cast<QuadratureFunction&>(qf), 0);
  + }
  + else
  + {
  + coeff.SetSize(coeffDim * ne * nq);
  coeff = 1.0;
  auto coeffh = Reshape(coeff.HostWrite(), coeffDim, nq, ne);
  if (Q || DQ || MQ)
  @@ -896,6 +908,7 @@ void VectorFEMassIntegrator::AssemblePA(const FiniteElementSpace &trial_fes,
  }
  }
  }
  + }
  if (trial_curl && test_curl && dim == 3)
  {
  