Commit Graph
426 Commits
Author SHA1 Message Date
Veselin Dobrev 94382236ee In classes Mesh and ParMesh, add support for copy construction of
NURBS meshes.
2017-11-27 20:07:46 -08:00
Stowell, Mark L c72ecf9a9c Tweaking comments 2017-11-24 11:18:54 -08:00
Stowell, Mark L a3f7b4ab02 A few more instances of missing BaseFaceGeom 2017-11-22 19:56:46 -08:00
Stowell, Mark L 9dbde39b0c make style 2017-11-22 19:35:31 -08:00
Stowell, Mark L e5e80bb3a3 Propagating BaseFaceGeometry 2017-11-22 16:08:13 -08:00
Veselin Dobrev 224851268e Restore backward compatibility for reading and writing NURBS meshes and
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.
2017-11-21 14:35:05 -08:00
Stowell, Mark L 487975f952 Removing debugging output 2017-11-21 10:13:56 -08:00
Stowell, Mark L 90c123811e Fixed uniform refinement of prism meshes 2017-11-21 09:39:53 -08:00
Stowell, Mark L e8ecc20a2f Adding a uniform refinement scheme for prisms (not yet working...) 2017-11-20 17:05:36 -08:00
Stowell, Mark L 92d334277e make style 2017-11-20 17:05:01 -08:00
Stowell, Mark L c911b598e4 Adding an inline prism mesh 2017-11-19 22:05:30 -08:00
Stowell, Mark L fd356bcce7 make style 2017-11-18 15:43:56 -08:00
Stowell, Mark L 787607a273 Adding face to element transformations for prisms (not yet properly tested) 2017-11-17 20:14:46 -08:00
Stowell, Mark L 25b828001d Generalizing FiniteElementSpace::RefinementMatrix 2017-11-17 10:35:23 -08:00
Stowell, Mark L e234a6da94 Moving GetFaceBaseGeometry implementation to the header file 2017-11-16 13:53:35 -08:00
Stowell, Mark L 191a1fa470 Adding BaseFaceGeom because this can differ from BaseBdrGeom 2017-11-16 13:49:53 -08:00
Stowell, Mark L 5956e157c1 Switching more occurrences of "int" to Geometry::Type 2017-11-16 10:42:16 -08:00
Stefano Zampini 2d40603332 Remove new function PruneExtraVertices and use RemoveUnusedVertices instead
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
2017-11-16 15:04:17 +03:00
Stowell, Mark L 00069e5914 Switching to Element::Type and Geometry::Type rather than "int" when relevant. 2017-11-15 15:34:31 -08:00
Tzanio da68d36093 Merge branch 'master' into memoryleak_and_init 2017-11-10 17:04:11 -08:00
Tzanio dff0dd0b48 Merge branch 'master' into varnurbs-dev 2017-11-10 16:55:38 -08:00
Stefano Zampini 5ca503ee6a Added method to Mesh to prune extra specified vertices
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()
2017-11-09 18:41:51 +03:00
Veselin Dobrev 7248dd101b Merge branch 'master' into inv-xform-dev 2017-11-08 22:21:54 -08:00
Stowell, Mark L 55a3f13bfd make style 2017-11-08 21:16:10 -08:00
Veselin Dobrev 4f9ccfde00 Merge branch 'master' into inv-xform-dev 2017-11-06 00:21:02 -08:00
Veselin Dobrev 205fa9b394 Add a new class, InverseElementTransformation, that implements several
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.
2017-11-05 23:33:04 -08:00
Tzanio Kolev bac8f5c330 Merge branch 'master' into xsdk-cpissues-dev 2017-11-02 07:43:37 -07:00
Stowell, Mark L 344ee2f115 Initial changes to Mesh class to support Prism meshes. 2017-10-31 16:36:33 -07:00
Veselin Dobrev 9eb1cf3c0a Merge branch 'master' into tmop-dev 2017-10-24 12:39:24 -07:00
Veselin Dobrev 2c6303971b Add a couple of MFEM_ASSERT statements in class Mesh, method
GetElementTransformation.
2017-10-18 19:35:57 -07:00
Kenneth Weiss 04c7c28636 Reverted behavior of TransformBack() in mesh::FindPoints().
This function now uses the element centers as the starting guess for the
Newton-Raphson solve.
2017-10-18 10:43:06 -07:00
Tzanio 20087f29eb Merge branch 'master' into xsdk-cpissues-dev 2017-10-17 11:54:45 -07:00
Jakub Cerveny 68f97de0cf Mesh::InitFromNCMesh: fix initialization of a curved mesh from the NCMesh. 2017-10-04 11:14:24 -07:00
Tzanio abe85f4cb6 make style 2017-09-28 10:15:26 -07:00
Aaron Fisher aa040f3e64 Made everything work with the new mfem::out and mfem::err output. 2017-09-27 15:42:37 -07:00
idoakkerman 364ad14355 Switching to another constructor for NURBS FE collections. This simplifies some imperfections else were in the code. 2017-09-21 15:54:02 +02:00
Ido Akkerman a92ad9458e Fixing ex2
Signed-off-by: Ido Akkerman <I.Akkerman@tudelft.nl>
2017-09-16 14:48:28 +02:00
Tzanio 15fa2c66d3 Merge branch 'master' into drop-metis-dev 2017-09-06 19:38:37 -07:00
Veselin Dobrev e323078d86 Merge branch 'master' into drop-metis-dev 2017-09-05 19:13:29 -07:00
Veselin Dobrev 17661be0d9 Replace the option MFEM_DROP_METIS with the opposite option, MFEM_USE_METIS.
Some additional related tweaks.

Update INSTALL.
2017-09-05 18:58:34 -07:00
Veselin Dobrev a1fa5dee60 Merge branch 'master' into stefanozampini/feature-delta-domainlfintegrator 2017-08-30 18:37:03 -07:00
Veselin Dobrev fa9b867764 Proposal for a new implementation of the support for delta
coefficients in linear forms.
2017-08-28 21:01:38 -07:00
Veselin Dobrev 92c6625dfd Merge pull request #253 from mfem/appveyor-mpi-build
Parallel MFEM build in Appveyor [appveyor-mpi-build]
2017-08-24 16:08:34 -07:00
Vladimir Tomov ed6da97550 Renamed the macro to MFEM_DROP_METIS. 2017-08-23 10:58:22 -07:00
Vladimir Tomov 1ff8ee252f Option for building in parallel without METIS. 2017-08-22 17:54:04 -07:00
Aaron Black 6b0978ef0c Add #include functional in mesh.cpp, needed for std::greater. 2017-08-08 14:51:00 -07:00
Veselin Dobrev b04dd4f469 In the Mesh constructor from the given primary data, only use the
value of 'boundary_type' when 'num_boundary_elements > 0'.
2017-07-26 14:15:32 -07:00
Stefano Zampini 333387b67d Added capability to integrate delta funtions 2017-07-23 13:19:49 +03:00
Veselin Dobrev 55cceee371 In ParNCMesh::GetFaceNeighbors(), initialize the Mesh::FaceInfo for the ghost
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.
2017-07-12 12:40:38 -07:00
Tzanio d4c5d99a43 make style 2017-06-04 17:55:39 -07:00