SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::solver::normalization::checks Namespace Reference

Classes

struct  AliasesOnlyLayout
 
struct  BorrowedPreparationResult
 
struct  CentralRow
 
struct  ConvertiblePrescription
 
struct  CustomDensityMetric
 
struct  CustomMetric
 
struct  DerivedPrescription
 
struct  DuplicateMetricCoordinates
 
struct  FirstResidual
 
struct  FirstValue
 
struct  ForeignCoordinate
 
struct  MalformedMetric
 
struct  MassRow
 
struct  MissingMetricMetadata
 
struct  MoveOnlyPrescription
 
struct  PreparedPrescription
 
struct  PressureRow
 
struct  PretendRieszMethod
 
struct  SecondResidual
 
struct  SecondValue
 
struct  SelectedSurfaceRows
 
struct  Selection
 
struct  SharedFieldMetric
 
struct  StateOnlyPrescription
 
struct  TemperatureCoordinate
 
struct  TemperatureMetric
 
struct  TemperatureScales
 
struct  UntypedTemperatureScales
 
struct  WrongPreparationResult
 

Concepts

concept  HasDefaultDimensionlessGeometry
 Custom metrics must state their coordinate convention instead of silently assuming volume weighting.
 
concept  CanDeclareLayout
 Keep invalid layout declarations safely testable without instantiating their storage.
 
concept  CanDeclareRuntimeMethod
 Require explicit policy identity rather than accepting unrelated preparation-like objects.
 

Typedefs

using Density = discretization::blocks::density::mass
 
using Potential = discretization::blocks::gravity::potential
 
using Shape = discretization::blocks::surface_deformation::coefficients
 
using ShapeRow = discretization::blocks::surface_deformation::shape_equilibrium
 
using MassConstant = discretization::blocks::barotropic_constant::mass_normalization
 
using SurfaceMetric = geometry::deformation::keys::SurfaceMetric
 
using DensityMethod = DimensionlessRieszCoordinate<dimensions::MassDensity, ReferenceVolumeMetric<Density>>
 
using DensityLayout = CoordinateLayout<dependencies::KeyList<Density>, dependencies::KeyList<Density>>
 
using DensityPlan
 
using PressurePlan
 
using SelectedMethod = WithPointRows<DensityMethod, dimensions::Pressure, Selection>
 
using SurfacePlan
 
using ScalarPlan
 
using CustomPlan
 
using Displacement = blocks::displacement::vector
 
using AngularVelocity = blocks::rotation::angular_velocity
 
using CentralBorder = blocks::frame_acceleration::component<0>
 
using SurfaceCoefficients = blocks::surface_deformation::coefficients
 
using SurfaceEquilibrium = blocks::surface_deformation::shape_equilibrium
 
using Values = KeyList<FirstValue, SecondValue>
 
using Residuals = KeyList<FirstResidual, SecondResidual>
 
using ValueRules = Bindings<Binding<FirstValue, IdentityCoordinate>, Binding<SecondValue, IdentityCoordinate>>
 
using ResidualRules = Bindings<Binding<FirstResidual, IdentityCoordinate>, Binding<SecondResidual, IdentityCoordinate>>
 
using CompletePlan = NormalizationPlan<ValueRules, ResidualRules>
 
using ReorderedPlan
 
using MissingValue = NormalizationPlan<Bindings<Binding<FirstValue, IdentityCoordinate>>, ResidualRules>
 
using MissingResidual = NormalizationPlan<ValueRules, Bindings<Binding<FirstResidual, IdentityCoordinate>>>
 
using DuplicateValue = NormalizationPlan<Bindings<Binding<FirstValue, IdentityCoordinate>, Binding<FirstValue, IdentityCoordinate>>, ResidualRules>
 
using DuplicateResidual = NormalizationPlan<ValueRules, Bindings<Binding<FirstResidual, IdentityCoordinate>, Binding<FirstResidual, IdentityCoordinate>>>
 
using ForeignValue = NormalizationPlan<Bindings<Binding<FirstValue, IdentityCoordinate>, Binding<ForeignCoordinate, IdentityCoordinate>>, ResidualRules>
 
using ForeignResidual = NormalizationPlan<ValueRules, Bindings<Binding<FirstResidual, IdentityCoordinate>, Binding<ForeignCoordinate, IdentityCoordinate>>>
 
using Layout = CoordinateLayout<const Values&, volatile Residuals&&>
 
using DensityRiesz = PhysicalRieszCoordinate<dimensions::MassDensity, ReferenceVolumeMetric<Density>>
 
