solutions. Restore the NURBS meshes in the data directory to use their
original format.
Add a new FiniteElementSpace format for writing variable-order spaces,
currently implemented for NURBS spaces only. Move the reading of FE
space input in a new method: FiniteElementSpace::Load. Add new default
constructor for FiniteElementSpace that should be used with the Load
method.
Add a bunch of const qualifiers in NURBSExtension and NURBSPatchMap.
Extended the method Mesh::DegreeElevate to make it easier to work with
variable-order NURBS meshes.
In class Array, add copy constructors and copy assignment operators.
Add a number of FIXME comments.
Add the call after reading an MFEM mesh format to allow proper visualization of gridfunctions on non-conforming grids from PETSc
Thanks-to: dobrev1@llnl.gov
PETSc currently sends data to glvis without taking care of the number of vertices specified in the mesh
This can generate some issues when reading H1 gridfunctions, since the number of vertex dofs is taken directly from Mesh::GetNV()
ElementsTransformation inversion algorithms, and serves as a base class
for other, e.g. custom, implementations. The new class contains all
previous implementations of ElementTransformation::TransformBack() and
adds a some new options.
The method IsoparametricTransformation::TransformBack() is now
implemented by simply constructing a InverseElementTransformation object
(with default options) and calling its Transform() method.
Updated the methods Mesh::FindPoints() and ParMesh::FindPoints() to
accept an optional argument of type InverseElementTransformation,
allowing more flexibility through customization of the transformation
inversion algorithm. In ParMesh::FindPoints(), when the i-th point was
found by one or more ranks, the output entry elem_ids[i] will be set to
-2 (except on the rank that is assigned that point) to indicate that the
i-th point was found but assigned to another rank - this value allows
all ranks to distinguish this case from the case when a point was not
found by any rank - indicated by elem_ids[j] set to -1.
Added two new methods to class ElementTransformation: GetGeometryType()
and GetDimension(). To aviod making these new methods virtual (and to
make the existing method GetSpaceDim() non-virtual), added data fields
'geom' and 'space_dim' to the base class ElementTransformation. In order
to facilitate the initialization of those fields for class
IsoparametricTransformation, added new method, FinalizeTransformation().
This method must be called after setting the point-matrix and the finite
element of the IsoparametricTransformation - all such places in MFEM
have been updated to perform that call.
Add new version of Geometry::ProjectPoint() that projects points outside
the reference element to the closest boundary point of the element.
Updated class GeometryRefiner to allow simultaneous use by different
places in a code - new calls to the Refine() and RefineInterior()
methods will not destroy previously allocated and returned objects by
the same calls.
faces with Elem1Inf = fi.Elem2Inf = -1. This fixes an issue in the method
Mesh::ElementToElementTable() where unused ghost faces were generating wrong
connections with Elem1No = -1.
Updated the size check in Mesh::ElementToElementTable(), faces_info.Size() ==
num_faces, to allow the case of ghost faces when faces_info.Size() >= num_faces.
In mesh.hpp and pncmesh.cpp, add comments regarding the face description
contained in Mesh::FaceInfo.
Add some MFEM_ASSERT() checks.