diff --git a/Common/Context.cpp b/Common/Context.cpp index 64cb56103ce8f7c6560d35817da5b55542c815c4..a4fc1b82ae98a0692bd07091964a27fa939a2c61 100644 --- a/Common/Context.cpp +++ b/Common/Context.cpp @@ -81,6 +81,7 @@ CTX::CTX() mesh.numSubEdges = 0; mesh.colorCarousel = 0; mesh.ignorePartBound = 0; + mesh.saveTri = 1; color.mesh.tangents = color.mesh.tetrahedron = color.mesh.triangle = 0; color.mesh.prism = color.mesh.pyramid = color.mesh.hexahedron = 0; color.mesh.tangents = color.mesh.line = color.mesh.quadrangle = 0; diff --git a/Numeric/polynomialBasis.h b/Numeric/polynomialBasis.h index 9d502e9e7c9d48311c97190cda15c595b4fa9d06..7b1988c4e8d8ee16e4fb25fb3a4509f2417520e0 100644 --- a/Numeric/polynomialBasis.h +++ b/Numeric/polynomialBasis.h @@ -154,8 +154,9 @@ class polynomialBasis double dfv[1256][3]; dfm.resize (coefficients.size1(), coord.size1() * 3, false); int ii = 0; + int dimCoord = coord.size2(); for (int iPoint=0; iPoint< coord.size1(); iPoint++) { - df(coord(iPoint,0), coord(iPoint, 1), coord(iPoint, 2), dfv); + df(coord(iPoint,0), dimCoord > 1 ? coord(iPoint, 1) : 0., dimCoord > 2 ? coord(iPoint, 2) : 0., dfv); for (int i = 0; i < coefficients.size1(); i++) { dfm(i, iPoint * 3 + 0) = dfv[i][0]; dfm(i, iPoint * 3 + 1) = dfv[i][1]; diff --git a/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp b/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp index f386ff6854c93b0f3e0657d92b063fae4ae2fc34..f8174b5eb3103d0ccd7f991c8b010890b61d8659 100644 --- a/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp +++ b/contrib/HighOrderMeshOptimizer/OptHomMesh.cpp @@ -297,9 +297,10 @@ void Mesh::distSqToStraight(std::vector<double> &dSq) for (int i = 0; i < nV1; ++i) { sxyz[_el2V[iEl][i]] = _vert[_el2V[iEl][i]]->point(); } + int dim = lagrange->points.size2(); for (int i = nV1; i < nV; ++i) { double f[256]; - lagrange1->f(lagrange->points(i, 0), lagrange->points(i, 1), lagrange->points(i, 2), f); + lagrange1->f(lagrange->points(i, 0), dim > 1 ? lagrange->points(i, 1) : 0., dim > 2 ? lagrange->points(i, 2) : 0., f); for (int j = 0; j < nV1; ++j) sxyz[_el2V[iEl][i]] += sxyz[_el2V[iEl][j]] * f[j]; }