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

Classes

struct  ExtraField
 
struct  ExtraRow
 
struct  ExtraValue
 

Concepts

concept  Restrictable
 A borrowed raw operator cannot satisfy factories which retain their numerical prerequisites.
 
concept  ReadsCoordinate
 Detection of an absent coordinate must fail in constraints instead of instantiating a function body.
 
concept  ReadsBlock
 Only declared equation/unknown pairs are exposed by a borrowed linearization.
 
concept  HasOffset
 Malformed coordinate requests remain detection-safe on the owning metadata as well.
 
concept  HasPrimalPreconditioner
 Keep unsupported coordinate sets out of the primal recipe before its body is instantiated.
 

Typedefs

using Kind = blocks::RepresentedValueKind
 
using Mass = blocks::barotropic_constant::mass_normalization
 
using Reaction = blocks::frame_acceleration::component<0>
 
using Density = blocks::density::mass
 
using Keys = dependencies::KeyList<Mass, Reaction>
 
using Layout = blocks::SystemLayout<Keys, Keys>
 
using State = blocks::StateView<Layout>
 
using ConstantState = blocks::StateView<Layout, const double>
 
using Physical = operators::PhysicalBlock<Mass, Reaction>
 
using Sources = decltype(dependencies::make_dependency_context(dependencies::own<Physical>(1)))
 
using System = operators::LinearizedSystemView<Layout, Sources>
 
using ReorderedLayout = blocks::SystemLayout<Keys, dependencies::KeyList<Reaction, Mass>>
 
using Potential = blocks::gravity::potential
 
using Rotation = blocks::rotation::angular_velocity
 
using Shape = blocks::surface_deformation::coefficients
 
using ShapeRow = blocks::surface_deformation::shape_equilibrium
 
using PrimalFields = dependencies::KeyList<Density, Potential>
 
using PrimalFixedLayout = blocks::SystemLayout<PrimalFields, PrimalFields>
 
using PrimalMovingLayout
 
using PrimalRecipe = decltype(make_primal_preconditioner(std::declval<const PrimalMovingLayout&>()))
 
using PrimalExtraLayout
 
using PrimalExtraRecipe = decltype(make_primal_preconditioner(std::declval<const PrimalExtraLayout&>()))
 

Variables

constexpr ReorderedLayout resolved_layout
 

Typedef Documentation

◆ ConstantState

using serif::solver::preconditioner::checks::ConstantState = blocks::StateView<Layout, const double>

◆ Density

using serif::solver::preconditioner::checks::Density = blocks::density::mass

◆ Keys

◆ Kind

using serif::solver::preconditioner::checks::Kind = blocks::RepresentedValueKind

◆ Layout

◆ Mass

using serif::solver::preconditioner::checks::Mass = blocks::barotropic_constant::mass_normalization

◆ Physical

◆ Potential

using serif::solver::preconditioner::checks::Potential = blocks::gravity::potential

◆ PrimalExtraLayout

Initial value:
blocks::SystemLayout<dependencies::CombinedKeyList<PrimalFields, dependencies::KeyList<ExtraValue>>,
dependencies::CombinedKeyList<PrimalFields, dependencies::KeyList<ExtraRow>>>

◆ PrimalExtraRecipe

◆ PrimalFields

◆ PrimalFixedLayout

◆ PrimalMovingLayout

Initial value:
blocks::SystemLayout<dependencies::KeyList<Potential, Shape, Mass, Density, Rotation>,
dependencies::KeyList<Rotation, Mass, ShapeRow, Potential, Density>>

◆ PrimalRecipe

◆ Reaction

using serif::solver::preconditioner::checks::Reaction = blocks::frame_acceleration::component<0>

◆ ReorderedLayout

using serif::solver::preconditioner::checks::ReorderedLayout = blocks::SystemLayout<Keys, dependencies::KeyList<Reaction, Mass>>

◆ Rotation

using serif::solver::preconditioner::checks::Rotation = blocks::rotation::angular_velocity

◆ Shape

using serif::solver::preconditioner::checks::Shape = blocks::surface_deformation::coefficients

◆ ShapeRow

using serif::solver::preconditioner::checks::ShapeRow = blocks::surface_deformation::shape_equilibrium

◆ Sources

using serif::solver::preconditioner::checks::Sources = decltype(dependencies::make_dependency_context(dependencies::own<Physical>(1)))

◆ State

◆ System

Variable Documentation

◆ resolved_layout

ReorderedLayout serif::solver::preconditioner::checks::resolved_layout
constexpr
Initial value:
= blocks::make_system_layout<ReorderedLayout>([]<typename Coordinate>() {
if constexpr (std::same_as<Coordinate, Mass>) {
return 3;
} else {
return 1;
}
})