MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::ShiftedFaceMarker Class Reference

#include <marking.hpp>

Collaboration diagram for mfem::ShiftedFaceMarker:
[legend]

Public Types

enum  SBElementType { INSIDE = 0 , OUTSIDE = 1 , CUT = 2 }
 

Public Member Functions

 ShiftedFaceMarker (ParMesh &pm, ParFiniteElementSpace &pfes, bool include_cut_cell_)
 
void MarkElements (const ParGridFunction &ls_func, Array< int > &elem_marker)
 
void ListShiftedFaceDofs (const Array< int > &elem_marker, Array< int > &sface_dof_list) const
 
void ListEssentialTDofs (const Array< int > &elem_marker, const Array< int > &sface_dof_list, Array< int > &ess_tdof_list, Array< int > &ess_shift_bdr) const
 

Protected Member Functions

void ListShiftedFaceDofs2 (const Array< int > &elem_marker, Array< int > &sface_dof_list) const
 

Protected Attributes

ParMeshpmesh
 
ParFiniteElementSpacepfes_sltn
 
const bool include_cut_cell
 
bool initial_marking_done
 
const bool func_dof_marking = true
 

Detailed Description

Definition at line 22 of file marking.hpp.

Member Enumeration Documentation

◆ SBElementType

Element type related to shifted boundaries (not interfaces). For more than 1 level-set, we set the marker to CUT+level_set_index to discern between different level-sets.

Enumerator
INSIDE 
OUTSIDE 
CUT 

Definition at line 46 of file marking.hpp.

Constructor & Destructor Documentation

◆ ShiftedFaceMarker()

mfem::ShiftedFaceMarker::ShiftedFaceMarker ( ParMesh & pm,
ParFiniteElementSpace & pfes,
bool include_cut_cell_ )
inline

Definition at line 48 of file marking.hpp.

Member Function Documentation

◆ ListEssentialTDofs()

void mfem::ShiftedFaceMarker::ListEssentialTDofs ( const Array< int > & elem_marker,
const Array< int > & sface_dof_list,
Array< int > & ess_tdof_list,
Array< int > & ess_shift_bdr ) const

List the dofs that will be inactive for the computation on the surrogate domain. This includes dofs for the elements located outside the true domain (and optionally, for the elements cut by the true boundary, if include_cut_cell = false) minus the dofs that are located on the surrogate boundary.

Definition at line 202 of file marking.cpp.

◆ ListShiftedFaceDofs()

void mfem::ShiftedFaceMarker::ListShiftedFaceDofs ( const Array< int > & elem_marker,
Array< int > & sface_dof_list ) const

List dofs associated with the surrogate boundary. If include_cut_cell = false, the surrogate boundary includes faces between elements cut by the true boundary and the elements that are located inside the true domain. If include_cut_cell = true, the surrogate boundary is the faces between elements outside the true domain and the elements cut by the true boundary.

Definition at line 106 of file marking.cpp.

◆ ListShiftedFaceDofs2()

void mfem::ShiftedFaceMarker::ListShiftedFaceDofs2 ( const Array< int > & elem_marker,
Array< int > & sface_dof_list ) const
protected

Definition at line 305 of file marking.cpp.

◆ MarkElements()

void mfem::ShiftedFaceMarker::MarkElements ( const ParGridFunction & ls_func,
Array< int > & elem_marker )

Mark all the elements in the mesh using the SBElementType. A point is considered inside when the level set function is positive. Assumes the ExchangeFaceNbrData() has been called for pmesh, ls_func.

Definition at line 17 of file marking.cpp.

Member Data Documentation

◆ func_dof_marking

const bool mfem::ShiftedFaceMarker::func_dof_marking = true
protected

Definition at line 34 of file marking.hpp.

◆ include_cut_cell

const bool mfem::ShiftedFaceMarker::include_cut_cell
protected

Definition at line 29 of file marking.hpp.

◆ initial_marking_done

bool mfem::ShiftedFaceMarker::initial_marking_done
protected

Definition at line 31 of file marking.hpp.

◆ pfes_sltn

ParFiniteElementSpace* mfem::ShiftedFaceMarker::pfes_sltn
protected

Definition at line 26 of file marking.hpp.

◆ pmesh

ParMesh& mfem::ShiftedFaceMarker::pmesh
protected

Definition at line 25 of file marking.hpp.


The documentation for this class was generated from the following files: