density_primal.cpp serif/equations/barotropic_density.hpp serif/equations/primal_gravity.hpp serif/equations/surface_potential.hpp serif/equations/mass_normalization.hpp serif/equations/angular_momentum.hpp serif/eos/models/polytropic.hpp serif/model/execution_validation.hpp serif/model/normalization/plan.hpp serif/solver/normalization/computations.hpp serif::compile_time_checks::density_primal::BoundDescription serif serif::compile_time_checks serif::compile_time_checks::density_primal #include"serif/equations/barotropic_density.hpp" #include"serif/equations/primal_gravity.hpp" #include"serif/equations/surface_potential.hpp" #include"serif/equations/mass_normalization.hpp" #include"serif/equations/angular_momentum.hpp" #include"serif/eos/models/polytropic.hpp" #include"serif/model/execution_validation.hpp" #include"serif/model/normalization/plan.hpp" #include"serif/solver/normalization/computations.hpp" namespaceserif::compile_time_checks::density_primal{ namespaceblocks=discretization::blocks; namespacedependencies=utils::dependencies; namespacenormalization=solver::normalization; usingEOS=eos::models::Polytrope; usingBalance=equations::BarotropicDensityBalance<EOS>; usingRegistry=equations::EquationRegistry<Balance,equations::PrimalPoissonBalance, equations::MassNormalization,equations::AngularMomentumConstraint>; usingDescription=model::EquilibriumEquations<Registry, equations::SurfacePotentialBalance, geometry::surface::Isobaric>; structBoundDescription{ usingDescription=density_primal::Description; usingPlan=model::EquilibriumPlan<EOS, Description>; }; usingPlan=BoundDescription::Plan; usingRules=model::normalization::PlanFor<normalization::AutomaticPlan, normalization::Dimensionless, BoundDescription>; static_assert(operators::VolumeEquation<Balance>); static_assert(operators::VolumeEquation<equations::PrimalPoissonBalance>); static_assert(model::ExecutableEquilibriumDescription<Description>); static_assert(Plan::has_shape&&Plan::has_primal_gravity); static_assert(std::same_as<Plan::Shape::Coefficients,dependencies::KeyList<blocks::gravity::potential, blocks::barotropic_constant::mass_normalization,blocks::rotation::angular_velocity>>); static_assert(dependencies::key_count_v<Plan::Values>==5); static_assert(dependencies::key_count_v<Plan::Residuals>==5); static_assert(std::same_as<Plan::Surface::Formulation::CarrierTerm,blocks::density::mass>); static_assert(normalization::NormalizationPreparable<Rules,Plan::Layout>); static_assert(normalization::CompleteNormalizationFor<Rules,Plan::Values,Plan::Residuals>); static_assert(std::same_as<dependencies::bound_type_t<Rules::Residuals,blocks::surface_deformation::shape_equilibrium>, normalization::DimensionlessRieszCoordinate<dimensions::GravitationalPotential,normalization::UnitMetric>>); static_assert(std::same_as<dependencies::bound_type_t<Rules::Residuals,blocks::gravity::potential>, normalization::WithPointRows<normalization::DimensionlessRieszCoordinate<dimensions::InverseTimeSquared, normalization::ReferenceVolumeMetric<blocks::gravity::potential>>,dimensions::GravitationalPotential, model::normalization::InfinityRows>>); }