Files
MeanField_SERiF/docs/xml/topology_8hpp.xml

157 lines
18 KiB
XML
Raw Normal View History

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
<compounddef id="topology_8hpp" kind="file" language="C++">
<compoundname>topology.hpp</compoundname>
<includes local="no">cstddef</includes>
<includes local="no">vector</includes>
<includedby refid="all_8hpp" local="yes">src/include/serif/discretization/domain/schema/validation/all.hpp</includedby>
<includedby refid="schema_2validation_2boundary_8hpp" local="yes">src/include/serif/discretization/domain/schema/validation/boundary.hpp</includedby>
<includedby refid="connected_8hpp" local="yes">src/include/serif/discretization/domain/schema/validation/connected.hpp</includedby>
<includedby refid="inscribed_8hpp" local="yes">src/include/serif/discretization/domain/schema/validation/inscribed.hpp</includedby>
<includedby refid="validator_8hpp" local="yes">src/include/serif/discretization/domain/schema/validation/validator.hpp</includedby>
<includedby refid="topology_8cpp" local="yes">src/lib/serif/discretization/domain/mesh/topology.cpp</includedby>
<incdepgraph>
<node id="1">
<label>src/include/serif/discretization/domain/mesh/topology.hpp</label>
<link refid="topology_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="2">
<label>cstddef</label>
</node>
<node id="3">
<label>vector</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="1">
<label>src/include/serif/discretization/domain/mesh/topology.hpp</label>
<link refid="topology_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="2">
<label>src/include/serif/discretization/domain/schema/validation/all.hpp</label>
<link refid="all_8hpp"/>
</node>
<node id="3">
<label>src/include/serif/discretization/domain/schema/validation/boundary.hpp</label>
<link refid="schema_2validation_2boundary_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="4">
<label>src/include/serif/discretization/domain/schema/validation/connected.hpp</label>
<link refid="connected_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="5">
<label>src/include/serif/discretization/domain/schema/validation/inscribed.hpp</label>
<link refid="inscribed_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="6">
<label>src/include/serif/discretization/domain/schema/validation/validator.hpp</label>
<link refid="validator_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="7">
<label>src/lib/serif/discretization/domain/mesh/topology.cpp</label>
<link refid="topology_8cpp"/>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements" prot="public">serif::discretization::domain::mesh::FaceElements</innerclass>
<innerclass refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology" prot="public">serif::discretization::domain::mesh::MeshTopology</innerclass>
<innernamespace refid="namespacemfem">mfem</innernamespace>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization">serif::discretization</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization_1_1domain">serif::discretization::domain</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization_1_1domain_1_1mesh">serif::discretization::domain::mesh</innernamespace>
<briefdescription>
<para>This file defines the MeshTopology class, which provides a convenient interface for querying the topological relationships between elements, faces, and boundaries in a mesh. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="author"><para>Emily M. Boudreaux </para>
</simplesect>
</para>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;cstddef&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;vector&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight></codeline>
<codeline lineno="13" refid="namespacemfem" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespacemfem" kindref="compound">mfem</ref><sp/>{</highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">Mesh;</highlight></codeline>
<codeline lineno="22"><highlight class="normal">}</highlight></codeline>
<codeline lineno="23"><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight><highlight class="comment">//<sp/>MeshTopology</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="25" refid="namespaceserif_1_1discretization_1_1domain_1_1mesh" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1discretization_1_1domain_1_1mesh" kindref="compound">serif::discretization::domain::mesh</ref><sp/>{</highlight></codeline>
<codeline lineno="30" refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements" kindref="compound">FaceElements</ref><sp/>{</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements_1a674f6cca3a3ff40ed5a711188b842cea" kindref="member">firstElementID</ref>{-1};</highlight></codeline>
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements_1a34d5453b401f45349b936aeaff799f11" kindref="member">secondElementID</ref>{-1};</highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="34"><highlight class="normal"></highlight></codeline>
<codeline lineno="39" refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1aa2a1baa98dccdf6043c39396af4aa988" kindref="member">MeshTopology</ref><sp/>final<sp/>{</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="41"><highlight class="normal"></highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">explicit</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1aa2a1baa98dccdf6043c39396af4aa988" kindref="member">MeshTopology</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>mfem::Mesh<sp/>&amp;<ref refid="namespaceserif_1_1discretization_1_1domain_1_1mesh" kindref="compound">mesh</ref>);</highlight></codeline>
<codeline lineno="47"><highlight class="normal"></highlight></codeline>
<codeline lineno="52"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1af3b8987f6c3365adf17ee0f07795897e" kindref="member">element_count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="53"><highlight class="normal"></highlight></codeline>
<codeline lineno="58"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a7c78847387143ddb1d4f4e7d88fc8066" kindref="member">face_count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
<codeline lineno="64"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a5b59f21cf3cb9d29e04779257abab394" kindref="member">boundary_element_count</ref>()<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="65"><highlight class="normal"></highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1abe06f844cc01a3c0061c04cfd95c37b4" kindref="member">element_domain_id</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>elementID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="74"><highlight class="normal"></highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1acc2567ca8224e7656ae8ece5eaef01e7" kindref="member">boundary_element_boundary_id</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>boundaryElementID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="83"><highlight class="normal"></highlight></codeline>
<codeline lineno="89"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/><ref refid="structserif_1_1discretization_1_1domain_1_1mesh_1_1_face_elements" kindref="compound">FaceElements</ref><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a00fd22c41c6d751809531cbdf21bfb73" kindref="member">face_elements</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>faceID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="90"><highlight class="normal"></highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector&lt;int&gt;<sp/>&amp;<ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1ab1f6807b2afdacc5d0dea5b516f4e4ae" kindref="member">element_neighbors</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>elementID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="99"><highlight class="normal"></highlight></codeline>
<codeline lineno="105"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1aabd045e134060487c56a86fb1579d38c" kindref="member">boundary_element_face</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>boundaryElementID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="106"><highlight class="normal"></highlight></codeline>
<codeline lineno="114"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector&lt;int&gt;<sp/>&amp;<ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a049a42e367fe55c4c6631f5b55dad357" kindref="member">boundary_elements_on_face</ref>(</highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>faceID)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="115"><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;int&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1ac3f6120de88afcb765e8e2ce19931937" kindref="member">m_elementDomainIDs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;FaceElements&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a745b461eb35b7552fdc2e98ceec7e746" kindref="member">m_faceElements</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;std::vector&lt;int&gt;&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a81425cbbcfcfa6a6b7c125d19d873459" kindref="member">m_elementNeighbors</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight></codeline>
<codeline lineno="121"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;int&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a3f64b3ff1420a400585369247089c438" kindref="member">m_boundaryElementBoundaryIDs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="122"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;int&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1aac431a7035d5ac08901d44eb089e1538" kindref="member">m_boundaryElementFaceIDs</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;std::vector&lt;int&gt;&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1ae05d92b11c04f1098146f7b673f7d424" kindref="member">m_boundaryElementsByFace</ref>;<sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="124"><highlight class="normal"></highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::vector&lt;int&gt;<sp/><ref refid="classserif_1_1discretization_1_1domain_1_1mesh_1_1_mesh_topology_1a6b1164b76ee6f2e6d386db8f9fb11f22" kindref="member">s_noElements</ref>;<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="127"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/discretization/domain/mesh/topology.hpp"/>
</compounddef>
</doxygen>