MFEM v4.8.0
Finite element discretization library
Loading...
Searching...
No Matches
submesh_utils.hpp File Reference

Go to the source code of this file.

Classes

struct  mfem::SubMeshUtils::UniqueIndexGenerator
 Convenience object to create unique indices. More...
 

Namespaces

namespace  mfem
 
namespace  mfem::SubMeshUtils
 

Functions

std::tuple< Array< int >, Array< int > > mfem::SubMeshUtils::AddElementsToMesh (const Mesh &parent, Mesh &mesh, const Array< int > &attributes, bool from_boundary=false)
 Given a Mesh parent and another Mesh mesh using the list of attributes in attributes, this function adds matching elements with those attributes from parent to mesh.
 
Array< int > mfem::SubMeshUtils::BuildFaceMap (const Mesh &parent, const Mesh &mesh, const Array< int > &parent_element_ids)
 Given two meshes that have a parent to SubMesh relationship create a face map, using a SubMesh to parent Mesh element id map.
 
void mfem::SubMeshUtils::BuildVdofToVdofMap (const FiniteElementSpace &subfes, const FiniteElementSpace &parentfes, const SubMesh::From &from, const Array< int > &parent_element_ids, Array< int > &vdof_to_vdof_map)
 Build the vdof to vdof mapping between two FiniteElementSpace objects.
 
template<class T >
auto mfem::SubMeshUtils::GetRootParent (const T &m) -> decltype(std::declval< T >().GetParent())
 Identify the root parent of a given SubMesh.
 
template<typename SubMeshT >
void mfem::SubMeshUtils::AddBoundaryElements (SubMeshT &mesh, const std::unordered_map< int, int > &lface_to_boundary_attribute={})
 Add boundary elements to the SubMesh.
 
template<typename NCSubMeshT >
void mfem::SubMeshUtils::ConstructFaceTree (NCSubMeshT &submesh, const Array< int > &attributes)
 Construct a nonconformal mesh (serial or parallel) for a surface submesh, from an existing nonconformal volume mesh (serial or parallel).
 
template<typename NCSubMeshT >
void mfem::SubMeshUtils::ConstructVolumeTree (NCSubMeshT &submesh, const Array< int > &attributes)
 Construct a nonconformal mesh (serial or parallel) for a volume submesh, from an existing nonconformal volume mesh (serial or parallel).
 
template<typename T >
bool mfem::SubMeshUtils::HasAttribute (const T &el, const Array< int > &attributes)
 Helper for checking if an object's attributes match a list.
 
MFEM_DEPRECATED bool mfem::SubMeshUtils::ElementHasAttribute (const Element &el, const Array< int > &attributes)
 Forwarding dispatch to HasAttribute for backwards compatibility.
 
template<typename T1 , typename T2 , typename T3 >
void mfem::SubMeshUtils::Permute (const Array< int > &indices, T1 &t1, T2 &t2, T3 &t3)
 Apply permutation to a container type.
 
template<typename T1 , typename T2 , typename T3 >
void mfem::SubMeshUtils::Permute (Array< int > &&indices, T1 &t1, T2 &t2, T3 &t3)
 Apply permutation to a container type.