|
| template<typename RulesT, typename LayoutT, typename ScalesT, discretization::blocks::RepresentedValueKind Kind, typename... Coordinates> |
| consteval bool | can_prepare_coordinates (utils::dependencies::KeyList< Coordinates... >) |
| | Test every coordinate factory without instantiating an unusable runtime graph.
|
| |
| template<typename RulesT, typename LayoutT, typename ScalesT, discretization::blocks::RepresentedValueKind Kind, typename... Coordinates> |
| auto | coordinate_computations (utils::dependencies::KeyList< Coordinates... >) |
| | Expand the supplied layout, looking up methods without imposing plan declaration order.
|
| |
| template<typename... Values, typename... Residuals> |
| auto | packing_computation (utils::dependencies::KeyList< Values... >, utils::dependencies::KeyList< Residuals... >) |
| | Freeze the independently ordered state and residual coordinates into one owning result.
|
| |
| template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, CoordinateLayoutType LayoutT> |
| std::expected< std::size_t, std::string > | coordinate_size (const LayoutT &layout) |
| | Reject a layout that changes the arity of a declared global scalar.
|
| |
| template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, CoordinateLayoutType LayoutT> |
| std::expected< void, std::string > | check_coordinate_size (const LayoutT &layout, std::size_t received) |
| | Check supplied metrics or custom factors before publishing a coordinate result.
|
| |
| template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT> |
| auto | coordinate_computation (IdentityCoordinate) |
| | Identity preparation requires a layout but no scale or metric sources.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT>
requires ProvidesScale<ScalesT, QuantityT> |
| auto | coordinate_computation (PhysicalRieszCoordinate< QuantityT, UnitMetric >) |
| | Algebraic coordinates use a scalar metric without allocating an intermediate vector of ones.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT>
requires (!std::same_as<MetricT, UnitMetric> && ProvidesScale<ScalesT, QuantityT>) |
| auto | coordinate_computation (PhysicalRieszCoordinate< QuantityT, MetricT >) |
| | Both coordinate roles consume the same cached reference metric with different primal/dual formulas.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, typename PointQuantityT, typename SelectionT>
requires (Kind == discretization::blocks::RepresentedValueKind::residual && !std::same_as<MetricT, UnitMetric> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, PointQuantityT>) |
| auto | coordinate_computation (WithPointRows< PhysicalRieszCoordinate< QuantityT, MetricT >, PointQuantityT, SelectionT >) |
| | Read the replacement's quantity independently of the bulk equation's scale.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT>
requires ProvidesScale<ScalesT, QuantityT> |
| auto | coordinate_computation (DimensionlessRieszCoordinate< QuantityT, UnitMetric, ReferenceGeometry::algebraic >) |
| | Global scalars have no geometric measure to remove.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, ReferenceGeometry Geometry>
requires (!std::same_as<MetricT, UnitMetric> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, dimensions::Length>) |
| auto | coordinate_computation (DimensionlessRieszCoordinate< QuantityT, MetricT, Geometry >) |
| | Cancel the reference measure while retaining the native finite-element coordinate representation.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, ReferenceGeometry Geometry, typename PointQuantityT, typename SelectionT>
requires (Kind == discretization::blocks::RepresentedValueKind::residual && !std::same_as<MetricT, UnitMetric> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, PointQuantityT> && ProvidesScale<ScalesT, dimensions::Length>) |
| auto | coordinate_computation (WithPointRows< DimensionlessRieszCoordinate< QuantityT, MetricT, Geometry >, PointQuantityT, SelectionT >) |
| | Remove geometric units only from weak rows, leaving each strong point equation in its own physical units.
|
| |
template<discretization::blocks::RepresentedValueKind Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename PrescriptionT>
requires requires(const std::remove_cvref_t<PrescriptionT>& prescription, std::size_t size) { { prescription.prepare_factors(keys::Factors<Kind, CoordinateT>{}, size) } -> std::same_as<std::expected<std::vector<double>, std::string>>; } |
| auto | coordinate_computation (RuntimePreparedCoordinate< PrescriptionT >) |
| | Invoke only the exact declared prescription, supplied as a tracked source rather than a hidden mutable capture.
|
| |
| std::expected< DiagonalNormalization, std::string > | pack_normalization (std::span< const std::span< const double > > states, std::span< const std::span< const double > > residuals) |
| | Freeze independently ordered state and residual blocks into their packed solver coordinates.
|
| |
| std::expected< void, std::string > | validate_factors (std::span< const double > factors) |
| | Require finite positive factors before accepting custom or packed normalization.
|
| |
| std::expected< std::size_t, std::string > | validate_coordinate_size (std::size_t size, bool global_scalar) |
| | Check representable coordinate storage and the fixed arity of global scalar terms.
|
| |
| std::expected< void, std::string > | check_coordinate_size (std::size_t expected, std::size_t received) |
| | Compare metric or factor size with the independently declared coordinate layout.
|
| |
| void | require_normalization_size (std::size_t received, std::size_t expected) |
| | Require matching coordinate sizes before any output is modified.
|
| |
| void | apply_normalization (std::span< const double > factors, std::span< const double > input, std::span< double > output, bool inverse) |
| | Apply a diagonal in place or to disjoint storage, rejecting partial overlap.
|
| |
| std::expected< double, std::string > | dimensionless_riesz_scale (discretization::blocks::RepresentedValueKind kind, ReferenceGeometry geometry, double physical_scale, double reference_radius) |
| | Include reference geometry in the scale consumed by the existing Riesz factor calculation.
|
| |
| template<typename CoordinateT> |
| consteval auto | metric_term () |
| | Resolve assembled row identity without confusing a point-border row with its sampled field.
|
| |
| template<typename CoordinateT> |
| consteval auto | default_metric () |
| | Select ordinary FE or algebraic metrics from the existing physical representation.
|
| |
| template<typename... Declared, typename... Required> |
| consteval bool | exact_coordinates (utils::dependencies::KeyList< Declared... >, utils::dependencies::KeyList< Required... >) |
| | Compare memberships in both directions without deduplicating ownership declarations.
|
| |
| template<typename KeyT, typename QuantityT, discretization::blocks::RepresentedValueKind Kind> |
| consteval bool | quantity_matches () |
| | Check physics metadata when present; explicit low-level residual declarations remain their own authority.
|
| |