Files
MeanField_SERiF/docs/xml/forms_8hpp.xml
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

902 lines
52 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="forms_8hpp" kind="file" language="C++">
<compoundname>forms.hpp</compoundname>
<includes local="no">concepts</includes>
<includes local="no">type_traits</includes>
<includes refid="discretization_2blocks_2concepts_8hpp" local="yes">serif/discretization/blocks/concepts.hpp</includes>
<includes refid="operands_8hpp" local="yes">serif/discretization/forms/operands.hpp</includes>
<includes refid="type__list_8hpp" local="yes">serif/utils/types/type_list.hpp</includes>
<includes refid="names_8hpp" local="yes">serif/meta/names.hpp</includes>
<includedby refid="mfem__static__order_8cpp" local="yes">src/compile_time_checks/serif/backend/mfem/discretization/quadrature/mfem_static_order.cpp</includedby>
<includedby refid="forms_8cpp" local="yes">src/compile_time_checks/serif/discretization/forms/forms.cpp</includedby>
<includedby refid="concept_8hpp" local="yes">src/include/serif/discretization/forms/concept.hpp</includedby>
<includedby refid="form__traits_8hpp" local="yes">src/include/serif/discretization/forms/form_traits.hpp</includedby>
<includedby refid="operators_2plan_8hpp" local="yes">src/include/serif/operators/plan.hpp</includedby>
<incdepgraph>
<node id="8">
<label>serif/dimensions/dimensions.hpp</label>
<link refid="dimensions_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="9">
<label>serif/dimensions/quantities.hpp</label>
<link refid="quantities_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="14">
<label>serif/discretization/blocks/base.hpp</label>
<link refid="base_8hpp"/>
</node>
<node id="4">
<label>serif/discretization/blocks/concepts.hpp</label>
<link refid="discretization_2blocks_2concepts_8hpp"/>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="5">
<label>serif/discretization/blocks/fields.hpp</label>
<link refid="fields_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="20">
<label>serif/discretization/domain/concepts.hpp</label>
<link refid="discretization_2domain_2concepts_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="26">
<label>serif/discretization/domain/physical_domains.hpp</label>
<link refid="physical__domains_8hpp"/>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="24">
<label>serif/discretization/domain/types.hpp</label>
<link refid="discretization_2domain_2types_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/discretization/forms/forms.hpp</label>
<link refid="forms_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="30">
<label>serif/discretization/forms/operands.hpp</label>
<link refid="operands_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
</node>
<node id="15">
<label>serif/discretization/functional_space/space.hpp</label>
<link refid="space_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="17">
<label>serif/meta/enums.hpp</label>
<link refid="enums_8hpp"/>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="28">
<label>serif/meta/names.hpp</label>
<link refid="names_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="13">
<label>serif/utils/misc/concepts/numeric.hpp</label>
<link refid="numeric_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="12">
<label>serif/utils/misc/std_helper/cleaning.hpp</label>
<link refid="cleaning_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="25">
<label>serif/utils/misc/std_helper/variadic_cleaning.hpp</label>
<link refid="variadic__cleaning_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="27">
<label>serif/utils/types/type_list.hpp</label>
<link refid="type__list_8hpp"/>
</node>
<node id="6">
<label>array</label>
</node>
<node id="10">
<label>compare</label>
</node>
<node id="2">
<label>concepts</label>
</node>
<node id="21">
<label>cstddef</label>
</node>
<node id="16">
<label>format</label>
</node>
<node id="19">
<label>magic_enum/magic_enum_all.hpp</label>
</node>
<node id="29">
<label>nameof.hpp</label>
</node>
<node id="23">
<label>numeric</label>
</node>
<node id="22">
<label>span</label>
</node>
<node id="7">
<label>string_view</label>
</node>
<node id="11">
<label>tuple</label>
</node>
<node id="3">
<label>type_traits</label>
</node>
<node id="18">
<label>unordered_map</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="6">
<label>src/compile_time_checks/serif/backend/mfem/discretization/quadrature/mfem_resolver.cpp</label>
<link refid="mfem__resolver_8cpp"/>
</node>
<node id="2">
<label>src/compile_time_checks/serif/backend/mfem/discretization/quadrature/mfem_static_order.cpp</label>
<link refid="mfem__static__order_8cpp"/>
</node>
<node id="56">
<label>src/compile_time_checks/serif/backend_independent.cpp</label>
<link refid="backend__independent_8cpp"/>
</node>
<node id="59">
<label>src/compile_time_checks/serif/discretization/fields_meanfield.cpp</label>
<link refid="fields__meanfield_8cpp"/>
</node>
<node id="3">
<label>src/compile_time_checks/serif/discretization/forms/forms.cpp</label>
<link refid="forms_8cpp"/>
</node>
<node id="71">
<label>src/compile_time_checks/serif/model/barotropic_density.cpp</label>
<link refid="barotropic__density_8cpp"/>
</node>
<node id="72">
<label>src/compile_time_checks/serif/model/density_primal.cpp</label>
<link refid="density__primal_8cpp"/>
</node>
<node id="73">
<label>src/compile_time_checks/serif/model/execution_validation.cpp</label>
<link refid="execution__validation_8cpp"/>
</node>
<node id="32">
<label>src/compile_time_checks/serif/model/finite_elements.cpp</label>
<link refid="compile__time__checks_2serif_2model_2finite__elements_8cpp"/>
</node>
<node id="76">
<label>src/compile_time_checks/serif/model/normalization.cpp</label>
<link refid="normalization_8cpp"/>
</node>
<node id="27">
<label>src/compile_time_checks/serif/model/scalar_row.cpp</label>
<link refid="compile__time__checks_2serif_2model_2scalar__row_8cpp"/>
</node>
<node id="17">
<label>src/compile_time_checks/serif/model/state.cpp</label>
<link refid="state_8cpp"/>
</node>
<node id="79">
<label>src/compile_time_checks/serif/model/validation.cpp</label>
<link refid="compile__time__checks_2serif_2model_2validation_8cpp"/>
</node>
<node id="12">
<label>src/compile_time_checks/serif/operators/computation_owners.cpp</label>
<link refid="computation__owners_8cpp"/>
</node>
<node id="62">
<label>src/compile_time_checks/serif/operators/coordinate_identity_meanfield.cpp</label>
<link refid="coordinate__identity__meanfield_8cpp"/>
</node>
<node id="63">
<label>src/compile_time_checks/serif/operators/plan.cpp</label>
<link refid="operators_2plan_8cpp"/>
</node>
<node id="7">
<label>src/include/serif/backend/mfem/discretization/quadrature/mfem_resolver.hpp</label>
<link refid="mfem__resolver_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
</node>
<node id="5">
<label>src/include/serif/backend/mfem/discretization/quadrature/mfem_static_order.hpp</label>
<link refid="mfem__static__order_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="38">
<label>src/include/serif/backend/mfem/model/binding.hpp</label>
<link refid="backend_2mfem_2model_2binding_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="13">
<label>src/include/serif/backend/mfem/model/computations/interior.hpp</label>
<link refid="interior_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="14">
<label>src/include/serif/backend/mfem/model/computations/potential_infinity.hpp</label>
<link refid="potential__infinity_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="24">
<label>src/include/serif/backend/mfem/model/computations/pressure_boundary.hpp</label>
<link refid="model_2computations_2pressure__boundary_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="26">
<label>src/include/serif/backend/mfem/model/computations/scalar_row.hpp</label>
<link refid="computations_2scalar__row_8hpp"/>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="25">
<label>src/include/serif/backend/mfem/model/computations/surface_potential.hpp</label>
<link refid="backend_2mfem_2model_2computations_2surface__potential_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="29">
<label>src/include/serif/backend/mfem/model/discretization.hpp</label>
<link refid="model_2discretization_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="34" relation="include">
</childnode>
</node>
<node id="16">
<label>src/include/serif/backend/mfem/model/equilibrium.hpp</label>
<link refid="backend_2mfem_2model_2equilibrium_8hpp"/>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="39">
<label>src/include/serif/backend/mfem/model/equilibrium_evaluator.hpp</label>
<link refid="equilibrium__evaluator_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="30">
<label>src/include/serif/backend/mfem/model/finite_elements.hpp</label>
<link refid="backend_2mfem_2model_2finite__elements_8hpp"/>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
</node>
<node id="15">
<label>src/include/serif/backend/mfem/model/graph.hpp</label>
<link refid="backend_2mfem_2model_2graph_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
</node>
<node id="37">
<label>src/include/serif/backend/mfem/model/inputs.hpp</label>
<link refid="model_2inputs_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
</node>
<node id="77">
<label>src/include/serif/backend/mfem/model/normalization/computations.hpp</label>
<link refid="backend_2mfem_2model_2normalization_2computations_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="68">
<label>src/include/serif/backend/mfem/model/state.hpp</label>
<link refid="backend_2mfem_2model_2state_8hpp"/>
<childnode refid="39" relation="include">
</childnode>
</node>
<node id="44">
<label>src/include/serif/backend/mfem/model/volume.hpp</label>
<link refid="volume_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="45">
<label>src/include/serif/backend/mfem/model/volume_actions.hpp</label>
<link refid="volume__actions_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="42">
<label>src/include/serif/backend/mfem/model/volume_displacement.hpp</label>
<link refid="volume__displacement_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="64">
<label>src/include/serif/backend/mfem/operators/element_evaluation.hpp</label>
<link refid="element__evaluation_8hpp"/>
<childnode refid="65" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="9">
<label>src/include/serif/backend/mfem/operators/element_preparation.hpp</label>
<link refid="element__preparation_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="65">
<label>src/include/serif/backend/mfem/operators/element_transpose.hpp</label>
<link refid="element__transpose_8hpp"/>
<childnode refid="43" relation="include">
</childnode>
</node>
<node id="66">
<label>src/include/serif/backend/mfem/operators/geometry_derivatives.hpp</label>
<link refid="geometry__derivatives_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="46">
<label>src/include/serif/backend/mfem/operators/jacobian_operator.hpp</label>
<link refid="jacobian__operator_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="8">
<label>src/include/serif/backend/mfem/operators/quadrature.hpp</label>
<link refid="quadrature_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="43">
<label>src/include/serif/backend/mfem/operators/volume_application.hpp</label>
<link refid="volume__application_8hpp"/>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
</node>
<node id="11">
<label>src/include/serif/backend/mfem/operators/volume_computations.hpp</label>
<link refid="volume__computations_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="28">
<label>src/include/serif/backend/mfem/operators/volume_data.hpp</label>
<link refid="volume__data_8hpp"/>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
</node>
<node id="47">
<label>src/include/serif/backend/mfem/operators/volume_field_block.hpp</label>
<link refid="volume__field__block_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
</node>
<node id="36">
<label>src/include/serif/backend/mfem/operators/volume_inputs.hpp</label>
<link refid="volume__inputs_8hpp"/>
<childnode refid="37" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="10">
<label>src/include/serif/backend/mfem/operators/volume_stages.hpp</label>
<link refid="volume__stages_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="35">
<label>src/include/serif/backend/mfem/serialize/configuration.hpp</label>
<link refid="backend_2mfem_2serialize_2configuration_8hpp"/>
</node>
<node id="34">
<label>src/include/serif/backend/mfem/serialize/discretization.hpp</label>
<link refid="serialize_2discretization_8hpp"/>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="49">
<label>src/include/serif/backend/mfem/serialize/options.hpp</label>
<link refid="backend_2mfem_2serialize_2options_8hpp"/>
</node>
<node id="23">
<label>src/include/serif/backend/mfem/solver/admissibility/geometry.hpp</label>
<link refid="geometry_8hpp"/>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="19">
<label>src/include/serif/backend/mfem/solver/equilibrium.hpp</label>
<link refid="backend_2mfem_2solver_2equilibrium_8hpp"/>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="18">
<label>src/include/serif/backend/mfem/solver/nonlinear/stellar_problem.hpp</label>
<link refid="stellar__problem_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="40">
<label>src/include/serif/backend/mfem/solver/seed/state.hpp</label>
<link refid="backend_2mfem_2solver_2seed_2state_8hpp"/>
<childnode refid="41" relation="include">
</childnode>
</node>
<node id="4">
<label>src/include/serif/discretization/forms/concept.hpp</label>
<link refid="concept_8hpp"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
</node>
<node id="50">
<label>src/include/serif/discretization/forms/form_traits.hpp</label>
<link refid="form__traits_8hpp"/>
<childnode refid="51" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/discretization/forms/forms.hpp</label>
<link refid="forms_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
</node>
<node id="58">
<label>src/include/serif/discretization/forms/runtime.hpp</label>
<link refid="discretization_2forms_2runtime_8hpp"/>
<childnode refid="59" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
</node>
<node id="52">
<label>src/include/serif/discretization/quadrature/policy.hpp</label>
<link refid="policy_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
</node>
<node id="51">
<label>src/include/serif/discretization/quadrature/query.hpp</label>
<link refid="query_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
</node>
<node id="60">
<label>src/include/serif/discretization/quadrature/rules.hpp</label>
<link refid="rules_8hpp"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
</node>
<node id="69">
<label>src/include/serif/model/equilibrium_plan.hpp</label>
<link refid="equilibrium__plan_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
</node>
<node id="70">
<label>src/include/serif/model/execution_validation.hpp</label>
<link refid="execution__validation_8hpp"/>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="31">
<label>src/include/serif/model/finite_elements.hpp</label>
<link refid="model_2finite__elements_8hpp"/>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
</node>
<node id="74">
<label>src/include/serif/model/model.hpp</label>
<link refid="model_2model_8hpp"/>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="75">
<label>src/include/serif/model/normalization/plan.hpp</label>
<link refid="model_2normalization_2plan_8hpp"/>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="77" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
</node>
<node id="67">
<label>src/include/serif/model/plan.hpp</label>
<link refid="model_2plan_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="37" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="69" relation="include">
</childnode>
<childnode refid="78" relation="include">
</childnode>
</node>
<node id="78">
<label>src/include/serif/model/validation.hpp</label>
<link refid="model_2validation_8hpp"/>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
</node>
<node id="61">
<label>src/include/serif/operators/plan.hpp</label>
<link refid="operators_2plan_8hpp"/>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
</node>
<node id="21">
<label>src/include/serif/solver/continuation/equilibrium.hpp</label>
<link refid="solver_2continuation_2equilibrium_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="20">
<label>src/include/serif/solver/equilibrium.hpp</label>
<link refid="solver_2equilibrium_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="41">
<label>src/include/serif/solver/seed/state.hpp</label>
<link refid="solver_2seed_2state_8hpp"/>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="22">
<label>src/include/serif/solver/solver.hpp</label>
<link refid="solver_2solver_8hpp"/>
</node>
<node id="53">
<label>src/include/serif/utils/serialize/numerics.hpp</label>
<link refid="numerics_8hpp"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
</node>
<node id="55">
<label>src/include/serif/utils/serialize/serialize.hpp</label>
<link refid="serialize_8hpp"/>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="54">
<label>src/include/serif/utils/serialize/solver.hpp</label>
<link refid="utils_2serialize_2solver_8hpp"/>
<childnode refid="55" relation="include">
</childnode>
</node>
<node id="33">
<label>src/lib/serif/backend/mfem/model/finite_elements.cpp</label>
<link refid="lib_2serif_2backend_2mfem_2model_2finite__elements_8cpp"/>
</node>
<node id="48">
<label>src/lib/serif/backend/mfem/model/system_selection.cpp</label>
<link refid="system__selection_8cpp"/>
</node>
<node id="57">
<label>src/lib/serif/discretization/quadrature/policy.cpp</label>
<link refid="policy_8cpp"/>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1form" prot="public">serif::discretization::forms::form</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1mass" prot="public">serif::discretization::forms::mass</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1divergence" prot="public">serif::discretization::forms::divergence</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1source" prot="public">serif::discretization::forms::source</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1force" prot="public">serif::discretization::forms::force</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1boundary__flux" prot="public">serif::discretization::forms::boundary_flux</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1projection" prot="public">serif::discretization::forms::projection</innerclass>
<innernamespace refid="namespaceserif">serif</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization">serif::discretization</innernamespace>
<innernamespace refid="namespaceserif_1_1discretization_1_1forms">serif::discretization::forms</innernamespace>
<briefdescription>
<para>This file defines the forms used in the discretization framework, including mass, divergence, source, force, boundary flux, and projection forms. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="author"><para>Emily M. Boudreaux </para>
</simplesect>
<simplesect kind="note"><para>If you are a developer tasked with the likely horrid task of adding some new equation that cannot be represented within the current framework that SERiF provides, this should probably be your first stop. This file essentially defines the mathematical operations that SERiF can perform. As you can see below none of these forms are particularly complex, and they certainly do not actually describe <emphasis>how</emphasis> to perform these operations. Rather, these form the base of a chain of compile-time probability that SERiF <emphasis>knows</emphasis> how to do something. Effectively this file is a contract with the rest of the code that says &quot;If someone asks for the divergence of a trial field against some test field that is okay because I have claimed in this
file that I know how to do that&quot;. The actual implementation lives elsewhere.</para>
</simplesect>
<xrefsect id="todo_1_todo000028"><xreftitle>Todo</xreftitle><xrefdescription><para>Come back and fill in more information about elsewhere. If you are the developer from above and you are reading this todo, then I am, and I mean this truly, very sorry.... </para>
</xrefdescription></xrefsect></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="18"><highlight class="normal"></highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;concepts&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;type_traits&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight></codeline>
<codeline lineno="22"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="discretization_2blocks_2concepts_8hpp" kindref="compound">serif/discretization/blocks/concepts.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="23"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="operands_8hpp" kindref="compound">serif/discretization/forms/operands.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="type__list_8hpp" kindref="compound">serif/utils/types/type_list.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="names_8hpp" kindref="compound">serif/meta/names.hpp</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="26"><highlight class="normal"></highlight></codeline>
<codeline lineno="27"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceserif_1_1discretization_1_1forms" kindref="compound">serif::discretization::forms</ref><sp/>{</highlight></codeline>
<codeline lineno="31" refid="structserif_1_1discretization_1_1forms_1_1form" 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_1forms_1_1form" kindref="compound">form</ref><sp/>{};</highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="93"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="94" refid="structserif_1_1discretization_1_1forms_1_1mass" 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_1forms_1_1mass" kindref="compound">mass</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="95"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1mass_1a5ad4f7ad8693d6dc35cfa7cd138d622f" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;mass&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="96"><highlight class="normal"></highlight></codeline>
<codeline lineno="97"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1mass_1a1632d91508c50adf8a5d2a6454f3a2ae" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1mass_1a38551ecc7ce2c2285f7ad92cfb19a3f6" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="99"><highlight class="normal"></highlight></codeline>
<codeline lineno="100"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1mass_1aa52cf4523911cf4b2529731a800df328" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="101"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="102"><highlight class="normal"></highlight></codeline>
<codeline lineno="111"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="112" refid="structserif_1_1discretization_1_1forms_1_1divergence" 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_1forms_1_1divergence" kindref="compound">divergence</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="113"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1divergence_1a351134122fa9271925d4451c899a443d" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;divergence&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="114"><highlight class="normal"></highlight></codeline>
<codeline lineno="115"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1divergence_1ac06850b9e991c3b626eea5ba01381ae1" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1divergence_1a4e173d0baf0ac6a7d98d7c8d65069618" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1divergence_1a1878b425c6d1e2e0f8c910175698646a" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT, Operation::Divergence&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="119"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="129" refid="structserif_1_1discretization_1_1forms_1_1source" 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_1forms_1_1source" kindref="compound">source</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="130"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1source_1a12fef7920f5bb967d59982414a52b5e2" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;source&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="131"><highlight class="normal"></highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1source_1a02e0efa544087e11eb0ef613a2cd7cb8" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="133"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1source_1aa84b4c129ce2a2f492dc6482bab3f091" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="134"><highlight class="normal"></highlight></codeline>
<codeline lineno="135"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1source_1a9acd7c77c8b2639b78e8d870cf7f69db" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="136"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="137"><highlight class="normal"></highlight></codeline>
<codeline lineno="143"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="144" refid="structserif_1_1discretization_1_1forms_1_1force" 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_1forms_1_1force" kindref="compound">force</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="145"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1force_1adcf7291841d1cc84c067cdc70957e711" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;force&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="146"><highlight class="normal"></highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1force_1aa1cba4f0b6e7487fa5c98220674b0445" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1force_1aea59c4fbff787abca3a1bb993291df49" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="149"><highlight class="normal"></highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1force_1afd4eb14e2cfc764fd2523c5368e15be4" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="152"><highlight class="normal"></highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="159" refid="structserif_1_1discretization_1_1forms_1_1boundary__flux" 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_1forms_1_1boundary__flux" kindref="compound">boundary_flux</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="160"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1boundary__flux_1abab7445fd72c9ad3ff89d088d6bbe72c" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;boundary_flux&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="161"><highlight class="normal"></highlight></codeline>
<codeline lineno="162"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1boundary__flux_1aafe02a54bb9fd6fa86cf2719692e9e8a" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1boundary__flux_1ae9f32d3a6c0add3420f23a5149d670f5" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="164"><highlight class="normal"></highlight></codeline>
<codeline lineno="165"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1boundary__flux_1a724798bb929d981946464f4603fe9899" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT, Operation::NormalTrace&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT, Operation::NormalTrace&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="166"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="167"><highlight class="normal"></highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TrialT,<sp/>blocks::Term<sp/>TestT&gt;</highlight></codeline>
<codeline lineno="174" refid="structserif_1_1discretization_1_1forms_1_1projection" 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_1forms_1_1projection" kindref="compound">projection</ref><sp/>final<sp/>:<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1form" kindref="compound">form</ref><sp/>{</highlight></codeline>
<codeline lineno="175"><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">constexpr</highlight><highlight class="normal"><sp/>std::string_view<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1projection_1ab5d9bc9d4e66e38ad81f84a01ef38f08" kindref="member">name</ref><sp/>=<sp/><ref refid="namespaceserif_1_1meta_1aaa1e565d5b2bf6a254e44843d6ea46d6" kindref="member">meta::template_name&lt;projection&gt;</ref>();<sp/></highlight></codeline>
<codeline lineno="176"><highlight class="normal"></highlight></codeline>
<codeline lineno="177"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1projection_1afa91cd80c3897e003b0b7627d152afcb" kindref="member">trial_type</ref><sp/>=<sp/>TrialT;<sp/></highlight></codeline>
<codeline lineno="178"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1projection_1ae32b4bedfa82a0e13deff30539672091" kindref="member">test_type</ref><sp/>=<sp/>TestT;<sp/><sp/><sp/></highlight></codeline>
<codeline lineno="179"><highlight class="normal"></highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1projection_1a577f78e345940f1a8d19f8feaaf3aa71" kindref="member">operand_types</ref><sp/>=<sp/><ref refid="structserif_1_1utils_1_1types_1_1_type_list" kindref="compound">utils::types::TypeList&lt;Operand&lt;TrialT&gt;</ref>,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operand" kindref="compound">Operand&lt;TestT&gt;</ref>&gt;;<sp/></highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="182"><highlight class="normal">}</highlight></codeline>
</programlisting>
<location file="src/include/serif/discretization/forms/forms.hpp"/>
</compounddef>
</doxygen>