Commit Graph
397 Commits
Author SHA1 Message Date
Sebastian Grimberg aab273b303 Address PR feedback and borrow partitioning improvement from #2669 2024-05-13 10:20:37 -07:00
Sebastian Grimberg 6a48f8e165 Const correctness for mesh partition 2024-05-06 12:21:37 -07:00
Veselin Dobrev 50a37df908 In ParMesh, remove repeated lines that set 'meshgen' and 'mesh_geoms' 2024-04-22 20:35:11 -07:00
Veselin Dobrev 39ad4e3921 In mfem mesh format output, consistently print a newline before
section delimiters like "mfem_mesh_end".

Fix some calls to Mesh::Printer where the optional comments were
passed as second argument instead of third.
2024-04-22 14:55:38 -07:00
Veselin Dobrev 4943545f5c Address reviewer feedback: typos, explanations 2024-04-22 09:21:09 -07:00
Veselin Dobrev 15c85e2b32 Merge branch 'master' into mesh-partitioner-dev
Resolved conflict:
   mesh/mesh.cpp
2024-04-19 13:29:31 -07:00
Veselin DobrevandSebastian Grimberg d7f1759a41 Post-rebase fixes, similar to c7dd4f9b
Co-authored-by: Sebastian Grimberg <sjg@amazon.com>
2024-03-31 13:35:43 -07:00
Veselin Dobrev 055e87caa5 Fix a bug in Mesh::FinalizeTopology() when used in parallel:
make GenerateBoundaryElements() vitual and call it only when
there are no boundary elements on any rank.

For now, ParMesh::GenerateBoundaryElements() does not do
anything -- it has a TODO comment.
2024-03-31 13:06:59 -07:00
Veselin Dobrev cba47bc4cd Initial draft of mesh partitioning capability that allows big
serial meshes to be partitioned and saved in parallel format
using one processor. This capability allows MFEM to work around
the current bottleneck which requires every MPI rank to load
the big serial mesh before it can be partitioned.

This new capability is added to the `mesh-explorer` miniapp with
the new menu option `D` and is based on two new classes:
* `MeshPartitioner`, constructed from a serial mesh and any
  partitioning array. Once constructed, it can extract any part
  of the mesh consisting of the elements with ids `elem_id` such
  that `partitioning[elem_id] == part_id`. The extracted mesh
  part is given in the form of a `MeshPart` object.
* `MeshPart`, which is currently construced by a `MeshPartitioner`.
  In the future, it can be created by other methods to facilitate
  other capabilities such as parallel mesh re-partitioing. Once
  constructed, the `MeshPart` can be saved to a file using the
  text-based parallel MFEM format. Support for other formats can
  be added as well. Another capability that can be added is the
  MPI communication of `MeshPart` objects between different ranks
  which can be used, for example, for implementing a `ParMesh`
  constructor that needs the serial mesh only on one processor.

Current limitations:
* Non-conforming and NURBS meshes are not supported.
* Meshes with nodes (e.g. high-order or periodic meshes) are
  not supported.

Small extension: if `Mesh::SetCurvature` is called with `order = 0`
then the method will remove the nodal `GridFunction` and use the
vertices array instead. This "curvature removal" capability can be
used from the `mesh-explorer` miniapp with the `c` menu option,
by specifying 0 when prompted to enter order.

