serif::discretization::blocks serif::discretization::blocks::barotropic_constant serif::discretization::blocks::block serif::discretization::blocks::BlockVectorView serif::discretization::blocks::density serif::discretization::blocks::displacement serif::discretization::blocks::field serif::discretization::blocks::FieldDescriptor serif::discretization::blocks::frame_acceleration serif::discretization::blocks::global_scalar serif::discretization::blocks::gravity serif::discretization::blocks::residual_block serif::discretization::blocks::residual_block_base serif::discretization::blocks::rotation serif::discretization::blocks::SpatialTermTraits serif::discretization::blocks::surface_deformation serif::discretization::blocks::SystemLayout serif::discretization::blocks::term serif::discretization::blocks::term_base serif::discretization::blocks::TermDescriptor serif::discretization::blocks::value_block serif::discretization::blocks::value_block_base serif::discretization::blocks::detail serif::discretization::blocks::keys RepresentedValueKind serif::discretization::blocks::RepresentedValueKind value A value representing a physical quantity (e.g., temperature, pressure). residual A residual representing the difference between the current state and the desired state in a numerical method. Enum representing the kind of value a block represents, either a physical quantity (value) or a residual (residual). Generally this is mostly used in the solver/normalization system. HasFunctionalSpace TermT TermT std::remove_cvref_t< TermT >::FunctionalSpace using serif::discretization::blocks::FunctionalSpaceOf = std::remove_cvref_t<TermT>::FunctionalSpace FunctionalSpaceOf serif::discretization::blocks::FunctionalSpaceOf Extract the functional space type associated with a given term type. Will have a type of whatever TermT::FunctionalSpace is. TermT The term type from which to extract the functional space type. TodoFor consistency with other types consider renaming TermT::FunctionalSpace to TermT::functional_space. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. HasSupport TermT TermT std::remove_cvref_t< TermT >::Support using serif::discretization::blocks::SupportOf = std::remove_cvref_t<TermT>::Support SupportOf serif::discretization::blocks::SupportOf Extract the support type associated with a given term type. Will have a type of whatever TermT::Support is. TermT The term type from which to extract the support type. TodoFor consistency with other types consider renaming TermT::Support to TermT::support. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. HasQuantity TermT TermT std::remove_cvref_t< TermT >::Quantity using serif::discretization::blocks::QuantityOf = std::remove_cvref_t<TermT>::Quantity QuantityOf serif::discretization::blocks::QuantityOf Extract the quantity type associated with a given term type. Will have a type of whatever TermT::Quantity is. TermT The term type from which to extract the quantity type. TodoFor consistency with other types consider renaming TermT::Quantity to TermT::quantity. This would require updating all term definitions to use the new naming convention. CLion or some other IDE should be able to handle this refactor easily. SystemLayoutType Layout Layout typename Scalar double BlockVectorView< RepresentedValueKind::value, Layout, Scalar > using serif::discretization::blocks::StateView = BlockVectorView<RepresentedValueKind::value, Layout, Scalar> StateView serif::discretization::blocks::StateView A convenient alias for a view of the physical state coefficients. Layout The block layout type, e.g. SystemLayout. Scalar The scalar type of the coefficients, e.g. double. SystemLayoutType Layout Layout typename Scalar double BlockVectorView< RepresentedValueKind::residual, Layout, Scalar > using serif::discretization::blocks::ResidualView = BlockVectorView<RepresentedValueKind::residual, Layout, Scalar> ResidualView serif::discretization::blocks::ResidualView A convenient alias for a view of the residual coefficients. Layout The block layout type, e.g. SystemLayout. Scalar The scalar type of the coefficients, e.g. double. int int serif::discretization::blocks::DYNAMIC_BLOCK_SIZE DYNAMIC_BLOCK_SIZE serif::discretization::blocks::DYNAMIC_BLOCK_SIZE = -1 Field FieldT FieldT FieldDescriptor FieldDescriptor serif::discretization::blocks::field_descriptor field_descriptor serif::discretization::blocks::field_descriptor {.name = FieldT::name} Create a FieldDescriptor for a given field type. FieldT The field type for which to create the descriptor. Term TermT TermT TermDescriptor TermDescriptor serif::discretization::blocks::term_descriptor term_descriptor serif::discretization::blocks::term_descriptor { .field = field_descriptor<typename TermT::field_type>, .name = TermT::name } Create a TermDescriptor for a given term type. TermT The term type for which to create the descriptor. std::size_t std::size_t serif::discretization::blocks::checked_block_size (std::span< const std::size_t > sizes) checked_block_size serif::discretization::blocks::checked_block_size std::span< const std::size_t > sizes Sum some memory span with checking for if any element is too large to fit in a size_t. sizes A span of sizes to sum The sum of the sizes std::overflow_error If an element of sizes is too large to fit in a size_t TodoReally this does not need to be specific to this module, this might more generally be named something like "safe sum" and moved to a more general location. SystemLayoutType Layout Layout typename SizeResolver std::remove_cvref_t< Layout > std::remove_cvref_t< Layout > serif::discretization::blocks::make_system_layout (const SizeResolver &size) make_system_layout serif::discretization::blocks::make_system_layout const SizeResolver & size Build both coordinate orderings from the same physical size resolver. size A callable whose templated operator()<Coordinate>() returns that coordinate's coefficient count.