122 lines
6.5 KiB
Groff
122 lines
6.5 KiB
Groff
|
|
.TH "src/include/serif/solver/normalization/detail/factor_computations.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
||
|
|
.ad l
|
||
|
|
.nh
|
||
|
|
.SH NAME
|
||
|
|
src/include/serif/solver/normalization/detail/factor_computations.hpp
|
||
|
|
.SH SYNOPSIS
|
||
|
|
.br
|
||
|
|
.PP
|
||
|
|
\fR#include <concepts>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <cstddef>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <expected>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <string>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <type_traits>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <vector>\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/keys\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/layout\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/plan\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/diagonal\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/detail/validation\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/point_rows\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/solver/normalization/scales\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/utils/dependencies/computation\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
|
||
|
|
.SS "Namespaces"
|
||
|
|
|
||
|
|
.in +1c
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::solver\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::solver::normalization\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::solver::normalization::detail\fP"
|
||
|
|
.br
|
||
|
|
.in -1c
|
||
|
|
.SS "Concepts"
|
||
|
|
|
||
|
|
.in +1c
|
||
|
|
.ti -1c
|
||
|
|
.RI "concept \fBserif::solver::normalization::detail::ProvidesScale\fP"
|
||
|
|
.br
|
||
|
|
.in -1c
|
||
|
|
.SS "Functions"
|
||
|
|
|
||
|
|
.in +1c
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, CoordinateLayoutType LayoutT> std::expected< std::size_t, std::string > \fBserif::solver::normalization::detail::coordinate_size\fP (const LayoutT &layout)"
|
||
|
|
.br
|
||
|
|
.RI "Reject a layout that changes the arity of a declared global scalar\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, CoordinateLayoutType LayoutT> std::expected< void, std::string > \fBserif::solver::normalization::detail::check_coordinate_size\fP (const LayoutT &layout, std::size_t received)"
|
||
|
|
.br
|
||
|
|
.RI "Check supplied metrics or custom factors before publishing a coordinate result\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT> auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBIdentityCoordinate\fP)"
|
||
|
|
.br
|
||
|
|
.RI "Identity preparation requires a layout but no scale or metric sources\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT>
|
||
|
|
.br
|
||
|
|
requires ProvidesScale<ScalesT, QuantityT>auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBPhysicalRieszCoordinate\fP< QuantityT, \fBUnitMetric\fP >)"
|
||
|
|
.br
|
||
|
|
.RI "Algebraic coordinates use a scalar metric without allocating an intermediate vector of ones\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT>
|
||
|
|
.br
|
||
|
|
requires (!std::same_as<MetricT, \fBUnitMetric\fP> && ProvidesScale<ScalesT, QuantityT>)auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBPhysicalRieszCoordinate\fP< QuantityT, MetricT >)"
|
||
|
|
.br
|
||
|
|
.RI "Both coordinate roles consume the same cached reference metric with different primal/dual formulas\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, typename PointQuantityT, typename SelectionT>
|
||
|
|
.br
|
||
|
|
requires (Kind == \fBdiscretization::blocks::RepresentedValueKind::residual\fP && !std::same_as<MetricT, \fBUnitMetric\fP> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, PointQuantityT>)auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBWithPointRows\fP< \fBPhysicalRieszCoordinate\fP< QuantityT, MetricT >, PointQuantityT, SelectionT >)"
|
||
|
|
.br
|
||
|
|
.RI "Read the replacement's quantity independently of the bulk equation's scale\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT>
|
||
|
|
.br
|
||
|
|
requires ProvidesScale<ScalesT, QuantityT>auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBDimensionlessRieszCoordinate\fP< QuantityT, \fBUnitMetric\fP, \fBReferenceGeometry::algebraic\fP >)"
|
||
|
|
.br
|
||
|
|
.RI "Global scalars have no geometric measure to remove\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, \fBReferenceGeometry\fP Geometry>
|
||
|
|
.br
|
||
|
|
requires (!std::same_as<MetricT, \fBUnitMetric\fP> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, \fBdimensions::Length\fP>)auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBDimensionlessRieszCoordinate\fP< QuantityT, MetricT, Geometry >)"
|
||
|
|
.br
|
||
|
|
.RI "Cancel the reference measure while retaining the native finite-element coordinate representation\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename QuantityT, typename MetricT, \fBReferenceGeometry\fP Geometry, typename PointQuantityT, typename SelectionT>
|
||
|
|
.br
|
||
|
|
requires (Kind == \fBdiscretization::blocks::RepresentedValueKind::residual\fP && !std::same_as<MetricT, \fBUnitMetric\fP> && ProvidesScale<ScalesT, QuantityT> && ProvidesScale<ScalesT, PointQuantityT> && ProvidesScale<ScalesT, \fBdimensions::Length\fP>)auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBWithPointRows\fP< \fBDimensionlessRieszCoordinate\fP< QuantityT, MetricT, Geometry >, PointQuantityT, SelectionT >)"
|
||
|
|
.br
|
||
|
|
.RI "Remove geometric units only from weak rows, leaving each strong point equation in its own physical units\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<\fBdiscretization::blocks::RepresentedValueKind\fP Kind, typename CoordinateT, typename LayoutT, typename ScalesT, typename PrescriptionT>
|
||
|
|
.br
|
||
|
|
requires requires(const std::remove_cvref_t<PrescriptionT>& prescription, std::size_t size) { { prescription\&.prepare_factors(\fBkeys::Factors\fP<Kind, CoordinateT>{}, size) } \-> std::same_as<std::expected<std::vector<double>, std::string>>; }auto \fBserif::solver::normalization::detail::coordinate_computation\fP (\fBRuntimePreparedCoordinate\fP< PrescriptionT >)"
|
||
|
|
.br
|
||
|
|
.RI "Invoke only the exact declared prescription, supplied as a tracked source rather than a hidden mutable capture\&. "
|
||
|
|
.in -1c
|
||
|
|
.SH "Author"
|
||
|
|
.PP
|
||
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|