In class ParMesh:
* Introduced internal struct's Vert3 and Vert4 holding 3 and 4
integers, respectively.
* Replaced 'shared_faces' with two separate arrays 'shared_trias'
and 'shared_quads' with types Array<Vert3> and Array<Vert4>,
respectively.
* Removed the arrays 'stria_lface', 'squad_lface', 'stria_sface',
'squad_sface', and 'sface_stype'.
* Restore the array 'sface_lface' used previously. Shared face
indices are shred triangle / quad indices offset by 0 / "number
of shared triangles", respectively.
* Made the two RefineGroups methods protected.
* Added two new protected methods: UniformRefineGroups2D and
UniformRefineGroups3D. These two methods simplify the
implementations of almost all uniform-refinement methods in
the class.
* Fixed a bug in ReorderTetMesh that was causing ex8p to fail with
fichera-mixed.mesh.
* Updated the implementations of all ParMesh methods as necessary
due to the above changes.
In class Triangle, add a static method MarkEdge that works on a
given array of 3 indices.
In class Array, add a method CopyTo - implemented using std::copy.
* Removed the fixed low-order finite element classes for wedges.
* Replace more cases of 'int' variables with 'Geometry::Type',
mainly in class FiniteElement and its derived classes.
* Use constants from BasisType (instead of Quadrature1D) in the
parameters of the *WedgeElement finite element classes.
* Impose ordering on the construction of some global objects by
moving them into the same translation unit: specifically, moved
the objects 'TriangleFE', 'TetrahedronFE', 'WedgeFE', and
'Geometries' into fem/fe.cpp.
* In switchs on 'Geometry::Type', move the 'Geometry::PRISM' case
last - just to follow the order in the enumeration.
* Add a new method CoarseFineTransformations::GetPointMatrices
that simplifies some code that uses CoarseFineTransformations.
* Removed the 'INVALID' and 'MIXED' constants from the enum
Element::Type.
* Remove the static method Element::GeometryType.
* Tweak some doxygen comments in the classes Embedding and
CoarseFineTransformations.
* Generate an error if the method Wedge::GetNFaces is called:
its parameter 'nFaceVertices' does not make sense for wedges.
Added two new functions to Mesh:
> Bisection(int, HashTable<Hashed2> &)
> BdrBisection(int, HashTable<Hashed2> &)
which are adapted to the new data structure.
Added also an overload to Element::NeedRefinement with HashTable<Hashed2> and implemented it for Tetrahedron and Triangle.
Rewrote the tetrahedron case in LocalRefinement by changing the DSTable v_to_v to an HashMap<Hashed2> object.