SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
validation.hpp File Reference
Include dependency graph for validation.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::model::detail::EquationCouplings< Equation, utils::types::TypeList< Columns... > >
 
struct  serif::model::detail::InteriorCouplings< equations::EquationRegistry< Equations... > >
 

Namespaces

namespace  serif
 
namespace  serif::model
 
namespace  serif::model::detail
 

Concepts

concept  serif::model::SpecificationEndpointsValid
 Validate physical ownership, available inputs and uniquely owned generated equations.
 
concept  serif::model::SpecificationTopologyValid
 Validate physical endpoints and every derivative in an explicitly declared contract.
 
concept  serif::model::SpecificationBackendAvailable
 Require a registered implementation for every declared generated derivative, including explicit zeros.
 

Typedefs

template<typename Row, typename Field>
using serif::model::Derivative = operators::PhysicalBlock<utils::dependencies::KeyList<Row>, utils::dependencies::KeyList<Field>>
 Name a physical derivative using the shared block-source key convention.
 
template<utils::dependencies::IsBinding... Additional>
using serif::model::SpecificationBindings
 Map physical names and built-in generated identities once; custom identities require explicit bindings.
 
using serif::model::DefaultSpecificationBindings = SpecificationBindings<>
 
template<ExecutableInteriorEquations Registry>
using serif::model::DeclaredEquationCouplings = typename detail::InteriorCouplings<std::remove_cvref_t<Registry>>::Type
 Derive declared interior couplings from actual operands rather than a second physical sparsity table.
 

Functions

template<DimensionalScalarSpecification Specification, typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings>
consteval bool serif::model::detail::valid_specification_endpoints ()
 Check physical inputs separately from unknowns and explicitly inactive equations.
 
template<typename Model, typename Values, typename Inputs, typename Rows, typename InactiveRows, typename Bindings, typename... Specifications>
consteval bool serif::model::detail::valid_specifications (utils::types::TypeList< Specifications... >)
 Fold independent physical declarations; no equation counting or rank inference is involved.
 
template<DimensionalScalarSpecification Specification, typename Couplings, typename Bindings>
consteval bool serif::model::detail::specification_derivatives_available ()
 Validate declared derivative contracts without inferring zeros from missing providers.
 
template<typename Couplings, typename Bindings, typename... Specifications>
consteval bool serif::model::detail::specification_derivatives_available (utils::types::TypeList< Specifications... >)
 Check each prescription against independently supplied derivative registrations.