Files
MeanField_SERiF/docs/xml/namespaceserif_1_1discretization_1_1blocks.xml

424 lines
24 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="namespaceserif_1_1discretization_1_1blocks" kind="namespace" language="C++">
<compoundname>serif::discretization::blocks</compoundname>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1barotropic__constant" prot="public">serif::discretization::blocks::barotropic_constant</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1block" prot="public">serif::discretization::blocks::block</innerclass>
<innerclass refid="classserif_1_1discretization_1_1blocks_1_1_block_vector_view" prot="public">serif::discretization::blocks::BlockVectorView</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1density" prot="public">serif::discretization::blocks::density</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1displacement" prot="public">serif::discretization::blocks::displacement</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1field" prot="public">serif::discretization::blocks::field</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1_field_descriptor" prot="public">serif::discretization::blocks::FieldDescriptor</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1frame__acceleration" prot="public">serif::discretization::blocks::frame_acceleration</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1global__scalar" prot="public">serif::discretization::blocks::global_scalar</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1gravity" prot="public">serif::discretization::blocks::gravity</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1residual__block" prot="public">serif::discretization::blocks::residual_block</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1residual__block__base" prot="public">serif::discretization::blocks::residual_block_base</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1rotation" prot="public">serif::discretization::blocks::rotation</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1_spatial_term_traits" prot="public">serif::discretization::blocks::SpatialTermTraits</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1surface__deformation" prot="public">serif::discretization::blocks::surface_deformation</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1_system_layout" prot="public">serif::discretization::blocks::SystemLayout</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1term" prot="public">serif::discretization::blocks::term</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1term__base" prot="public">serif::discretization::blocks::term_base</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1_term_descriptor" prot="public">serif::discretization::blocks::TermDescriptor</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1value__block" prot="public">serif::discretization::blocks::value_block</innerclass>
<innerclass refid="structserif_1_1discretization_1_1blocks_1_1value__block__base" prot="public">serif::discretization::blocks::value_block_base</innerclass>
<innernamespace refid="namespaceserif_1_1discretization_1_1blocks_1_1detail">serif::discretization::blocks::detail</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization_1_1blocks_1_1keys">serif::discretization::blocks::keys</innernamespace>
<sectiondef kind="enum">
<memberdef kind="enum" id="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023ea" prot="public" static="no" strong="yes">
<type></type>
<name>RepresentedValueKind</name>
<qualifiedname>serif::discretization::blocks::RepresentedValueKind</qualifiedname>
<enumvalue id="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023eaa2063c1608d6e0baf80249c42e2be5804" prot="public">
<name>value</name>
<briefdescription>
<para>A value representing a physical quantity (e.g., temperature, pressure). </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<enumvalue id="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023eaa4db598f63d4aea6a3c8eaddfe5c2b1e9" prot="public">
<name>residual</name>
<briefdescription>
<para>A residual representing the difference between the current state and the desired state in a numerical method. </para>
</briefdescription>
<detaileddescription>
</detaileddescription>
</enumvalue>
<briefdescription>
<para>Enum representing the kind of value a block represents, either a physical quantity (value) or a residual (residual). </para>
</briefdescription>
<detaileddescription>
<para>Generally this is mostly used in the solver/normalization system. </para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/base.hpp" line="23" column="5" bodyfile="src/include/serif/discretization/blocks/base.hpp" bodystart="23" bodyend="26"/>
</memberdef>
</sectiondef>
<sectiondef kind="typedef">
<memberdef kind="typedef" id="namespaceserif_1_1discretization_1_1blocks_1a8b16d088f59cff9d40cd84eebd53d3b1" prot="public" static="no">
<templateparamlist>
<param>
<type>HasFunctionalSpace</type>
<declname>TermT</declname>
<defname>TermT</defname>
</param>
</templateparamlist>
<type>std::remove_cvref_t&lt; TermT &gt;::FunctionalSpace</type>
<definition>using serif::discretization::blocks::FunctionalSpaceOf = std::remove_cvref_t&lt;TermT&gt;::FunctionalSpace</definition>
<argsstring></argsstring>
<name>FunctionalSpaceOf</name>
<qualifiedname>serif::discretization::blocks::FunctionalSpaceOf</qualifiedname>
<briefdescription>
<para>Extract the functional space type associated with a given term type. Will have a type of whatever TermT::FunctionalSpace is. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>TermT</parametername>
</parameternamelist>
<parameterdescription>
<para>The term type from which to extract the functional space type.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<xrefsect id="todo_1_todo000016"><xreftitle>Todo</xreftitle><xrefdescription><para>For consistency with other types consider renaming TermT::FunctionalSpace to TermT::functional_space. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. </para>
</xrefdescription></xrefsect></para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/traits.hpp" line="21" column="5" bodyfile="src/include/serif/discretization/blocks/traits.hpp" bodystart="21" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1discretization_1_1blocks_1aba18df102a90506f2263dc6395e3f975" prot="public" static="no">
<templateparamlist>
<param>
<type>HasSupport</type>
<declname>TermT</declname>
<defname>TermT</defname>
</param>
</templateparamlist>
<type>std::remove_cvref_t&lt; TermT &gt;::Support</type>
<definition>using serif::discretization::blocks::SupportOf = std::remove_cvref_t&lt;TermT&gt;::Support</definition>
<argsstring></argsstring>
<name>SupportOf</name>
<qualifiedname>serif::discretization::blocks::SupportOf</qualifiedname>
<briefdescription>
<para>Extract the support type associated with a given term type. Will have a type of whatever TermT::Support is. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>TermT</parametername>
</parameternamelist>
<parameterdescription>
<para>The term type from which to extract the support type.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<xrefsect id="todo_1_todo000017"><xreftitle>Todo</xreftitle><xrefdescription><para>For consistency with other types consider renaming TermT::Support to TermT::support. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. </para>
</xrefdescription></xrefsect></para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/traits.hpp" line="30" column="5" bodyfile="src/include/serif/discretization/blocks/traits.hpp" bodystart="30" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1discretization_1_1blocks_1aef1a0354784f797bfa87d2369652b5cb" prot="public" static="no">
<templateparamlist>
<param>
<type>HasQuantity</type>
<declname>TermT</declname>
<defname>TermT</defname>
</param>
</templateparamlist>
<type>std::remove_cvref_t&lt; TermT &gt;::Quantity</type>
<definition>using serif::discretization::blocks::QuantityOf = std::remove_cvref_t&lt;TermT&gt;::Quantity</definition>
<argsstring></argsstring>
<name>QuantityOf</name>
<qualifiedname>serif::discretization::blocks::QuantityOf</qualifiedname>
<briefdescription>
<para>Extract the quantity type associated with a given term type. Will have a type of whatever TermT::Quantity is. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>TermT</parametername>
</parameternamelist>
<parameterdescription>
<para>The term type from which to extract the quantity type.</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<xrefsect id="todo_1_todo000018"><xreftitle>Todo</xreftitle><xrefdescription><para>For consistency with other types consider renaming TermT::Quantity to TermT::quantity. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. </para>
</xrefdescription></xrefsect></para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/traits.hpp" line="39" column="5" bodyfile="src/include/serif/discretization/blocks/traits.hpp" bodystart="39" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1discretization_1_1blocks_1aaf621ef3cd1e663131647a86d13e5990" prot="public" static="no">
<templateparamlist>
<param>
<type>SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
<param>
<type>typename Scalar</type>
<defval>double</defval>
</param>
</templateparamlist>
<type><ref refid="classserif_1_1discretization_1_1blocks_1_1_block_vector_view" kindref="compound">BlockVectorView</ref>&lt; <ref refid="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023eaa2063c1608d6e0baf80249c42e2be5804" kindref="member">RepresentedValueKind::value</ref>, Layout, Scalar &gt;</type>
<definition>using serif::discretization::blocks::StateView = BlockVectorView&lt;RepresentedValueKind::value, Layout, Scalar&gt;</definition>
<argsstring></argsstring>
<name>StateView</name>
<qualifiedname>serif::discretization::blocks::StateView</qualifiedname>
<briefdescription>
<para>A convenient alias for a view of the physical state coefficients. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>Layout</parametername>
</parameternamelist>
<parameterdescription>
<para>The block layout type, e.g. <ref refid="structserif_1_1discretization_1_1blocks_1_1_system_layout" kindref="compound">SystemLayout</ref>. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>Scalar</parametername>
</parameternamelist>
<parameterdescription>
<para>The scalar type of the coefficients, e.g. double. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/vector_view.hpp" line="103" column="5" bodyfile="src/include/serif/discretization/blocks/vector_view.hpp" bodystart="103" bodyend="-1"/>
</memberdef>
<memberdef kind="typedef" id="namespaceserif_1_1discretization_1_1blocks_1a1ee29035ab1c1c9e232b42e92ff8514d" prot="public" static="no">
<templateparamlist>
<param>
<type>SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
<param>
<type>typename Scalar</type>
<defval>double</defval>
</param>
</templateparamlist>
<type><ref refid="classserif_1_1discretization_1_1blocks_1_1_block_vector_view" kindref="compound">BlockVectorView</ref>&lt; <ref refid="namespaceserif_1_1discretization_1_1blocks_1aca74ff25d2168fcdec080e03ebc023eaa4db598f63d4aea6a3c8eaddfe5c2b1e9" kindref="member">RepresentedValueKind::residual</ref>, Layout, Scalar &gt;</type>
<definition>using serif::discretization::blocks::ResidualView = BlockVectorView&lt;RepresentedValueKind::residual, Layout, Scalar&gt;</definition>
<argsstring></argsstring>
<name>ResidualView</name>
<qualifiedname>serif::discretization::blocks::ResidualView</qualifiedname>
<briefdescription>
<para>A convenient alias for a view of the residual coefficients. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>Layout</parametername>
</parameternamelist>
<parameterdescription>
<para>The block layout type, e.g. <ref refid="structserif_1_1discretization_1_1blocks_1_1_system_layout" kindref="compound">SystemLayout</ref>. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>Scalar</parametername>
</parameternamelist>
<parameterdescription>
<para>The scalar type of the coefficients, e.g. double. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/vector_view.hpp" line="112" column="5" bodyfile="src/include/serif/discretization/blocks/vector_view.hpp" bodystart="112" bodyend="-1"/>
</memberdef>
</sectiondef>
<sectiondef kind="var">
<memberdef kind="variable" id="namespaceserif_1_1discretization_1_1blocks_1a8eaaa61c301de12ca7a32a728e39e986" prot="public" static="no" constexpr="yes" mutable="no">
<type>int</type>
<definition>int serif::discretization::blocks::DYNAMIC_BLOCK_SIZE</definition>
<argsstring></argsstring>
<name>DYNAMIC_BLOCK_SIZE</name>
<qualifiedname>serif::discretization::blocks::DYNAMIC_BLOCK_SIZE</qualifiedname>
<initializer>= -1</initializer>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/base.hpp" line="9" column="26" bodyfile="src/include/serif/discretization/blocks/base.hpp" bodystart="9" bodyend="-1"/>
</memberdef>
<memberdef kind="variable" id="namespaceserif_1_1discretization_1_1blocks_1a979c72b7f7e82015163d35bf5a970d90" prot="public" static="no" constexpr="yes" mutable="no">
<templateparamlist>
<param>
<type>Field</type>
<declname>FieldT</declname>
<defname>FieldT</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1discretization_1_1blocks_1_1_field_descriptor" kindref="compound">FieldDescriptor</ref></type>
<definition>FieldDescriptor serif::discretization::blocks::field_descriptor</definition>
<argsstring></argsstring>
<name>field_descriptor</name>
<qualifiedname>serif::discretization::blocks::field_descriptor</qualifiedname>
<initializer>{.name = FieldT::name}</initializer>
<briefdescription>
<para>Create a <ref refid="structserif_1_1discretization_1_1blocks_1_1_field_descriptor" kindref="compound">FieldDescriptor</ref> for a given field type. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>FieldT</parametername>
</parameternamelist>
<parameterdescription>
<para>The field type for which to create the descriptor. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/runtime.hpp" line="53" column="38" bodyfile="src/include/serif/discretization/blocks/runtime.hpp" bodystart="53" bodyend="53"/>
</memberdef>
<memberdef kind="variable" id="namespaceserif_1_1discretization_1_1blocks_1aa9f0d01c3fa0c64f62d684acf9f7ae27" prot="public" static="no" constexpr="yes" mutable="no">
<templateparamlist>
<param>
<type>Term</type>
<declname>TermT</declname>
<defname>TermT</defname>
</param>
</templateparamlist>
<type><ref refid="structserif_1_1discretization_1_1blocks_1_1_term_descriptor" kindref="compound">TermDescriptor</ref></type>
<definition>TermDescriptor serif::discretization::blocks::term_descriptor</definition>
<argsstring></argsstring>
<name>term_descriptor</name>
<qualifiedname>serif::discretization::blocks::term_descriptor</qualifiedname>
<initializer>{
.<ref refid="structserif_1_1discretization_1_1blocks_1_1field" kindref="compound">field</ref> = <ref refid="namespaceserif_1_1discretization_1_1blocks_1a979c72b7f7e82015163d35bf5a970d90" kindref="member">field_descriptor</ref>&lt;typename TermT::field_type&gt;,
.name = TermT::name
}</initializer>
<briefdescription>
<para>Create a <ref refid="structserif_1_1discretization_1_1blocks_1_1_term_descriptor" kindref="compound">TermDescriptor</ref> for a given term type. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>TermT</parametername>
</parameternamelist>
<parameterdescription>
<para>The term type for which to create the descriptor. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/runtime.hpp" line="60" column="37" bodyfile="src/include/serif/discretization/blocks/runtime.hpp" bodystart="60" bodyend="63"/>
</memberdef>
</sectiondef>
<sectiondef kind="func">
<memberdef kind="function" id="namespaceserif_1_1discretization_1_1blocks_1a946d6244b79cf4fad47d07fb97db32e1" prot="public" static="no" nodiscard="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<type>std::size_t</type>
<definition>std::size_t serif::discretization::blocks::checked_block_size</definition>
<argsstring>(std::span&lt; const std::size_t &gt; sizes)</argsstring>
<name>checked_block_size</name>
<qualifiedname>serif::discretization::blocks::checked_block_size</qualifiedname>
<param>
<type>std::span&lt; const std::size_t &gt;</type>
<declname>sizes</declname>
</param>
<briefdescription>
<para>Sum some memory span with checking for if any element is too large to fit in a size_t. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sizes</parametername>
</parameternamelist>
<parameterdescription>
<para>A span of sizes to sum </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The sum of the sizes</para>
</simplesect>
<parameterlist kind="exception"><parameteritem>
<parameternamelist>
<parametername>std::overflow_error</parametername>
</parameternamelist>
<parameterdescription>
<para>If an element of sizes is too large to fit in a size_t</para>
</parameterdescription>
</parameteritem>
</parameterlist>
<xrefsect id="todo_1_todo000015"><xreftitle>Todo</xreftitle><xrefdescription><para>Really this does not need to be specific to this module, this might more generally be named something like &quot;safe sum&quot; and moved to a more general location. </para>
</xrefdescription></xrefsect></para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/lib/serif/discretization/blocks/system_layout.cpp" line="9" column="17" bodyfile="src/lib/serif/discretization/blocks/system_layout.cpp" bodystart="9" bodyend="19" declfile="src/include/serif/discretization/blocks/system_layout.hpp" declline="31" declcolumn="18"/>
</memberdef>
<memberdef kind="function" id="namespaceserif_1_1discretization_1_1blocks_1a71adc03af28a2984d945fdf54a8cee2e" prot="public" static="no" nodiscard="yes" constexpr="yes" const="no" explicit="no" inline="no" virt="non-virtual">
<templateparamlist>
<param>
<type>SystemLayoutType</type>
<declname>Layout</declname>
<defname>Layout</defname>
</param>
<param>
<type>typename SizeResolver</type>
</param>
</templateparamlist>
<type>std::remove_cvref_t&lt; Layout &gt;</type>
<definition>std::remove_cvref_t&lt; Layout &gt; serif::discretization::blocks::make_system_layout</definition>
<argsstring>(const SizeResolver &amp;size)</argsstring>
<name>make_system_layout</name>
<qualifiedname>serif::discretization::blocks::make_system_layout</qualifiedname>
<param>
<type>const SizeResolver &amp;</type>
<declname>size</declname>
</param>
<briefdescription>
<para>Build both coordinate orderings from the same physical size resolver. </para>
</briefdescription>
<detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>size</parametername>
</parameternamelist>
<parameterdescription>
<para>A callable whose templated operator()&lt;Coordinate&gt;() returns that coordinate&apos;s coefficient count. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
</detaileddescription>
<inbodydescription>
</inbodydescription>
<location file="src/include/serif/discretization/blocks/system_layout.hpp" line="179" column="36" bodyfile="src/include/serif/discretization/blocks/system_layout.hpp" bodystart="179" bodyend="187"/>
</memberdef>
</sectiondef>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<location file="src/include/serif/discretization/blocks/base.hpp" line="8" column="1"/>
</compounddef>
</doxygen>