Commit Graph
1120 Commits
Author SHA1 Message Date
Mark L. Stowell 2927be94bf Merge branch 'master' into pyramid-dev 2024-10-14 10:38:15 -04:00
Stowell, Mark L f89f0eaad4 Fixing quad face dof order in pyramid finite elements 2024-09-05 16:10:49 -07:00
Stowell, Mark L 9548a87a66 Merge remote-tracking branch 'origin/master' into pyramid-dev 2024-08-20 08:37:17 -07:00
dylan-copeland 898367b198 Merge branch 'master' of github.com:mfem/mfem into override 2024-08-13 19:24:59 -07:00
Will Pazner b023416c47 Use override specifier in more places
Identified using clang-tidy check 'modernize-use-override'
2024-08-05 09:45:46 -07:00
Victor DeCaria 867a26ae4b MoveNodes calls NodesUpdated, and therefore updates nodes_sequence 2024-07-29 14:14:51 -06:00
Jan Nikl 5202ab09c5 Initialized embedding geometry. 2024-07-19 08:01:24 -07:00
Tzanio Kolev 878f94f998 Merge pull request #4190 from mfem/sjg/mesh-part-const
Const correctness for mesh partition
2024-06-25 20:13:39 +01:00
Stowell, Mark L 488e93ad74 Updating meshgen and mesh_geoms flags following pyramid refinement 2024-06-14 13:55:54 -07:00
Tzanio Kolev 827ed64113 Merge branch 'master' into hdiv-nurbs 2024-06-11 22:36:58 +01:00
Sebastian Grimberg 45e2636921 Address PR feedback: Add const 2024-06-05 14:19:49 -07:00
Sebastian Grimberg ddf80492c5 Add Mesh::GetVertexToBdrElementTable 2024-05-23 11:13:16 -07:00
IdoAkkerman 37c0768fe3 Merge branch 'master' into hdiv-nurbs 2024-05-14 14:12:44 +02:00
Sebastian Grimberg aab273b303 Address PR feedback and borrow partitioning improvement from #2669 2024-05-13 10:20:37 -07:00
Will Pazner 0702739a69 Change Array<T>::MakeRef signature 2024-04-30 16:25:30 -07:00
Will Pazner 6c66835bb3 Missing else statement 2024-04-30 14:55:30 -07:00
Will Pazner 1f39aba374 In MeshPartitioner, wrap the partitioning pointer in Array<int> 2024-04-30 11:28:14 -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 ceaf0af2c8 Convert regular comments in class MeshPart to doxygen comments.
Address some other feedback from the reviewers.
2024-04-22 13:55:40 -07:00
Veselin Dobrev f6f8d0f0d9 Add doxygen documentation for class MeshPartitioner
In MeshPartitioner::ExtractGridFunction, add 'const' to the 'MeshPart &'
parameter.
2024-04-22 12:09:35 -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
Tzanio Kolev 12ed616e47 Merge pull request #4128 from mfem/najlkin/pmesh-load-fix
Fix of loading boundary elements of ParMesh from files
2024-04-15 05:25:23 -07:00
Jan Nikl e916b975aa Revert "Moved initialization of the shared-local maps to the source."
This reverts commit 24a735852c.
2024-04-09 12:34:54 -07:00
Stowell, Mark L 4804824873 Merge remote-tracking branch 'origin/master' into pyramid-dev
# Conflicts:
#	fem/fe/fe_base.cpp
#	fem/fe/fe_base.hpp
#	fem/gridfunc.cpp
2024-04-08 12:09:46 -07:00
Ido Akkerman 367dda6794 Merge branch 'master' into hdiv-nurbs 2024-04-04 11:59:43 +02:00
Veselin Dobrev 18334a69fb Replace 'double' with 'real_t'. Small doxygen additions. 2024-03-31 18:22:56 -07:00
Veselin DobrevandSebastian Grimberg 037bfb4a19 Apply some fixes from 1123b50a
Co-authored-by: Sebastian Grimberg <sjg@amazon.com>
2024-03-31 14:20:10 -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 c96deef104 Workaround for Doxygen warning in MeshPart::EntityHelper 2024-03-31 13:06:59 -07:00
Veselin Dobrev 82d35f7054 In class MeshPartitioner:
* Add support for extracting a local GridFunction from a global one.
* Add support for meshes with nodes, i.e. high-order and periodic
  meshes.
2024-03-31 13:06:52 -07:00
Veselin Dobrev 7807c3344c Add tetrahedron refinement flags to MeshPart.
Rotate for refinement the triangle shared faces which have an
adjacent tet element with non-zero refinement flag.
2024-03-31 13:02:02 -07:00
Veselin Dobrev 9e700f0043 Fix serial build.
Rename the modified `ex1p.cpp` to `ex1p-test.cpp` and revert
the original `ex1p.cpp`.
2024-03-31 13:01:50 -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
IdoAkkerman 8300809562 Fix double real_t conversion 2024-03-27 13:57:51 +01:00
Jan Nikl 980545d45e Merge branch 'master' into najlkin/pmesh-load-fix 2024-03-26 14:33:50 -07:00
Veselin Dobrev 7be646b8ce Fix the HIP build with single precision.
Fix warnings about RAND_MAX when using single precision.

Introduce an inline function `real_t rand_real()` that returns a
random number in the interval [0,1) using rand(). This function
handles better the case of single precision where the expression
`real_t(rand())/(real_t(RAND_MAX)+1)` can return 1.0f due to round-off
when rand() returns a number close to RAND_MAX.

Use `rand_real()` in a few places that before used code similar to
`real_t(rand())/(real_t(RAND_MAX)+1)`.
2024-03-24 10:43:15 -07:00
IdoAkkerman b6b6843ad2 Merge branch 'master' into hdiv-nurbs 2024-03-21 15:46:53 +01:00
Veselin Dobrev c201035164 Move the MFEM_USE_{DOUBLE,SINGLE} options closer to the beginning
of the various config settings -- they are important settings and
should appear earlier.

Move the definition of mfem::real_t to config.hpp along with some
macros from globals.hpp -- I think this a better place for them.

Added support for single precision to ex10 and ex10p.

Added explicit compile time checks and error messages to make
sure HYPRE is compiled with the same precision as MFEM.

Fixed an issue affecting the visualization of the results from
ex10 and ex10p on nonconforming meshes.
2024-03-16 11:32:11 -07:00
Dylan Copeland c009fb9bde Merge branch 'master' of github.com:mfem/mfem into float 2024-03-15 11:31:39 -07:00
Jan Nikl 1fd24a2c50 Fixed a typo. 2024-03-06 10:37:43 -08:00
Jan Nikl f98f15f13f Replaced manual check of boundary elements by HasBoundaryElements(). 2024-03-06 09:44:02 -08:00
Dylan Copeland d2e89166f9 Merge branch 'master' of github.com:mfem/mfem into float 2024-03-05 10:23:02 -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 08c25c64cf Removing Mesh::AttrToMarker and adding similar limited functionality to the AttributeSets class 2024-02-27 17:30:51 -08:00
Stowell, Mark L be4089e9be Modifying output format as discussed in a meeting 2024-02-26 16:41:49 -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