Temporary change: `ex1p.cpp` is modified to disregard the (serial)
mesh specified with the option `-m`/`--mesh`. Instead, it loads
the parallel mesh `../miniapps/meshing/mesh-explorer.mesh.<rank>`
produced by the `D` menu option of the `mesh-explorer` miniapp.
2024-03-31 12:57:13 -07:00
Stowell, Mark L 386fa30275 Merge remote-tracking branch 'origin/master' into named-attr-sets
# Conflicts:
#	CHANGELOG
#	mesh/mesh.hpp
2024-03-27 13:52:45 -07:00
Dylan Copeland c009fb9bde Merge branch 'master' of github.com:mfem/mfem into float 2024-03-15 11:31:39 -07:00
Dylan Copeland d2e89166f9 Merge branch 'master' of github.com:mfem/mfem into float 2024-03-05 10:23:02 -08:00
Dylan Copeland cd2d93e822 Fix partially overriden NURBSUniformRefinement function. 2024-03-03 19:57:15 -08:00
Stowell, Mark L 91bcdd1ab2 Mostly documentation and style fixes 2024-02-29 14:17:22 -08:00
Stowell, Mark L c521b4b8d6 Changing AttributeSets into a simple wrapper class around ArraysByName 2024-02-27 20:18:07 -08:00
Mark L. Stowell c87a46f4b3 Merge branch 'master' into named-attr-sets 2024-02-27 19:12:58 -08:00
Stowell, Mark L 1c95d630ba Creating Print* methods on the AttributeSets class so that the output width can be defined in one location 2024-02-26 16:41:00 -08:00
dylan-copeland c866fefed1 Merge branch 'master' of github.com:mfem/mfem into nurbs-ref-formula 2024-02-26 10:03:47 -08:00
Dylan Copeland 046a874cfb Merge branch 'master' of github.com:mfem/mfem into float 2024-02-06 10:56:41 -08:00
Justin Laughlin 7e7f1df500 Merge branch 'master' into mesh-geom-comment 2024-02-05 10:40:02 -08:00
Dylan Copeland 6c07599447 Replace mesh/geom.hpp with fem/geom.hpp in mesh file comments. 2024-01-30 21:01:34 -08:00
Tzanio Kolev 87290fbf56 Update Copyright to 2010-2024 2024-01-27 13:06:49 -08:00
Dylan Copeland 9c5d160ebc Merge branch 'master' of github.com:mfem/mfem into nurbs-ref-formula 2024-01-16 21:00:07 -08:00
Stowell, Mark L f6dfb11945 Merge remote-tracking branch 'origin/master' into named-attr-sets
# Conflicts:
#	mesh/mesh.hpp
2024-01-14 11:40:43 -08:00
Stowell, Mark L 3b4ea628f0 Altering Mesh and the new examples to use the new AttributeSets container class 2024-01-14 11:06:45 -08:00
Dylan Copeland 47e042245e Merge branch 'master' of github.com:mfem/mfem into float 2024-01-11 14:26:05 -08:00
Will Pazner 2b27d4815f Merge pull request #4019 from mfem/sjg/mesh-const-fix
Const correctness fixes for `Mesh` and `ParMesh`
2024-01-11 13:24:42 -08:00
Stowell, Mark L d90a567378 Removing unneeded scopes 2024-01-09 10:28:42 -08:00
dylan-copeland 4e25b1ba6b Merge branch 'master' of github.com:mfem/mfem into float 2024-01-05 11:37:18 -08:00
Sebastian Grimberg e26f72da36 Address PR feedback: Change pointers to references and add notes for consistency with other Mesh methods 2024-01-04 17:40:58 -08:00
Stowell, Mark L 8ac2f38e41 Switching to range-based for loops 2024-01-04 17:34:43 -08:00
Hugh Carson 38e9c0951b Merge remote-tracking branch 'origin/master' into hughcars/ncmesh-interior-boundary-dev 2024-01-02 11:13:31 +00:00
Stowell, Mark L c3e7eb045d Adding support for named attribute sets 2023-12-21 19:15:45 -08:00
Dylan Copeland 80449bbd15 Merge branch 'master' of github.com:mfem/mfem into float 2023-12-21 13:20:38 -08:00
Hugh Carson 170c520493 Merge remote-tracking branch 'origin/master' into hughcars/ncmesh-interior-boundary-dev 2023-12-19 14:09:19 -05:00
dylan-copeland 02276956bd Merge branch 'master' of github.com:mfem/mfem into nurbs-ref-formula 2023-12-19 09:15:43 -08:00
Sebastian Grimberg e3201429c0 Minor copy-paste fix in GetSharedFaceTransformationsByLocalIndex 2023-12-15 12:35:32 -08:00
Tzanio Kolev d983b34924 Renamed ftype -> real_t 2023-12-13 12:51:43 -08:00
Dylan Copeland 373a3a0099 Merge branch 'master' of github.com:mfem/mfem into float 2023-12-12 12:53:39 -08:00
Dylan Copeland e3ea03baa0 Const changes 2023-12-12 12:25:50 -08:00
Dylan Copeland c1b6fe6506 Merge branch 'master' of github.com:mfem/mfem into mesh-file-comments 2023-12-12 11:32:42 -08:00
Sebastian Grimberg 96e2fa95d8 Add const versions of FaceElementTransformations using user provided FaceElementTransformations and ElementTransformation objects, like for GetElementTransformation
Also improves const-correctness throughout Mesh, ParMesh, and NCMesh classes.
2023-12-07 14:24:46 -08:00
Dylan Copeland f8a8392ff8 Merge branch 'master' of github.com:mfem/mfem into nurbs-ref-formula 2023-12-05 14:34:06 -08:00
Sebastian Grimberg 9ec30fb48a Revert breaking interface change to ParMesh constructor 2023-12-05 11:47:53 -08:00
Sebastian Grimberg 5ee7ab1fd1 Merge branch 'master' into sjg/pfespace-constructor-fix 2023-12-05 11:29:22 -08:00
dylan-copeland ff95fdb3af Merge branch 'master' of github.com:mfem/mfem into mesh-file-comments 2023-11-20 16:22:10 -08:00
Hugh Carson d49dcc33f9 Introduce support for interior boundary elements within NCMesh
- A boundary element is now either a conformal face (internal or external) or a slave face (internal)
- The dofs of master faces of an internal slave face are discovered to enable adding essential boundaries
- Various small refactorings for loops etc.
2023-11-13 14:17:01 -05:00
Dylan Copeland 47e62a55f9 Merge branch 'master' of github.com:mfem/mfem into float 2023-11-09 21:38:06 -08:00
Tzanio Kolev ecfab8fe9f Merge pull request #3964 from mfem/extra-semicolon-warnings-fix
Fix warnings about extra semicolons from GCC
2023-11-09 07:05:02 -08:00
Tzanio Kolev 935be38e4f Merge pull request #3966 from mfem/bugfix/rwa/reset-lazy-data-parmesh-ncref
Call ResetLazyData for ParMesh undergoing nonconforming refinement
2023-11-09 07:04:13 -08:00