MFEM  v4.5.2
Finite element discretization library
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mfem::ShiftedFaceMarker Class Reference

#include <marking.hpp>

Collaboration diagram for mfem::ShiftedFaceMarker:

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

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.


Definition at line 46 of file marking.hpp.

Constructor & Destructor Documentation

◆ ShiftedFaceMarker()

mfem::ShiftedFaceMarker::ShiftedFaceMarker ( ParMesh pm,
ParFiniteElementSpace pfes,
bool  include_cut_cell_ 

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

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

Definition at line 34 of file marking.hpp.

◆ include_cut_cell

const bool mfem::ShiftedFaceMarker::include_cut_cell

Definition at line 29 of file marking.hpp.

◆ initial_marking_done

bool mfem::ShiftedFaceMarker::initial_marking_done

Definition at line 31 of file marking.hpp.

◆ pfes_sltn

ParFiniteElementSpace* mfem::ShiftedFaceMarker::pfes_sltn

Definition at line 26 of file marking.hpp.

◆ pmesh

ParMesh& mfem::ShiftedFaceMarker::pmesh

Definition at line 25 of file marking.hpp.

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