using DisplacementRiesz = PhysicalRieszCoordinate<dimensions::Length, ReferenceVolumeMetric<Displacement>>
 
using PhysicalValues = NormalizationPlan<Bindings<Binding<Density, DensityRiesz>, Binding<Displacement, DisplacementRiesz>>, Bindings<>>
 
using PressureRiesz = PhysicalRieszCoordinate<dimensions::Pressure, ReferenceVolumeMetric<Density>>
 
using PotentialRiesz = PhysicalRieszCoordinate<dimensions::GravitationalPotential, ReferenceVolumeMetric<Potential>>
 
using HybridResidual = WithPointRows<PotentialRiesz, dimensions::Pressure, SelectedSurfaceRows>
 
using ScalarValues = KeyList<MassConstant, AngularVelocity, CentralBorder>
 
using CustomMethod = RuntimePreparedCoordinate<const MoveOnlyPrescription&>
 
template<typename Policy>
using PolicyPlan
 Apply one declared policy independently to state and residual coordinates.
 
using PolicyLayout = CoordinateLayout<KeyList<Density>, KeyList<PressureRow>>
 
using QualifiedPolicyComputation = decltype(detail::coordinate_computation<blocks::RepresentedValueKind::value, Density, PolicyLayout, StellarReferenceScales>(RuntimePreparedCoordinate<const PreparedPrescription&>{}))
 
using TemperaturePlan = NormalizationPlan<Bindings<Binding<TemperatureCoordinate, PhysicalRieszCoordinate<dimensions::Temperature, TemperatureMetric>>>, Bindings<>>
 
using TemperatureLayout = CoordinateLayout<KeyList<TemperatureCoordinate>, KeyList<>>
 
template<typename Key, typename Value>
using OwnedSource = decltype(dependencies::own<Key>(std::declval<Value>()))
 Describe an explicitly owned source using the same factory as runtime clients.
 
using MetricLayout = CoordinateLayout<KeyList<Density, Displacement>, KeyList<>>
 
using MetricComputations = decltype(make_normalization_computations<const PhysicalValues&>(std::declval<const MetricLayout&>()))
 
using MetricGraph = decltype(graph_type(std::declval<MetricComputations>()))
 
using LayoutSource = OwnedSource<keys::Layout, MetricLayout>
 
using ScaleSource = OwnedSource<keys::Scales, StellarReferenceScales>
 
using DensityMetricSource = OwnedSource<ReferenceVolumeMetric<Density>, std::vector<double>>
 
using DisplacementMetricSource = OwnedSource<ReferenceVolumeMetric<Displacement>, std::vector<double>>
 
using CompleteMetricContext = dependencies::DependencyContext<LayoutSource, ScaleSource, DensityMetricSource, DisplacementMetricSource>
 
using MissingMetricContext = dependencies::DependencyContext<LayoutSource, ScaleSource, DensityMetricSource>
 
using WrongMetricContext = dependencies::DependencyContext<LayoutSource, ScaleSource, DensityMetricSource, OwnedSource<ReferenceVolumeMetric<Displacement>, std::vector<int>>>
 
using PolicyComputations = decltype(make_normalization_computations<PolicyPlan<PreparedPrescription>>(std::declval<const PolicyLayout&>()))
 
using PolicyGraph = decltype(graph_type(std::declval<PolicyComputations>()))
 
template<typename SuppliedPrescription>
using PolicyContext = dependencies::DependencyContext<OwnedSource<keys::Layout, PolicyLayout>, OwnedSource<keys::Prescription<PreparedPrescription>, SuppliedPrescription>>
 Vary the supplied resource type while keeping the plan's prescription key unchanged.
 

Functions

dimensions::QuantityValue< dimensions::Temperature > characteristic_scale (const TemperatureScales &, dimensions::Temperature)
 External thermodynamic scales participate through their own typed ADL provider.
 
double characteristic_scale (const UntypedTemperatureScales &, dimensions::Temperature)
 A raw number cannot silently stand in for a scale carrying the requested quantity.
 
template<typename... Computations>
auto graph_type (std::tuple< Computations... >) -> decltype(dependencies::make_computation_graph(std::declval< Computations >()...))
 Inspect the public graph's type without constructing or preparing numerical objects.
 

Typedef Documentation

◆ AngularVelocity

using serif::solver::normalization::checks::AngularVelocity = blocks::rotation::angular_velocity

◆ CentralBorder

using serif::solver::normalization::checks::CentralBorder = blocks::frame_acceleration::component<0>

◆ CompleteMetricContext

◆ CompletePlan

◆ CustomMethod

◆ CustomPlan

