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)
316 lines
13 KiB
Groff
316 lines
13 KiB
Groff
.TH "src/compile_time_checks/serif/solver/normalization/plan.cpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/compile_time_checks/serif/solver/normalization/plan.cpp
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include <array>\fP
|
|
.br
|
|
\fR#include <concepts>\fP
|
|
.br
|
|
\fR#include <cstddef>\fP
|
|
.br
|
|
\fR#include <expected>\fP
|
|
.br
|
|
\fR#include <string>\fP
|
|
.br
|
|
\fR#include <tuple>\fP
|
|
.br
|
|
\fR#include <type_traits>\fP
|
|
.br
|
|
\fR#include <utility>\fP
|
|
.br
|
|
\fR#include <vector>\fP
|
|
.br
|
|
\fR#include 'serif/solver/normalization/computations\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/solver/normalization/physical_coordinates\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/equations/angular_momentum\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/equations/mass_normalization\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/equations/primal_gravity\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/eos/models/polytropic\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/utils/dependencies/computation_cache\&.hpp'\fP
|
|
.br
|
|
|
|
.SS "Classes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::FirstValue\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::SecondValue\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::FirstResidual\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::SecondResidual\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::ForeignCoordinate\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::PressureRow\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::MassRow\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::CentralRow\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::SelectedSurfaceRows\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::CustomDensityMetric\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::SharedFieldMetric\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::MalformedMetric\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::MissingMetricMetadata\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::DuplicateMetricCoordinates\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::PretendRieszMethod\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::MoveOnlyPrescription\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::PreparedPrescription\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::DerivedPrescription\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::ConvertiblePrescription\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::WrongPreparationResult\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::BorrowedPreparationResult\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::StateOnlyPrescription\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::AliasesOnlyLayout\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::TemperatureCoordinate\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::TemperatureMetric\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::TemperatureScales\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "struct \fBserif::solver::normalization::checks::UntypedTemperatureScales\fP"
|
|
.br
|
|
.in -1c
|
|
.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::checks\fP"
|
|
.br
|
|
.in -1c
|
|
.SS "Concepts"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "concept \fBserif::solver::normalization::checks::CanDeclareLayout\fP"
|
|
.br
|
|
.RI "Keep invalid layout declarations safely testable without instantiating their storage\&. "
|
|
.ti -1c
|
|
.RI "concept \fBserif::solver::normalization::checks::CanDeclareRuntimeMethod\fP"
|
|
.br
|
|
.RI "Require explicit policy identity rather than accepting unrelated preparation-like objects\&. "
|
|
.in -1c
|
|
.SS "Typedefs"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::Displacement\fP = blocks::displacement::vector"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::AngularVelocity\fP = blocks::rotation::angular_velocity"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::CentralBorder\fP = blocks::frame_acceleration::component<0>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::SurfaceCoefficients\fP = blocks::surface_deformation::coefficients"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::SurfaceEquilibrium\fP = blocks::surface_deformation::shape_equilibrium"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::Values\fP = KeyList<\fBFirstValue\fP, \fBSecondValue\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::Residuals\fP = KeyList<\fBFirstResidual\fP, \fBSecondResidual\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ValueRules\fP = Bindings<Binding<\fBFirstValue\fP, \fBIdentityCoordinate\fP>, Binding<\fBSecondValue\fP, \fBIdentityCoordinate\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ResidualRules\fP = Bindings<Binding<\fBFirstResidual\fP, \fBIdentityCoordinate\fP>, Binding<\fBSecondResidual\fP, \fBIdentityCoordinate\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::CompletePlan\fP = \fBNormalizationPlan\fP<\fBValueRules\fP, \fBResidualRules\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ReorderedPlan\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MissingValue\fP = \fBNormalizationPlan\fP<Bindings<Binding<\fBFirstValue\fP, \fBIdentityCoordinate\fP>>, \fBResidualRules\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MissingResidual\fP = \fBNormalizationPlan\fP<\fBValueRules\fP, Bindings<Binding<\fBFirstResidual\fP, \fBIdentityCoordinate\fP>>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DuplicateValue\fP = \fBNormalizationPlan\fP<Bindings<Binding<\fBFirstValue\fP, \fBIdentityCoordinate\fP>, Binding<\fBFirstValue\fP, \fBIdentityCoordinate\fP>>, \fBResidualRules\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DuplicateResidual\fP = \fBNormalizationPlan\fP<\fBValueRules\fP, Bindings<Binding<\fBFirstResidual\fP, \fBIdentityCoordinate\fP>, Binding<\fBFirstResidual\fP, \fBIdentityCoordinate\fP>>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ForeignValue\fP = \fBNormalizationPlan\fP<Bindings<Binding<\fBFirstValue\fP, \fBIdentityCoordinate\fP>, Binding<\fBForeignCoordinate\fP, \fBIdentityCoordinate\fP>>, \fBResidualRules\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ForeignResidual\fP = \fBNormalizationPlan\fP<\fBValueRules\fP, Bindings<Binding<\fBFirstResidual\fP, \fBIdentityCoordinate\fP>, Binding<\fBForeignCoordinate\fP, \fBIdentityCoordinate\fP>>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::Layout\fP = \fBCoordinateLayout\fP<const \fBValues\fP&, volatile \fBResiduals\fP&&>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DensityRiesz\fP = \fBPhysicalRieszCoordinate\fP<\fBdimensions::MassDensity\fP, \fBReferenceVolumeMetric\fP<\fBDensity\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DisplacementRiesz\fP = \fBPhysicalRieszCoordinate\fP<\fBdimensions::Length\fP, \fBReferenceVolumeMetric\fP<\fBDisplacement\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PhysicalValues\fP = \fBNormalizationPlan\fP<Bindings<Binding<\fBDensity\fP, \fBDensityRiesz\fP>, Binding<\fBDisplacement\fP, \fBDisplacementRiesz\fP>>, Bindings<>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PressureRiesz\fP = \fBPhysicalRieszCoordinate\fP<\fBdimensions::Pressure\fP, \fBReferenceVolumeMetric\fP<\fBDensity\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PotentialRiesz\fP = \fBPhysicalRieszCoordinate\fP<\fBdimensions::GravitationalPotential\fP, \fBReferenceVolumeMetric\fP<\fBPotential\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::HybridResidual\fP = \fBWithPointRows\fP<\fBPotentialRiesz\fP, \fBdimensions::Pressure\fP, \fBSelectedSurfaceRows\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ScalarValues\fP = KeyList<\fBMassConstant\fP, \fBAngularVelocity\fP, \fBCentralBorder\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::CustomMethod\fP = \fBRuntimePreparedCoordinate\fP<const \fBMoveOnlyPrescription\fP&>"
|
|
.br
|
|
.ti -1c
|
|
.RI "template<typename Policy> using \fBserif::solver::normalization::checks::PolicyPlan\fP"
|
|
.br
|
|
.RI "Apply one declared policy independently to state and residual coordinates\&. "
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PolicyLayout\fP = \fBCoordinateLayout\fP<KeyList<\fBDensity\fP>, KeyList<\fBPressureRow\fP>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::QualifiedPolicyComputation\fP = decltype(\fBdetail::coordinate_computation\fP<blocks::RepresentedValueKind::value, \fBDensity\fP, \fBPolicyLayout\fP, \fBStellarReferenceScales\fP>(\fBRuntimePreparedCoordinate\fP<const \fBPreparedPrescription\fP&>{}))"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::TemperaturePlan\fP = \fBNormalizationPlan\fP<Bindings<Binding<\fBTemperatureCoordinate\fP, \fBPhysicalRieszCoordinate\fP<\fBdimensions::Temperature\fP, \fBTemperatureMetric\fP>>>, Bindings<>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::TemperatureLayout\fP = \fBCoordinateLayout\fP<KeyList<\fBTemperatureCoordinate\fP>, KeyList<>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "template<typename Key, typename Value> using \fBserif::solver::normalization::checks::OwnedSource\fP = decltype(dependencies::own<Key>(std::declval<Value>()))"
|
|
.br
|
|
.RI "Describe an explicitly owned source using the same factory as runtime clients\&. "
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MetricLayout\fP = \fBCoordinateLayout\fP<KeyList<\fBDensity\fP, \fBDisplacement\fP>, KeyList<>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MetricComputations\fP = decltype(\fBmake_normalization_computations\fP<const \fBPhysicalValues\fP&>(std::declval<const \fBMetricLayout\fP&>()))"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MetricGraph\fP = decltype(\fBgraph_type\fP(std::declval<\fBMetricComputations\fP>()))"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::LayoutSource\fP = \fBOwnedSource\fP<\fBkeys::Layout\fP, \fBMetricLayout\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::ScaleSource\fP = \fBOwnedSource\fP<\fBkeys::Scales\fP, \fBStellarReferenceScales\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DensityMetricSource\fP = \fBOwnedSource\fP<\fBReferenceVolumeMetric\fP<\fBDensity\fP>, std::vector<double>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::DisplacementMetricSource\fP = \fBOwnedSource\fP<\fBReferenceVolumeMetric\fP<\fBDisplacement\fP>, std::vector<double>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::CompleteMetricContext\fP = dependencies::DependencyContext<\fBLayoutSource\fP, \fBScaleSource\fP, \fBDensityMetricSource\fP, \fBDisplacementMetricSource\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::MissingMetricContext\fP = dependencies::DependencyContext<\fBLayoutSource\fP, \fBScaleSource\fP, \fBDensityMetricSource\fP>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::WrongMetricContext\fP = dependencies::DependencyContext<\fBLayoutSource\fP, \fBScaleSource\fP, \fBDensityMetricSource\fP, \fBOwnedSource\fP<\fBReferenceVolumeMetric\fP<\fBDisplacement\fP>, std::vector<int>>>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PolicyComputations\fP = decltype(\fBmake_normalization_computations\fP<\fBPolicyPlan\fP<\fBPreparedPrescription\fP>>(std::declval<const \fBPolicyLayout\fP&>()))"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBserif::solver::normalization::checks::PolicyGraph\fP = decltype(\fBgraph_type\fP(std::declval<\fBPolicyComputations\fP>()))"
|
|
.br
|
|
.ti -1c
|
|
.RI "template<typename SuppliedPrescription> using \fBserif::solver::normalization::checks::PolicyContext\fP = dependencies::DependencyContext<\fBOwnedSource\fP<\fBkeys::Layout\fP, \fBPolicyLayout\fP>, \fBOwnedSource\fP<\fBkeys::Prescription\fP<\fBPreparedPrescription\fP>, SuppliedPrescription>>"
|
|
.br
|
|
.RI "Vary the supplied resource type while keeping the plan's prescription key unchanged\&. "
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "\fBdimensions::QuantityValue\fP< \fBdimensions::Temperature\fP > \fBserif::solver::normalization::checks::characteristic_scale\fP (const \fBTemperatureScales\fP &, \fBdimensions::Temperature\fP)"
|
|
.br
|
|
.RI "External thermodynamic scales participate through their own typed ADL provider\&. "
|
|
.ti -1c
|
|
.RI "double \fBserif::solver::normalization::checks::characteristic_scale\fP (const \fBUntypedTemperatureScales\fP &, \fBdimensions::Temperature\fP)"
|
|
.br
|
|
.RI "A raw number cannot silently stand in for a scale carrying the requested quantity\&. "
|
|
.ti -1c
|
|
.RI "template<typename\&.\&.\&. Computations> auto \fBserif::solver::normalization::checks::graph_type\fP (std::tuple< Computations\&.\&.\&. >) \-> decltype(dependencies::make_computation_graph(std::declval< Computations >()\&.\&.\&.))"
|
|
.br
|
|
.RI "Inspect the public graph's type without constructing or preparing numerical objects\&. "
|
|
.in -1c
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|