SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::equations::BarotropicDensityBalance< EOS > Class Template Referencefinal

Enforce A(rho) - A(rho_surface) + Phi - Omega^2 Psi - U_surface = 0 using density test values. This closure assumes a connected barotrope in rigid rotation. More...

#include <barotropic_density.hpp>

Inheritance diagram for serif::equations::BarotropicDensityBalance< EOS >:
[legend]
Collaboration diagram for serif::equations::BarotropicDensityBalance< EOS >:
[legend]

Public Types

using Density = discretization::blocks::density::mass
 
using Potential = discretization::blocks::gravity::potential
 
using SurfaceLevel = discretization::blocks::barotropic_constant::mass_normalization
 
using AngularVelocity = discretization::blocks::rotation::angular_velocity
 
using Operands
 
using ResidualQuantity = dimensions::BarotropicPressurePotential
 
using IsobaricSurfaceField = Density
 
- Public Types inherited from serif::equations::Contribution< discretization::forms::Operand< discretization::blocks::density::mass > >
using Test
 The test type of the contribution.
 
using TestOperand
 The operand type of the contribution (associating a test function and a term)
 
using Support
 The domain support of the contribution (which then boils down to the dofs which are supported by the term on that test function)
 

Public Member Functions

 BarotropicDensityBalance (EOS equation_of_state, const dimensions::PressureValue surface_pressure=dimensions::PressureValue{0.0}, const RigidRotation::Vector &axis={0.0, 0.0, 1.0}, const RigidRotation::Vector &center={}, std::optional< PointMassCompanion > companion=std::nullopt)
 Borrow or own the EOS and fix its surface reference at the model's pressure and rotation convention.
 
PointLinearization< Operands > evaluate (const EquationPoint< Operands > &point) const
 Evaluate the local pressure-potential balance and its tangent on the positive density branch.
 
const EOS & equation_of_state () const noexcept
 Inspect the EOS supplying the pressure primitive and its slope.
 
dimensions::PressureValue surface_pressure () const noexcept
 Inspect the pressure defining the primitive's surface reference.
 
const RigidRotation & rotation () const noexcept
 Inspect the shared physical rotation convention.
 
const std::optional< PointMassCompanion > & companion () const noexcept
 Inspect the companion, if any.
 

Static Public Member Functions

template<typename Operand>
static int additional_order (Operand, const int position_order)
 Reserve a nonlinear coefficient budget; general EOS quadrature remains user-overridable.
 

Static Public Attributes

static constexpr std::string_view name = "barotropic density balance"
 

Private Attributes

EOS m_eos
 
dimensions::PressureValue m_surface_pressure
 
RigidRotation m_rotation
 
std::optional< PointMassCompanion > m_companion
 
double m_surface_pressure_potential
 

Detailed Description

template<eos::models::EOSModel EOS>
requires eos::models::EOSSupportingRelation<EOS, eos::relations::PressurePotentialFromDensity> && eos::models::EOSSupportingRelation<EOS, eos::relations::DensityFromPressure> && eos::models::EOSSupportingPartialDerivative<EOS, eos::relations::PressureFromDensity, dimensions::MassDensity>
class serif::equations::BarotropicDensityBalance< EOS >

Enforce A(rho) - A(rho_surface) + Phi - Omega^2 Psi - U_surface = 0 using density test values. This closure assumes a connected barotrope in rigid rotation.

TODO: Add more detail to this comment, pull from the paper?

Member Typedef Documentation

◆ AngularVelocity

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::AngularVelocity = discretization::blocks::rotation::angular_velocity

◆ Density

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::Density = discretization::blocks::density::mass

◆ IsobaricSurfaceField

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::IsobaricSurfaceField = Density

◆ Operands

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::Operands
Initial value:

◆ Potential

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::Potential = discretization::blocks::gravity::potential

◆ ResidualQuantity

template<eos::models::EOSModel EOS>
using serif::equations::BarotropicDensityBalance< EOS >::ResidualQuantity = dimensions::BarotropicPressurePotential

◆ SurfaceLevel

Constructor & Destructor Documentation

◆ BarotropicDensityBalance()

template<eos::models::EOSModel EOS>
serif::equations::BarotropicDensityBalance< EOS >::BarotropicDensityBalance ( EOS equation_of_state,
const dimensions::PressureValue surface_pressure = dimensions::PressureValue{0.0},
const RigidRotation::Vector & axis = {0.0, 0.0, 1.0},
const RigidRotation::Vector & center = {},
std::optional< PointMassCompanion > companion = std::nullopt )
inlineexplicit

Borrow or own the EOS and fix its surface reference at the model's pressure and rotation convention.

Member Function Documentation

◆ additional_order()

template<eos::models::EOSModel EOS>
template<typename Operand>
static int serif::equations::BarotropicDensityBalance< EOS >::additional_order ( Operand ,
const int position_order )
inlinestaticnodiscard

Reserve a nonlinear coefficient budget; general EOS quadrature remains user-overridable.

◆ companion()

template<eos::models::EOSModel EOS>
const std::optional< PointMassCompanion > & serif::equations::BarotropicDensityBalance< EOS >::companion ( ) const
inlinenodiscardnoexcept

Inspect the companion, if any.

◆ equation_of_state()

template<eos::models::EOSModel EOS>
const EOS & serif::equations::BarotropicDensityBalance< EOS >::equation_of_state ( ) const
inlinenodiscardnoexcept

Inspect the EOS supplying the pressure primitive and its slope.

◆ evaluate()

template<eos::models::EOSModel EOS>
PointLinearization< Operands > serif::equations::BarotropicDensityBalance< EOS >::evaluate ( const EquationPoint< Operands > & point) const
inlinenodiscard

Evaluate the local pressure-potential balance and its tangent on the positive density branch.

◆ rotation()

template<eos::models::EOSModel EOS>
const RigidRotation & serif::equations::BarotropicDensityBalance< EOS >::rotation ( ) const
inlinenodiscardnoexcept

Inspect the shared physical rotation convention.

◆ surface_pressure()

template<eos::models::EOSModel EOS>
dimensions::PressureValue serif::equations::BarotropicDensityBalance< EOS >::surface_pressure ( ) const
inlinenodiscardnoexcept

Inspect the pressure defining the primitive's surface reference.

Member Data Documentation

◆ m_companion

template<eos::models::EOSModel EOS>
std::optional<PointMassCompanion> serif::equations::BarotropicDensityBalance< EOS >::m_companion
private

◆ m_eos

template<eos::models::EOSModel EOS>
EOS serif::equations::BarotropicDensityBalance< EOS >::m_eos
private

◆ m_rotation

template<eos::models::EOSModel EOS>
RigidRotation serif::equations::BarotropicDensityBalance< EOS >::m_rotation
private

◆ m_surface_pressure

template<eos::models::EOSModel EOS>
dimensions::PressureValue serif::equations::BarotropicDensityBalance< EOS >::m_surface_pressure
private

◆ m_surface_pressure_potential

template<eos::models::EOSModel EOS>
double serif::equations::BarotropicDensityBalance< EOS >::m_surface_pressure_potential
private

◆ name

template<eos::models::EOSModel EOS>
std::string_view serif::equations::BarotropicDensityBalance< EOS >::name = "barotropic density balance"
staticconstexpr

The documentation for this class was generated from the following file: