OGS
ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip Class Reference

Detailed Description

Definition at line 28 of file LIE/Common/MeshUtils.cpp.

Collaboration diagram for ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip:
[legend]

Public Member Functions

 IsCrackTip (MeshLib::Mesh const &mesh)
bool operator() (MeshLib::Node const &node) const

Private Attributes

MeshLib::Mesh const & _mesh
unsigned const _fracture_element_dim
std::vector< bool > _is_internal_node

Constructor & Destructor Documentation

◆ IsCrackTip()

ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip::IsCrackTip ( MeshLib::Mesh const & mesh)
inlineexplicit

Definition at line 31 of file LIE/Common/MeshUtils.cpp.

32 : _mesh(mesh), _fracture_element_dim(_mesh.getDimension() - 1)
33 {
34 _is_internal_node.resize(_mesh.getNumberOfNodes(), true);
35
36 MeshLib::NodeSearch nodeSearch(mesh);
37 nodeSearch.searchBoundaryNodes();
38 for (auto i : nodeSearch.getSearchedNodeIDs())
39 {
40 _is_internal_node[i] = false;
41 }
42 }

References _fracture_element_dim, _is_internal_node, _mesh, and MeshLib::NodeSearch::searchBoundaryNodes().

Member Function Documentation

◆ operator()()

bool ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip::operator() ( MeshLib::Node const & node) const
inline

Definition at line 44 of file LIE/Common/MeshUtils.cpp.

45 {
46 if (!_is_internal_node[node.getID()] ||
47 !isBaseNode(node, _mesh.getElementsConnectedToNode(node)))
48 {
49 return false;
50 }
51
52 auto const elements_connected_to_node =
53 _mesh.getElementsConnectedToNode(node);
54 auto const n_connected_fracture_elements =
55 count_if(cbegin(elements_connected_to_node),
56 cend(elements_connected_to_node),
57 [&](auto* const e)
58 { return e->getDimension() == _fracture_element_dim; });
59 assert(n_connected_fracture_elements > 0);
60
61 return (n_connected_fracture_elements == 1);
62 }
bool isBaseNode(Node const &node, std::vector< Element const * > const &elements_connected_to_node)
Definition Mesh.cpp:347

References _fracture_element_dim, _is_internal_node, _mesh, and MathLib::Point3dWithID::getID().

Member Data Documentation

◆ _fracture_element_dim

unsigned const ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip::_fracture_element_dim
private

Definition at line 66 of file LIE/Common/MeshUtils.cpp.

Referenced by IsCrackTip(), and operator()().

◆ _is_internal_node

std::vector<bool> ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip::_is_internal_node
private

Definition at line 67 of file LIE/Common/MeshUtils.cpp.

Referenced by IsCrackTip(), and operator()().

◆ _mesh

MeshLib::Mesh const& ProcessLib::LIE::anonymous_namespace{MeshUtils.cpp}::IsCrackTip::_mesh
private

Definition at line 65 of file LIE/Common/MeshUtils.cpp.

Referenced by IsCrackTip(), and operator()().


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