Files
MeanField_SERiF/docs/xml/operands_8hpp.xml

1336 lines
60 KiB
XML
Raw Permalink 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="operands_8hpp" kind="file" language="C++">
<compoundname>operands.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>
<includedby refid="operands_8cpp" local="yes">src/compile_time_checks/serif/discretization/forms/operands.cpp</includedby>
<includedby refid="mfem__static__order_8hpp" local="yes">src/include/serif/backend/mfem/discretization/quadrature/mfem_static_order.hpp</includedby>
<includedby refid="backend_2mfem_2discretization_2quadrature_2order_8hpp" local="yes">src/include/serif/backend/mfem/discretization/quadrature/order.hpp</includedby>
<includedby refid="forms_8hpp" local="yes">src/include/serif/discretization/forms/forms.hpp</includedby>
<includedby refid="value_8hpp" local="yes">src/include/serif/discretization/forms/value.hpp</includedby>
<includedby refid="equations_2contributions_8hpp" local="yes">src/include/serif/equations/contributions.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/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="4">
<label>src/compile_time_checks/serif/backend/mfem/discretization/quadrature/mfem_resolver.cpp</label>
<link refid="mfem__resolver_8cpp"/>
</node>
<node id="5">
<label>src/compile_time_checks/serif/backend/mfem/discretization/quadrature/mfem_static_order.cpp</label>
<link refid="mfem__static__order_8cpp"/>
</node>
<node id="61">
<label>src/compile_time_checks/serif/backend_independent.cpp</label>
<link refid="backend__independent_8cpp"/>
</node>
<node id="50">
<label>src/compile_time_checks/serif/discretization/fields_meanfield.cpp</label>
<link refid="fields__meanfield_8cpp"/>
</node>
<node id="53">
<label>src/compile_time_checks/serif/discretization/forms/forms.cpp</label>
<link refid="forms_8cpp"/>
</node>
<node id="2">
<label>src/compile_time_checks/serif/discretization/forms/operands.cpp</label>
<link refid="operands_8cpp"/>
</node>
<node id="116">
<label>src/compile_time_checks/serif/geometry/surface.cpp</label>
<link refid="surface_8cpp"/>
</node>
<node id="114">
<label>src/compile_time_checks/serif/geometry/surface_boundary.cpp</label>
<link refid="surface__boundary_8cpp"/>
</node>
<node id="74">
<label>src/compile_time_checks/serif/model/barotropic_density.cpp</label>
<link refid="barotropic__density_8cpp"/>
</node>
<node id="75">
<label>src/compile_time_checks/serif/model/density_primal.cpp</label>
<link refid="density__primal_8cpp"/>
</node>
<node id="76">
<label>src/compile_time_checks/serif/model/execution_validation.cpp</label>
<link refid="execution__validation_8cpp"/>
</node>
<node id="31">
<label>src/compile_time_checks/serif/model/finite_elements.cpp</label>
<link refid="compile__time__checks_2serif_2model_2finite__elements_8cpp"/>
</node>
<node id="79">
<label>src/compile_time_checks/serif/model/normalization.cpp</label>
<link refid="normalization_8cpp"/>
</node>
<node id="26">
<label>src/compile_time_checks/serif/model/scalar_row.cpp</label>
<link refid="compile__time__checks_2serif_2model_2scalar__row_8cpp"/>
</node>
<node id="16">
<label>src/compile_time_checks/serif/model/state.cpp</label>
<link refid="state_8cpp"/>
</node>
<node id="82">
<label>src/compile_time_checks/serif/model/validation.cpp</label>
<link refid="compile__time__checks_2serif_2model_2validation_8cpp"/>
</node>
<node id="11">
<label>src/compile_time_checks/serif/operators/computation_owners.cpp</label>
<link refid="computation__owners_8cpp"/>
</node>
<node id="66">
<label>src/compile_time_checks/serif/operators/coordinate_identity_meanfield.cpp</label>
<link refid="coordinate__identity__meanfield_8cpp"/>
</node>
<node id="51">
<label>src/compile_time_checks/serif/operators/plan.cpp</label>
<link refid="operators_2plan_8cpp"/>
</node>
<node id="86">
<label>src/compile_time_checks/serif/solver/normalization/plan.cpp</label>
<link refid="solver_2normalization_2plan_8cpp"/>
</node>
<node id="98">
<label>src/include/serif/backend/mfem/discretization/field_values.hpp</label>
<link refid="field__values_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
</node>
<node id="6">
<label>src/include/serif/backend/mfem/discretization/quadrature/mfem_resolver.hpp</label>
<link refid="mfem__resolver_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
</node>
<node id="3">
<label>src/include/serif/backend/mfem/discretization/quadrature/mfem_static_order.hpp</label>
<link refid="mfem__static__order_8hpp"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="49">
<label>src/include/serif/backend/mfem/discretization/quadrature/order.hpp</label>
<link refid="backend_2mfem_2discretization_2quadrature_2order_8hpp"/>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
</node>
<node id="113">
<label>src/include/serif/backend/mfem/geometry/surface/boundary_computations.hpp</label>
<link refid="boundary__computations_8hpp"/>
<childnode refid="114" relation="include">
</childnode>
<childnode refid="107" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="124">
<label>src/include/serif/backend/mfem/geometry/surface/boundary_data.hpp</label>
<link refid="boundary__data_8hpp"/>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
</node>
<node id="119">
<label>src/include/serif/backend/mfem/geometry/surface/boundary_inputs.hpp</label>
<link refid="boundary__inputs_8hpp"/>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="80" relation="include">
</childnode>
</node>
<node id="106">
<label>src/include/serif/backend/mfem/geometry/surface/boundary_rows.hpp</label>
<link refid="boundary__rows_8hpp"/>
<childnode refid="107" relation="include">
</childnode>
<childnode refid="108" relation="include">
</childnode>
</node>
<node id="107">
<label>src/include/serif/backend/mfem/geometry/surface/pressure_boundary.hpp</label>
<link refid="geometry_2surface_2pressure__boundary_8hpp"/>
<childnode refid="37" relation="include">
</childnode>
</node>
<node id="108">
<label>src/include/serif/backend/mfem/geometry/surface/pressure_field_block.hpp</label>
<link refid="pressure__field__block_8hpp"/>
<childnode refid="23" relation="include">
</childnode>
</node>
<node id="37">
<label>src/include/serif/backend/mfem/model/binding.hpp</label>
<link refid="backend_2mfem_2model_2binding_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
</node>
<node id="12">
<label>src/include/serif/backend/mfem/model/computations/interior.hpp</label>
<link refid="interior_8hpp"/>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="13">
<label>src/include/serif/backend/mfem/model/computations/potential_infinity.hpp</label>
<link refid="potential__infinity_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="23">
<label>src/include/serif/backend/mfem/model/computations/pressure_boundary.hpp</label>
<link refid="model_2computations_2pressure__boundary_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="25">
<label>src/include/serif/backend/mfem/model/computations/scalar_row.hpp</label>
<link refid="computations_2scalar__row_8hpp"/>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="24">
<label>src/include/serif/backend/mfem/model/computations/surface_potential.hpp</label>
<link refid="backend_2mfem_2model_2computations_2surface__potential_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="28">
<label>src/include/serif/backend/mfem/model/discretization.hpp</label>
<link refid="model_2discretization_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
</node>
<node id="15">
<label>src/include/serif/backend/mfem/model/equilibrium.hpp</label>
<link refid="backend_2mfem_2model_2equilibrium_8hpp"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="38">
<label>src/include/serif/backend/mfem/model/equilibrium_evaluator.hpp</label>
<link refid="equilibrium__evaluator_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="109">
<label>src/include/serif/backend/mfem/model/failure.hpp</label>
<link refid="backend_2mfem_2model_2failure_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
</node>
<node id="29">
<label>src/include/serif/backend/mfem/model/finite_elements.hpp</label>
<link refid="backend_2mfem_2model_2finite__elements_8hpp"/>
<childnode refid="30" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
</node>
<node id="14">
<label>src/include/serif/backend/mfem/model/graph.hpp</label>
<link refid="backend_2mfem_2model_2graph_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="36">
<label>src/include/serif/backend/mfem/model/inputs.hpp</label>
<link refid="model_2inputs_8hpp"/>
<childnode refid="37" relation="include">
</childnode>
</node>
<node id="80">
<label>src/include/serif/backend/mfem/model/normalization/computations.hpp</label>
<link refid="backend_2mfem_2model_2normalization_2computations_8hpp"/>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="71">
<label>src/include/serif/backend/mfem/model/state.hpp</label>
<link refid="backend_2mfem_2model_2state_8hpp"/>
<childnode refid="38" relation="include">
</childnode>
</node>
<node id="103">
<label>src/include/serif/backend/mfem/model/surface_potential.hpp</label>
<link refid="backend_2mfem_2model_2surface__potential_8hpp"/>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="104" relation="include">
</childnode>
</node>
<node id="43">
<label>src/include/serif/backend/mfem/model/volume.hpp</label>
<link refid="volume_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="44">
<label>src/include/serif/backend/mfem/model/volume_actions.hpp</label>
<link refid="volume__actions_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="41">
<label>src/include/serif/backend/mfem/model/volume_displacement.hpp</label>
<link refid="volume__displacement_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="67">
<label>src/include/serif/backend/mfem/operators/element_evaluation.hpp</label>
<link refid="element__evaluation_8hpp"/>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="8">
<label>src/include/serif/backend/mfem/operators/element_preparation.hpp</label>
<link refid="element__preparation_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="68">
<label>src/include/serif/backend/mfem/operators/element_transpose.hpp</label>
<link refid="element__transpose_8hpp"/>
<childnode refid="42" relation="include">
</childnode>
</node>
<node id="69">
<label>src/include/serif/backend/mfem/operators/geometry_derivatives.hpp</label>
<link refid="geometry__derivatives_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="45">
<label>src/include/serif/backend/mfem/operators/jacobian_operator.hpp</label>
<link refid="jacobian__operator_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="97">
<label>src/include/serif/backend/mfem/operators/operand_evaluation.hpp</label>
<link refid="operand__evaluation_8hpp"/>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="98" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="69" relation="include">
</childnode>
</node>
<node id="7">
<label>src/include/serif/backend/mfem/operators/quadrature.hpp</label>
<link refid="quadrature_8hpp"/>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
</node>
<node id="42">
<label>src/include/serif/backend/mfem/operators/volume_application.hpp</label>
<link refid="volume__application_8hpp"/>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
</node>
<node id="10">
<label>src/include/serif/backend/mfem/operators/volume_computations.hpp</label>
<link refid="volume__computations_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="27">
<label>src/include/serif/backend/mfem/operators/volume_data.hpp</label>
<link refid="volume__data_8hpp"/>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
</node>
<node id="46">
<label>src/include/serif/backend/mfem/operators/volume_field_block.hpp</label>
<link refid="volume__field__block_8hpp"/>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
</node>
<node id="35">
<label>src/include/serif/backend/mfem/operators/volume_inputs.hpp</label>
<link refid="volume__inputs_8hpp"/>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="9">
<label>src/include/serif/backend/mfem/operators/volume_stages.hpp</label>
<link refid="volume__stages_8hpp"/>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="34">
<label>src/include/serif/backend/mfem/serialize/configuration.hpp</label>
<link refid="backend_2mfem_2serialize_2configuration_8hpp"/>
</node>
<node id="33">
<label>src/include/serif/backend/mfem/serialize/discretization.hpp</label>
<link refid="serialize_2discretization_8hpp"/>
<childnode refid="34" relation="include">
</childnode>
</node>
<node id="48">
<label>src/include/serif/backend/mfem/serialize/options.hpp</label>
<link refid="backend_2mfem_2serialize_2options_8hpp"/>
</node>
<node id="91">
<label>src/include/serif/backend/mfem/serialize/top.hpp</label>
<link refid="backend_2mfem_2serialize_2top_8hpp"/>
<childnode refid="92" relation="include">
</childnode>
</node>
<node id="22">
<label>src/include/serif/backend/mfem/solver/admissibility/geometry.hpp</label>
<link refid="geometry_8hpp"/>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="18">
<label>src/include/serif/backend/mfem/solver/equilibrium.hpp</label>
<link refid="backend_2mfem_2solver_2equilibrium_8hpp"/>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="17">
<label>src/include/serif/backend/mfem/solver/nonlinear/stellar_problem.hpp</label>
<link refid="stellar__problem_8hpp"/>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="39">
<label>src/include/serif/backend/mfem/solver/seed/state.hpp</label>
<link refid="backend_2mfem_2solver_2seed_2state_8hpp"/>
<childnode refid="40" relation="include">
</childnode>
</node>
<node id="54">
<label>src/include/serif/discretization/forms/concept.hpp</label>
<link refid="concept_8hpp"/>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
</node>
<node id="55">
<label>src/include/serif/discretization/forms/form_traits.hpp</label>
<link refid="form__traits_8hpp"/>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="52">
<label>src/include/serif/discretization/forms/forms.hpp</label>
<link refid="forms_8hpp"/>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
</node>
<node id="1">
<label>src/include/serif/discretization/forms/operands.hpp</label>
<link refid="operands_8hpp"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="83" relation="include">
</childnode>
<childnode refid="128" relation="include">
</childnode>
</node>
<node id="63">
<label>src/include/serif/discretization/forms/runtime.hpp</label>
<link refid="discretization_2forms_2runtime_8hpp"/>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
</node>
<node id="83">
<label>src/include/serif/discretization/forms/value.hpp</label>
<link refid="value_8hpp"/>
<childnode refid="84" relation="include">
</childnode>
<childnode refid="120" relation="include">
</childnode>
<childnode refid="122" relation="include">
</childnode>
</node>
<node id="57">
<label>src/include/serif/discretization/quadrature/policy.hpp</label>
<link refid="policy_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
</node>
<node id="56">
<label>src/include/serif/discretization/quadrature/query.hpp</label>
<link refid="query_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
</node>
<node id="64">
<label>src/include/serif/discretization/quadrature/rules.hpp</label>
<link refid="rules_8hpp"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
</node>
<node id="85">
<label>src/include/serif/equations/angular_momentum.hpp</label>
<link refid="angular__momentum_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
</node>
<node id="90">
<label>src/include/serif/equations/barotropic_density.hpp</label>
<link refid="barotropic__density_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="82" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="91" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
</node>
<node id="93">
<label>src/include/serif/equations/barycenter.hpp</label>
<link refid="barycenter_8hpp"/>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
</node>
<node id="121">
<label>src/include/serif/equations/companion.hpp</label>
<link refid="companion_8hpp"/>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="102" relation="include">
</childnode>
</node>
<node id="94">
<label>src/include/serif/equations/concepts.hpp</label>
<link refid="equations_2concepts_8hpp"/>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
<childnode refid="96" relation="include">
</childnode>
<childnode refid="99" relation="include">
</childnode>
</node>
<node id="128">
<label>src/include/serif/equations/contributions.hpp</label>
<link refid="equations_2contributions_8hpp"/>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
<childnode refid="94" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="100" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
</node>
<node id="87">
<label>src/include/serif/equations/equations.hpp</label>
<link refid="equations_2equations_8hpp"/>
<childnode refid="88" relation="include">
</childnode>
</node>
<node id="100">
<label>src/include/serif/equations/mass_normalization.hpp</label>
<link refid="mass__normalization_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
</node>
<node id="84">
<label>src/include/serif/equations/point.hpp</label>
<link refid="point_8hpp"/>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
<childnode refid="94" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="100" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
<childnode refid="102" relation="include">
</childnode>
<childnode refid="105" relation="include">
</childnode>
</node>
<node id="101">
<label>src/include/serif/equations/primal_gravity.hpp</label>
<link refid="primal__gravity_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="82" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="91" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
</node>
<node id="95">
<label>src/include/serif/equations/registry.hpp</label>
<link refid="registry_8hpp"/>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="88" relation="include">
</childnode>
</node>
<node id="120">
<label>src/include/serif/equations/rigid_rotation.hpp</label>
<link refid="rigid__rotation_8hpp"/>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="121" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="102" relation="include">
</childnode>
</node>
<node id="102">
<label>src/include/serif/equations/surface_potential.hpp</label>
<link refid="equations_2surface__potential_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="103" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
</node>
<node id="126">
<label>src/include/serif/geometry/surface/automatic.hpp</label>
<link refid="automatic_8hpp"/>
<childnode refid="114" relation="include">
</childnode>
<childnode refid="127" relation="include">
</childnode>
</node>
<node id="123">
<label>src/include/serif/geometry/surface/compilation.hpp</label>
<link refid="compilation_8hpp"/>
<childnode refid="124" relation="include">
</childnode>
<childnode refid="125" relation="include">
</childnode>
<childnode refid="105" relation="include">
</childnode>
<childnode refid="115" relation="include">
</childnode>
</node>
<node id="112">
<label>src/include/serif/geometry/surface/computations.hpp</label>
<link refid="geometry_2surface_2computations_8hpp"/>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="115" relation="include">
</childnode>
</node>
<node id="125">
<label>src/include/serif/geometry/surface/detail/automatic_relations.hpp</label>
<link refid="automatic__relations_8hpp"/>
<childnode refid="126" relation="include">
</childnode>
</node>
<node id="111">
<label>src/include/serif/geometry/surface/detail/batches.hpp</label>
<link refid="batches_8hpp"/>
<childnode refid="112" relation="include">
</childnode>
</node>
<node id="110">
<label>src/include/serif/geometry/surface/detail/evaluation.hpp</label>
<link refid="geometry_2surface_2detail_2evaluation_8hpp"/>
<childnode refid="111" relation="include">
</childnode>
<childnode refid="117" relation="include">
</childnode>
</node>
<node id="122">
<label>src/include/serif/geometry/surface/detail/relations.hpp</label>
<link refid="geometry_2surface_2detail_2relations_8hpp"/>
<childnode refid="123" relation="include">
</childnode>
</node>
<node id="117">
<label>src/include/serif/geometry/surface/evaluation.hpp</label>
<link refid="geometry_2surface_2evaluation_8hpp"/>
<childnode refid="115" relation="include">
</childnode>
</node>
<node id="105">
<label>src/include/serif/geometry/surface/linearization.hpp</label>
<link refid="surface_2linearization_8hpp"/>
<childnode refid="106" relation="include">
</childnode>
<childnode refid="109" relation="include">
</childnode>
<childnode refid="110" relation="include">
</childnode>
<childnode refid="118" relation="include">
</childnode>
</node>
<node id="118">
<label>src/include/serif/geometry/surface/samples.hpp</label>
<link refid="samples_8hpp"/>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="111" relation="include">
</childnode>
</node>
<node id="115">
<label>src/include/serif/geometry/surface/surface.hpp</label>
<link refid="surface_8hpp"/>
<childnode refid="116" relation="include">
</childnode>
</node>
<node id="127">
<label>src/include/serif/model/detail/surface_plan.hpp</label>
<link refid="surface__plan_8hpp"/>
<childnode refid="72" relation="include">
</childnode>
</node>
<node id="72">
<label>src/include/serif/model/equilibrium_plan.hpp</label>
<link refid="equilibrium__plan_8hpp"/>
<childnode refid="37" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="77" relation="include">
</childnode>
<childnode refid="78" relation="include">
</childnode>
</node>
<node id="73">
<label>src/include/serif/model/execution_validation.hpp</label>
<link refid="execution__validation_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="30">
<label>src/include/serif/model/finite_elements.hpp</label>
<link refid="model_2finite__elements_8hpp"/>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="77">
<label>src/include/serif/model/model.hpp</label>
<link refid="model_2model_8hpp"/>
<childnode refid="61" relation="include">
</childnode>
</node>
<node id="78">
<label>src/include/serif/model/normalization/plan.hpp</label>
<link refid="model_2normalization_2plan_8hpp"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="80" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
</node>
<node id="70">
<label>src/include/serif/model/plan.hpp</label>
<link refid="model_2plan_8hpp"/>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="81" relation="include">
</childnode>
</node>
<node id="81">
<label>src/include/serif/model/validation.hpp</label>
<link refid="model_2validation_8hpp"/>
<childnode refid="82" relation="include">
</childnode>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="77" relation="include">
</childnode>
</node>
<node id="96">
<label>src/include/serif/operators/concepts.hpp</label>
<link refid="operators_2concepts_8hpp"/>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
</node>
<node id="99">
<label>src/include/serif/operators/contributions.hpp</label>
<link refid="operators_2contributions_8hpp"/>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="65">
<label>src/include/serif/operators/plan.hpp</label>
<link refid="operators_2plan_8hpp"/>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="67" relation="include">
</childnode>
<childnode refid="69" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
</node>
<node id="20">
<label>src/include/serif/solver/continuation/equilibrium.hpp</label>
<link refid="solver_2continuation_2equilibrium_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="19">
<label>src/include/serif/solver/equilibrium.hpp</label>
<link refid="solver_2equilibrium_8hpp"/>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="40">
<label>src/include/serif/solver/seed/state.hpp</label>
<link refid="solver_2seed_2state_8hpp"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="21">
<label>src/include/serif/solver/solver.hpp</label>
<link refid="solver_2solver_8hpp"/>
</node>
<node id="88">
<label>src/include/serif/utils/serialize/equations.hpp</label>
<link refid="utils_2serialize_2equations_8hpp"/>
<childnode refid="89" relation="include">
</childnode>
</node>
<node id="89">
<label>src/include/serif/utils/serialize/model.hpp</label>
<link refid="utils_2serialize_2model_8hpp"/>
<childnode refid="33" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="58">
<label>src/include/serif/utils/serialize/numerics.hpp</label>
<link refid="numerics_8hpp"/>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
</node>
<node id="60">
<label>src/include/serif/utils/serialize/serialize.hpp</label>
<link refid="serialize_8hpp"/>
<childnode refid="61" relation="include">
</childnode>
</node>
<node id="59">
<label>src/include/serif/utils/serialize/solver.hpp</label>
<link refid="utils_2serialize_2solver_8hpp"/>
<childnode refid="60" relation="include">
</childnode>
</node>
<node id="32">
<label>src/lib/serif/backend/mfem/model/finite_elements.cpp</label>
<link refid="lib_2serif_2backend_2mfem_2model_2finite__elements_8cpp"/>
</node>
<node id="104">
<label>src/lib/serif/backend/mfem/model/surface_potential.cpp</label>
<link refid="surface__potential_8cpp"/>
</node>
<node id="47">
<label>src/lib/serif/backend/mfem/model/system_selection.cpp</label>
<link refid="system__selection_8cpp"/>
</node>
<node id="92">
<label>src/lib/serif/backend/mfem/serialize/top.cpp</label>
<link refid="backend_2mfem_2serialize_2top_8cpp"/>
</node>
<node id="62">
<label>src/lib/serif/discretization/quadrature/policy.cpp</label>
<link refid="policy_8cpp"/>
</node>
</invincdepgraph>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation" prot="public">serif::discretization::forms::Operation</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_value" prot="public">serif::discretization::forms::Operation::Value</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_gradient" prot="public">serif::discretization::forms::Operation::Gradient</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_divergence" prot="public">serif::discretization::forms::Operation::Divergence</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_curl" prot="public">serif::discretization::forms::Operation::Curl</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_normal_trace" prot="public">serif::discretization::forms::Operation::NormalTrace</innerclass>
<innerclass refid="structserif_1_1discretization_1_1forms_1_1_operand" prot="public">serif::discretization::forms::Operand</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 Operand type, which represents a term and an operation to be applied to that term in the context of a form. </para>
</briefdescription>
<detaileddescription>
<para><simplesect kind="author"><para>Emily M. Boudreaux </para>
</simplesect>
An Operand is a compile-time type that encapsulates a term and an operation to be applied to that term. The operation can be one of several predefined operations, such as value, gradient, divergence, curl, or normal trace. The Operand type is used in the definition of forms to specify the terms and operations involved in the form. </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="10"><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;concepts&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;type_traits&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><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="15"><highlight class="normal"></highlight></codeline>
<codeline lineno="16"><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="27" refid="structserif_1_1discretization_1_1forms_1_1_operation" 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_1_operation" kindref="compound">Operation</ref><sp/>{</highlight></codeline>
<codeline lineno="28" refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_value" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_value" kindref="compound">Value</ref><sp/>{};<sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="29" refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_gradient" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_gradient" kindref="compound">Gradient</ref><sp/>{};<sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="30" refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_divergence" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_divergence" kindref="compound">Divergence</ref><sp/>{};<sp/><sp/></highlight></codeline>
<codeline lineno="31" refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_curl" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_curl" kindref="compound">Curl</ref><sp/>{};<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="32" refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_normal_trace" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_normal_trace" kindref="compound">NormalTrace</ref><sp/>{};<sp/></highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="34"><highlight class="normal"></highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>OperationCand</highlight><highlight class="keywordtype">id</highlight><highlight class="normal">ate&gt;</highlight></codeline>
<codeline lineno="41" refid="conceptserif_1_1discretization_1_1forms_1_1_is_operation" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">concept<sp/></highlight><highlight class="normal"><ref refid="conceptserif_1_1discretization_1_1forms_1_1_is_operation" kindref="compound">IsOperation</ref><sp/>=</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::same_as&lt;std::remove_cvref_t&lt;OperationCandidate&gt;,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_value" kindref="compound">Operation::Value</ref>&gt;<sp/>||</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::same_as&lt;std::remove_cvref_t&lt;OperationCandidate&gt;,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_gradient" kindref="compound">Operation::Gradient</ref>&gt;<sp/>||</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::same_as&lt;std::remove_cvref_t&lt;OperationCandidate&gt;,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_divergence" kindref="compound">Operation::Divergence</ref>&gt;<sp/>||</highlight></codeline>
<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::same_as&lt;std::remove_cvref_t&lt;OperationCandidate&gt;,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_curl" kindref="compound">Operation::Curl</ref>&gt;<sp/>||</highlight></codeline>
<codeline lineno="46"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::same_as&lt;std::remove_cvref_t&lt;OperationCandidate&gt;,<sp/><ref refid="structserif_1_1discretization_1_1forms_1_1_operation_1_1_normal_trace" kindref="compound">Operation::NormalTrace</ref>&gt;;</highlight></codeline>
<codeline lineno="47"><highlight class="normal"></highlight></codeline>
<codeline lineno="48"><highlight class="normal"></highlight></codeline>
<codeline lineno="112"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;blocks::Term<sp/>TermT,<sp/>IsOperation<sp/>OperationT<sp/>=<sp/>Operation::Value&gt;<sp/></highlight><highlight class="comment">//<sp/>We<sp/>choose<sp/>to<sp/>default<sp/>to<sp/>the<sp/>value<sp/>operation<sp/>because<sp/>it<sp/>is<sp/>the<sp/>most<sp/>common.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="113" refid="structserif_1_1discretization_1_1forms_1_1_operand" 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_1_operand" kindref="compound">Operand</ref><sp/>final<sp/>{</highlight></codeline>
<codeline lineno="114"><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_1_operand_1acd36f0d9d3262081915acbcd61bc1643" kindref="member">term_type</ref><sp/>=<sp/>TermT;</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_1_operand_1a5dff549928174c8206362b7007a3c2a0" kindref="member">operation_type</ref><sp/>=<sp/>OperationT;</highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="125"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>OperandCand</highlight><highlight class="keywordtype">id</highlight><highlight class="normal">ate&gt;</highlight></codeline>
<codeline lineno="126" refid="conceptserif_1_1discretization_1_1forms_1_1_is_operand" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">concept<sp/></highlight><highlight class="normal"><ref refid="conceptserif_1_1discretization_1_1forms_1_1_is_operand" kindref="compound">IsOperand</ref><sp/>=<sp/></highlight><highlight class="keyword">requires</highlight><highlight class="normal"><sp/>{<sp/></highlight><highlight class="comment">//<sp/>Recall<sp/>that<sp/>requires<sp/>expressions<sp/>are<sp/>not<sp/>evaluated.<sp/>What<sp/>this<sp/>checks<sp/>is<sp/>that<sp/>it<sp/>is<sp/>valid<sp/>syntax<sp/>given<sp/>the<sp/>type<sp/>to<sp/>requires<sp/>the<sp/>term<sp/>type<sp/>and<sp/>operation<sp/>type.<sp/>It<sp/>does<sp/>not<sp/>check<sp/>that<sp/>the<sp/>term<sp/>type<sp/>is<sp/>a<sp/>valid<sp/>term<sp/>or<sp/>that<sp/>the<sp/>operation<sp/>type<sp/>is<sp/>a<sp/>valid<sp/>operation.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="127"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_cvref_t&lt;OperandCandidate&gt;::term_type;</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_cvref_t&lt;OperandCandidate&gt;::operation_type;<sp/>}<sp/>&amp;&amp;</highlight></codeline>
<codeline lineno="129"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="conceptserif_1_1discretization_1_1blocks_1_1_term" kindref="compound">blocks::Term&lt;typename std::remove_cvref_t&lt;OperandCandidate&gt;::term_type</ref>&gt;<sp/>&amp;&amp;<sp/></highlight><highlight class="comment">//<sp/>Then<sp/>here,<sp/>now<sp/>that<sp/>we<sp/>know<sp/>we<sp/>can<sp/>safely<sp/>ask<sp/>for<sp/>the<sp/>term<sp/>type<sp/>we<sp/>validate<sp/>it<sp/>is<sp/>actually<sp/>a<sp/>valid<sp/>term</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="conceptserif_1_1discretization_1_1forms_1_1_is_operation" kindref="compound">IsOperation&lt;typename std::remove_cvref_t&lt;OperandCandidate&gt;::operation_type</ref>&gt;;<sp/></highlight><highlight class="comment">//<sp/>And<sp/>here<sp/>we<sp/>validate<sp/>that<sp/>the<sp/>operation<sp/>type<sp/>is<sp/>actually<sp/>a<sp/>valid<sp/>operation</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="131"><highlight class="normal"></highlight></codeline>
<codeline lineno="132"><highlight class="normal">};</highlight></codeline>
</programlisting>
<location file="src/include/serif/discretization/forms/operands.hpp"/>
</compounddef>
</doxygen>