Skip to content

Commit

Permalink
minor
Browse files Browse the repository at this point in the history
  • Loading branch information
tzanio committed Sep 11, 2022
1 parent 5180b3f commit ee7c345
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 17 deletions.
9 changes: 5 additions & 4 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ Meshing improvements
--------------------
- Added support for mixed meshes and pyramids in GSLIB-FindPoints.

- New classes, SubMesh and ParSubMesh, that allow to define a subset of a parent
Mesh. Both classes allow for the same functionality as Mesh and ParMesh and
work with all existing interfaces like finite element spaces etc.
- Added new SubMesh and ParSubMesh classes that can be used to extract a subset
of a given Mesh. These classes have the same functionality as Mesh and ParMesh
and work with all existing MFEM interfaces like finite element spaces etc.

Discretization improvements
---------------------------
Expand Down Expand Up @@ -84,13 +84,14 @@ Miscellaneous

- Added boundary elimination with device support for `SparseMatrix` and
`HypreParMatrix`.

- When using `AssemblyLevel::FULL`, `FABilinearFormExtension::FormSystemMatrix`
outputs an `OperatorHandle` containing a `SparseMatrix` in serial, and an
`HypreParMatrix` in parallel (instead of a `ConstrainedOperator`).

- Added TMOP metrics for mesh untangling and worst-case quality improvement.


Version 4.4, released on March 21, 2022
=======================================

Expand Down
10 changes: 8 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ The MFEM source code has the following structure:
.
├── config
│ ├── cmake
│ └── githooks
│ ├── docker
│ ├── githooks
│ └── vcpkg
├── data
├── doc
├── examples
Expand All @@ -111,20 +113,23 @@ The MFEM source code has the following structure:
│ ├── ginkgo
│ ├── hiop
│ ├── jupyter
│ ├── moonolith
│ ├── petsc
│ ├── pumi
│ ├── sundials
| └── superlu
├── fem
│ ├── ceed
│ ├── fe
│ ├── qinterp
│ ├── lor
│ ├── moonolith
│ ├── qinterp
│ └── tmop
├── general
├── linalg
│ └── simd
├── mesh
│ └── submesh
├── miniapps
│ ├── adjoint
│ ├── autodiff
Expand All @@ -134,6 +139,7 @@ The MFEM source code has the following structure:
│ ├── hooke
│ ├── meshing
│ ├── mtop
│ ├── multidomain
│ ├── navier
│ ├── nurbs
│ ├── parelag
Expand Down
5 changes: 3 additions & 2 deletions mesh/submesh/psubmesh.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -371,8 +371,9 @@ class ParSubMesh : public ParMesh
/// ParSubMesh face ids. Inverse map of parent_face_ids_.
Array<int> parent_to_submesh_face_ids_;
};
}

} // namespace mfem

#endif // MFEM_USE_MPI

#endif
#endif
3 changes: 1 addition & 2 deletions mesh/submesh/submesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,5 +115,4 @@ TransferMap SubMesh::CreateTransferMap(const GridFunction &src,
return TransferMap(src, dst);
}


} // namespace mfem
} // namespace mfem
4 changes: 3 additions & 1 deletion mesh/submesh/submesh.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

namespace mfem
{

/**
* @brief Subdomain representation of a topological parent in another Mesh.
*
Expand Down Expand Up @@ -194,6 +195,7 @@ class SubMesh : public Mesh

Array<int> face_to_be;
};
}

} // namespace mfem

#endif
1 change: 0 additions & 1 deletion mesh/submesh/submesh_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
// terms of the BSD-3 license. We welcome feedback and contributions, see file
// CONTRIBUTING.md for details.


#ifndef MFEM_SUBMESH_UTILS
#define MFEM_SUBMESH_UTILS

Expand Down
2 changes: 2 additions & 0 deletions mesh/submesh/transfer_category.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

namespace mfem
{

/**
* @brief TransferCategory describes the type of transfer.
*
Expand All @@ -25,6 +26,7 @@ enum TransferCategory
SubMeshToParent,
SubMeshToSubMesh
};

} // namespace mfem

#endif // MFEM_TRANSFER_CATEGORY
File renamed without changes.
8 changes: 4 additions & 4 deletions miniapps/multidomain/multidomain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// MFEM is free software; you can redistribute it and/or modify it under the
// terms of the BSD-3 license. We welcome feedback and contributions, see file
// CONTRIBUTING.md for details.
//

// This miniapp aims to demonstrate how to solve two PDEs, that represent
// different physics, on the same domain. MFEM's SubMesh interface is used to
// compute on and transfer between the spaces of predefined parts of the domain.
Expand All @@ -28,7 +28,7 @@
//
// A convection-diffusion equation is described inside the cylinder domain
//
// dT/dt = κΔT - α∇•(b T) in inner cylinder
// dT/dt = κΔT - α∇•(b T) in inner cylinder
// T = T_wall on cylinder wall (obtained from heat equation)
// ∇T•n = 0 else
//
Expand All @@ -47,7 +47,7 @@
using namespace mfem;

// Prescribed velocity profile for the convection-diffusion equation inside the
// cylinder. The profile is constrcuted s.t. it approximates a no-slip (v=0)
// cylinder. The profile is constructed s.t. it approximates a no-slip (v=0)
// directly at the cylinder wall boundary.
void velocity_profile(const Vector &c, Vector &q)
{
Expand Down Expand Up @@ -209,7 +209,7 @@ int main(int argc, char *argv[])
int num_procs = Mpi::WorldSize();
int myid = Mpi::WorldRank();

Mesh *serial_mesh = new Mesh("../../data/multidomain-hex.mesh");
Mesh *serial_mesh = new Mesh("multidomain-hex.mesh");
ParMesh parent_mesh = ParMesh(MPI_COMM_WORLD, *serial_mesh);
delete serial_mesh;

Expand Down
3 changes: 2 additions & 1 deletion tests/unit/mesh/test_psubmesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ void multidomain_test_3d(FECType fec_type)
const int p = 2;
// Circle: sideset 1
// Domain boundary: sideset 2
Mesh *serial_parent_mesh = new Mesh("../../data/multidomain-hex.mesh");
Mesh *serial_parent_mesh = new
Mesh("../../miniapps/multidomain/multidomain-hex.mesh");
ParMesh parent_mesh(MPI_COMM_WORLD, *serial_parent_mesh);
delete serial_parent_mesh;

Expand Down

0 comments on commit ee7c345

Please sign in to comment.