Initial value:
NormalizationPlan<dependencies::Bindings<dependencies::Binding<Density,
discretization::blocks::density::mass Density
Definition dimensionless.cpp:7
Measure coordinates using dimensionless physical fields and reference geometry.
Definition plan.hpp:39
Independent term-to-method and row-to-method maps; their order does not define the packed layout.
Definition plan.hpp:62

◆ Density

◆ DensityLayout

using serif::solver::normalization::checks::DensityLayout = CoordinateLayout<dependencies::KeyList<Density>, dependencies::KeyList<Density>>

◆ DensityMethod

◆ DensityMetricSource

◆ DensityPlan

Initial value:
dependencies::Bindings<dependencies::Binding<Density, DensityMethod>>>

◆ DensityRiesz

◆ Displacement

using serif::solver::normalization::checks::Displacement = blocks::displacement::vector

◆ DisplacementMetricSource

◆ DisplacementRiesz

◆ DuplicateResidual

◆ DuplicateValue

◆ ForeignResidual

◆ ForeignValue

◆ HybridResidual

◆ Layout

◆ LayoutSource

◆ MassConstant

◆ MetricComputations

◆ MetricGraph

◆ MetricLayout

◆ MissingMetricContext

◆ MissingResidual

◆ MissingValue

◆ OwnedSource

template<typename Key, typename Value>
using serif::solver::normalization::checks::OwnedSource = decltype(dependencies::own<Key>(std::declval<Value>()))

Describe an explicitly owned source using the same factory as runtime clients.

◆ PhysicalValues

◆ PolicyComputations

◆ PolicyContext

template<typename SuppliedPrescription>
using serif::solver::normalization::checks::PolicyContext = dependencies::DependencyContext<OwnedSource<keys::Layout, PolicyLayout>, OwnedSource<keys::Prescription<PreparedPrescription>, SuppliedPrescription>>

Vary the supplied resource type while keeping the plan's prescription key unchanged.

◆ PolicyGraph

◆ PolicyLayout

◆ PolicyPlan

template<typename Policy>
using serif::solver::normalization::checks::PolicyPlan
Initial value:
Bindings<Binding<Density, RuntimePreparedCoordinate<Policy>>>,
Bindings<Binding<PressureRow, RuntimePreparedCoordinate<Policy>>>>

Apply one declared policy independently to state and residual coordinates.

◆ Potential

◆ PotentialRiesz

◆ PressurePlan

◆ PressureRiesz

◆ QualifiedPolicyComputation

◆ ReorderedPlan

Initial value:
Bindings<Binding<SecondValue, IdentityCoordinate>, Binding<FirstValue, IdentityCoordinate>>,
Bindings<Binding<SecondResidual, IdentityCoordinate>, Binding<FirstResidual, IdentityCoordinate>>>

◆ ResidualRules

◆ Residuals

◆ ScalarPlan

Initial value:
dependencies::Bindings<dependencies::Binding<MassConstant, DimensionlessRieszCoordinate<dimensions::Mass, UnitMetric>>>>

◆ ScalarValues

◆ ScaleSource

◆ SelectedMethod

◆ Shape

◆ ShapeRow

◆ SurfaceCoefficients

using serif::solver::normalization::checks::SurfaceCoefficients = blocks::surface_deformation::coefficients

◆ SurfaceEquilibrium

using serif::solver::normalization::checks::SurfaceEquilibrium = blocks::surface_deformation::shape_equilibrium

◆ SurfaceMetric

◆ SurfacePlan

Initial value:
dependencies::Bindings<dependencies::Binding<ShapeRow, DimensionlessRieszCoordinate<dimensions::Force, SurfaceMetric>>>>

◆ TemperatureLayout

◆ TemperaturePlan

◆ ValueRules

◆ Values

◆ WrongMetricContext

Function Documentation

◆ characteristic_scale() [1/2]

dimensions::QuantityValue< dimensions::Temperature > serif::solver::normalization::checks::characteristic_scale ( const TemperatureScales & ,
dimensions::Temperature  )
nodiscard

External thermodynamic scales participate through their own typed ADL provider.

◆ characteristic_scale() [2/2]

double serif::solver::normalization::checks::characteristic_scale ( const UntypedTemperatureScales & ,
dimensions::Temperature  )
nodiscard

A raw number cannot silently stand in for a scale carrying the requested quantity.

◆ graph_type()

template<typename... Computations>
auto serif::solver::normalization::checks::graph_type ( std::tuple< Computations... > ) -> decltype(dependencies::make_computation_graph(std::declval< Computations >()...))

Inspect the public graph's type without constructing or preparing numerical objects.