and transfers.
The Memory class is now used by some MFEM classes (like Array and
Vector) which can be used on the Device. Such classes now provide
methods to access the underlying Memory object, e.g. GetMemory.
Updated ex1/ex1p and ex6/ex6p to not need to enable/disable the
Device at specific points -- the Device is now enabled just at the
start. Also, the same examples can now run on Device (e.g. -d cuda)
without the partial assembly option (-pa) -- full assembly will
be still done on CPU but the sparse matrix action and vector
operations will be done using the Device.
Reverted changes in class DenseMatrix related to using the Device.
At this point, DenseMatrix operations are only used for small matrices
and using the Device in this case is not a good option.
ZienkiewiczZhuEstimator.
This support is based on the update in ParGridFunction::ComputeFlux
which, in turn, is based on the support for GroupCommunicators in
ParFiniteElementSpaces on non-conforming meshes.
In Mesh::GeneratePartitioning, use a simple partitioning when
the number of partitions is larger than or equal to the number
of elements.
In the mesh-explorer miniapp, in the partitioning sub-menu,
indicate which partitioning method is the default.
Enhanced class VectorMassIntegrator to support user specified
number of components using the new method SetVDim().
Tweaked the function L2ZZErrorEstimator() to support flux spaces
with any number of components; this is only supported when the
smooth flux space is a Cartesian power of a scalar space.
Updated and tested all sample runs in ex22/ex22p.
ParGridFunction::ParallelAverage.
Remove a check for non-conforming mesh in the method
ParFiniteElementSpace::Synchronize which now should work for
NC meshes too.
A few additions to the doxygen documentation of class
ParFiniteElementSpace.
Specifically, in class ParGridFunction, in the methods
ProjectBdrCoefficient and ProjectBdrCoefficientTangent, add missing
average computation in the case of a nonconforming mesh.
This fixes is the same issue is in ProjectBdrCoefficient which was
fixed by the previous commit.
An outstanding issue is the handling of nonconforming meshes in these
two methods - I left 'FIXME' comments there as reminders.
workaround for nonconforming meshes.
The workaround is to disable the parallel synchronization.
Also, added a debug check that all boundary dofs are set.
class GridFunction when used in parallel.
The issue appears when the master processor for a boundary DOF does
not own any of the boundary elements adjacent to that DOF.
The method ProjectBdrCoefficientTangent is probably affected by the
same issue, however, it is not addressed by this commit.
* 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.
mfem::infinity() and replace (almost) all usage of the std version with
the shortcut.
In SparseMatrix::MakeRef, copy the field isSorted from the original
matrix.