barotropic_density.cpp serif/equations/angular_momentum.hpp serif/equations/barotropic_density.hpp serif/equations/mass_normalization.hpp serif/equations/primal_gravity.hpp serif/equations/surface_potential.hpp serif/eos/models/polytropic.hpp serif/model/eos_reference.hpp serif/model/execution_validation.hpp serif/model/normalization/plan.hpp serif/solver/normalization/computations.hpp serif::compile_time_checks::barotropic_density::MechanicalBarotrope serif::compile_time_checks::barotropic_density::BoundDescription serif serif::compile_time_checks serif::compile_time_checks::barotropic_density #include"serif/equations/angular_momentum.hpp" #include"serif/equations/barotropic_density.hpp" #include"serif/equations/mass_normalization.hpp" #include"serif/equations/primal_gravity.hpp" #include"serif/equations/surface_potential.hpp" #include"serif/eos/models/polytropic.hpp" #include"serif/model/eos_reference.hpp" #include"serif/model/execution_validation.hpp" #include"serif/model/normalization/plan.hpp" #include"serif/solver/normalization/computations.hpp" namespaceserif::compile_time_checks::barotropic_density{ namespaceblocks=discretization::blocks; namespacedependencies=utils::dependencies; namespacenormalization=solver::normalization; structMechanicalBarotropefinal{ usingRelations=eos::relations::RelationCatalog<eos::relations::PressureFromDensity, eos::relations::DensityFromPressure,eos::relations::PressurePotentialFromDensity>; dimensions::PressureValueevaluate(eos::relations::PressureFromDensity,dimensions::DensityValue)const; dimensions::DensityValueevaluate(eos::relations::DensityFromPressure,dimensions::PressureValue)const; dimensions::BarotropicPressurePotentialValueevaluate(eos::relations::PressurePotentialFromDensity,dimensions::DensityValue)const; dimensions::PartialDerivative<dimensions::Pressure, dimensions::MassDensity>partial_derivative( eos::relations::PressureFromDensity,dimensions::WithRespectTo<dimensions::MassDensity>,dimensions::DensityValue)const; }; usingBalance=equations::BarotropicDensityBalance<MechanicalBarotrope>; usingBorrowedBalance=equations::BarotropicDensityBalance<model::EosReference<MechanicalBarotrope>>; usingRegistry=equations::EquationRegistry<Balance,equations::PrimalPoissonBalance, equations::MassNormalization,equations::AngularMomentumConstraint>; usingDescription=model::EquilibriumEquations<Registry, equations::SurfacePotentialBalance, geometry::surface::Isobaric>; structBoundDescription{ usingDescription=barotropic_density::Description; usingPlan=model::EquilibriumPlan<MechanicalBarotrope, Description>; }; usingPlan=BoundDescription::Plan; usingRules=model::normalization::PlanFor<normalization::AutomaticPlan, normalization::Dimensionless, BoundDescription>; static_assert(dimensions::ThermodynamicQuantityType<dimensions::BarotropicPressurePotential>); static_assert(!std::same_as<dimensions::BarotropicPressurePotential,dimensions::SpecificEnthalpy>); static_assert(eos::models::EOSSupportingRelation<eos::models::Polytrope, eos::relations::PressurePotentialFromDensity>); static_assert(eos::models::EOSModel<MechanicalBarotrope>); static_assert(!eos::models::EOSSupportingRelation<MechanicalBarotrope, eos::relations::SpecificEnthalpyFromDensity>); static_assert(!eos::models::EOSSupportingSecondPartialDerivative<MechanicalBarotrope, eos::relations::PressureFromDensity,dimensions::MassDensity,dimensions::MassDensity>); static_assert(operators::VolumeEquation<Balance>); static_assert(operators::VolumeEquation<BorrowedBalance>); static_assert(std::same_as<Balance::TestOperand,discretization::forms::Operand<blocks::density::mass>>); static_assert(std::same_as<Balance::ResidualQuantity,dimensions::BarotropicPressurePotential>); static_assert(model::ExecutableEquilibriumDescription<Description>); static_assert(Plan::has_shape&&Plan::has_primal_gravity); 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::density::mass>, normalization::WithPointRows<normalization::DimensionlessRieszCoordinate<dimensions::BarotropicPressurePotential, normalization::ReferenceVolumeMetric<blocks::density::mass>>,dimensions::MassDensity,model::normalization::SurfaceRows>>); static_assert(std::same_as<dependencies::bound_type_t<Rules::Values,blocks::density::mass>, normalization::DimensionlessRieszCoordinate<dimensions::MassDensity,normalization::ReferenceVolumeMetric<blocks::density::mass>>>); }