98 lines
6.7 KiB
XML
98 lines
6.7 KiB
XML
|
|
<?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="invertible_8hpp" kind="file" language="C++">
|
||
|
|
<compoundname>invertible.hpp</compoundname>
|
||
|
|
<includes refid="backend_2mfem_2shared_2finite_8hpp" local="yes">serif/backend/mfem/shared/finite.hpp</includes>
|
||
|
|
<includedby refid="domain__mapper_8cpp" local="yes">src/lib/serif/backend/mfem/mapping/domain_mapper.cpp</includedby>
|
||
|
|
<incdepgraph>
|
||
|
|
<node id="2">
|
||
|
|
<label>serif/backend/mfem/shared/finite.hpp</label>
|
||
|
|
<link refid="backend_2mfem_2shared_2finite_8hpp"/>
|
||
|
|
<childnode refid="3" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="8" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="9" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="1">
|
||
|
|
<label>src/include/serif/backend/mfem/shared/invertible.hpp</label>
|
||
|
|
<link refid="invertible_8hpp"/>
|
||
|
|
<childnode refid="2" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="3">
|
||
|
|
<label>serif/utils/checks/finite.hpp</label>
|
||
|
|
<link refid="utils_2checks_2finite_8hpp"/>
|
||
|
|
<childnode refid="4" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="5" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="5">
|
||
|
|
<label>serif/utils/misc/concepts/numeric.hpp</label>
|
||
|
|
<link refid="numeric_8hpp"/>
|
||
|
|
<childnode refid="6" relation="include">
|
||
|
|
</childnode>
|
||
|
|
<childnode refid="7" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="4">
|
||
|
|
<label>cmath</label>
|
||
|
|
</node>
|
||
|
|
<node id="6">
|
||
|
|
<label>concepts</label>
|
||
|
|
</node>
|
||
|
|
<node id="9">
|
||
|
|
<label>mfem/linalg/densemat.hpp</label>
|
||
|
|
</node>
|
||
|
|
<node id="8">
|
||
|
|
<label>mfem/linalg/vector.hpp</label>
|
||
|
|
</node>
|
||
|
|
<node id="7">
|
||
|
|
<label>type_traits</label>
|
||
|
|
</node>
|
||
|
|
</incdepgraph>
|
||
|
|
<invincdepgraph>
|
||
|
|
<node id="1">
|
||
|
|
<label>src/include/serif/backend/mfem/shared/invertible.hpp</label>
|
||
|
|
<link refid="invertible_8hpp"/>
|
||
|
|
<childnode refid="2" relation="include">
|
||
|
|
</childnode>
|
||
|
|
</node>
|
||
|
|
<node id="2">
|
||
|
|
<label>src/lib/serif/backend/mfem/mapping/domain_mapper.cpp</label>
|
||
|
|
<link refid="domain__mapper_8cpp"/>
|
||
|
|
</node>
|
||
|
|
</invincdepgraph>
|
||
|
|
<innernamespace refid="namespaceserif">serif</innernamespace>
|
||
|
|
<innernamespace refid="namespaceserif_1_1utils">serif::utils</innernamespace>
|
||
|
|
<innernamespace refid="namespaceserif_1_1utils_1_1checks">serif::utils::checks</innernamespace>
|
||
|
|
<briefdescription>
|
||
|
|
</briefdescription>
|
||
|
|
<detaileddescription>
|
||
|
|
</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="3"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>"<ref refid="backend_2mfem_2shared_2finite_8hpp" kindref="compound">serif/backend/mfem/shared/finite.hpp</ref>"</highlight><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="4"><highlight class="normal"></highlight></codeline>
|
||
|
|
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1utils_1_1checks" kindref="compound">serif::utils::checks</ref></highlight></codeline>
|
||
|
|
<codeline lineno="6"><highlight class="normal">{</highlight></codeline>
|
||
|
|
<codeline lineno="12"><highlight class="normal"><sp/><sp/><sp/><sp/>[[nodiscard]]<sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="namespaceserif_1_1utils_1_1checks_1a3471cc276b4a977cff023828197af29e" kindref="member">has_stable_inverse</ref>(const<sp/>::mfem::DenseMatrix&<sp/>matrix)</highlight></codeline>
|
||
|
|
<codeline lineno="13"><highlight class="normal"><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="14"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/>dimension<sp/>=<sp/>matrix.Width();</highlight></codeline>
|
||
|
|
<codeline lineno="15"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(dimension<sp/><<sp/>1<sp/>||<sp/>dimension<sp/>><sp/>3<sp/>||<sp/>matrix.Height()<sp/>!=<sp/>dimension<sp/>||<sp/>!<ref refid="namespaceserif_1_1utils_1_1checks_1a4eb8e1d2bdd4bdae0242814f9018537e" kindref="member">is_finite</ref>(matrix))</highlight></codeline>
|
||
|
|
<codeline lineno="16"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
|
||
|
|
<codeline lineno="17"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
|
||
|
|
<codeline lineno="18"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>determinant<sp/>=<sp/>matrix.Det();</highlight></codeline>
|
||
|
|
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">double</highlight><highlight class="normal"><sp/>threshold<sp/>=<sp/>1.0e-14<sp/>*<sp/>std::pow(matrix.FNorm()<sp/>/<sp/>dimension,<sp/>dimension);</highlight></codeline>
|
||
|
|
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>std::isfinite(determinant)<sp/>&&<sp/>std::abs(determinant)<sp/>><sp/>threshold;</highlight></codeline>
|
||
|
|
<codeline lineno="22"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
|
||
|
|
<codeline lineno="23"><highlight class="normal">}</highlight></codeline>
|
||
|
|
</programlisting>
|
||
|
|
<location file="src/include/serif/backend/mfem/shared/invertible.hpp"/>
|
||
|
|
</compounddef>
|
||
|
|
</doxygen>
|