Merge remote-tracking branch 'origin/master' into lo-dim-em-dev

# Conflicts:
#	fem/bilininteg.cpp
#	fem/fe/fe_base.hpp
#	fem/fe/fe_nd.cpp
#	fem/fe/fe_nd.hpp
#	fem/fe/fe_rt.cpp
#	fem/fe/fe_rt.hpp
This commit is contained in:
Stowell, Mark L
2022-02-28 09:49:07 -08:00
119 changed files with 4403 additions and 2379 deletions
+9 -9
View File
@@ -1081,11 +1081,11 @@ void VectorFiniteElement::ProjectCurl_ND(
#ifdef MFEM_THREAD_SAFE
DenseMatrix curlshape(fe.GetDof(), dim);
DenseMatrix curlshape_J(fe.GetDof(), dim);
DenseMatrix J(dim, dim);
DenseMatrix JtJ(dim, dim);
#else
curlshape.SetSize(fe.GetDof(), dim);
curlshape_J.SetSize(fe.GetDof(), dim);
J.SetSize(dim, dim);
JtJ.SetSize(dim, dim);
#endif
Vector curl_k(fe.GetDof());
@@ -1097,12 +1097,12 @@ void VectorFiniteElement::ProjectCurl_ND(
// calculate J^t * J / |J|
Trans.SetIntPoint(&ip);
MultAtB(Trans.Jacobian(), Trans.Jacobian(), J);
J *= 1.0 / Trans.Weight();
MultAtB(Trans.Jacobian(), Trans.Jacobian(), JtJ);
JtJ *= 1.0 / Trans.Weight();
// transform curl of shapes (rows) by J^t * J / |J|
fe.CalcCurlShape(ip, curlshape);
Mult(curlshape, J, curlshape_J);
Mult(curlshape, JtJ, curlshape_J);
curlshape_J.Mult(tk + d2t[k]*dim, curl_k);
for (int j = 0; j < curl_k.Size(); j++)
@@ -1834,17 +1834,17 @@ void Poly_1D::Basis::Eval(const double y, Vector &u, Vector &d,
}
}
void Poly_1D::Basis::EvalIntegrated(const Vector &d_aux, Vector &u) const
void Poly_1D::Basis::EvalIntegrated(const Vector &d_aux_, Vector &u) const
{
MFEM_VERIFY(etype == Integrated,
"EvalIntegrated is only valid for Integrated basis type");
int p = d_aux.Size() - 1;
int p = d_aux_.Size() - 1;
// See Gerritsma, M. (2010). "Edge functions for spectral element methods",
// in Lecture Notes in Computational Science and Engineering, 199--207.
u[0] = -d_aux[0];
u[0] = -d_aux_[0];
for (int j=1; j<p; ++j)
{
u[j] = u[j-1] - d_aux[j];
u[j] = u[j-1] - d_aux_[j];
}
// If scale_integrated is true, the degrees of freedom represent mean values,
// otherwise they represent subcell integrals. Generally, scale_integrated