SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::equations::AngularMomentum Class Referencefinal

Close the unknown angular speed with integral_star rho Omega s^2 dV - target_momentum = 0. More...

#include <angular_momentum.hpp>

Inheritance diagram for serif::equations::AngularMomentum:
[legend]
Collaboration diagram for serif::equations::AngularMomentum:
[legend]

Public Types

using Density = discretization::blocks::density::mass
 
using ResidualQuantity = dimensions::AngularMomentum
 
using AngularVelocity = discretization::blocks::rotation::angular_velocity
 
using DensityValue = discretization::forms::Operand<Density>
 
using AngularVelocityValue = discretization::forms::Operand<AngularVelocity>
 
using Operands = utils::types::TypeList<DensityValue, AngularVelocityValue>
 
- Public Types inherited from serif::equations::Contribution< discretization::forms::Operand< discretization::blocks::rotation::angular_velocity > >
using Test
 
using TestOperand
 
using Support
 

Public Member Functions

 AngularMomentum (double target_momentum, RigidRotation::Vector axis={0.0, 0.0, 1.0}, RigidRotation::Vector center={})
 The target is nonnegative; signed angular speeds remain valid trial states.
 
PointLinearization< Operands > evaluate (const EquationPoint< Operands > &point) const
 
int additional_order (DensityValue, int position_order) const
 
int additional_order (AngularVelocityValue, int position_order) const
 
double residual_offset () const
 
double validation_integrand (const EquationPoint< Operands > &, const PointLinearization< Operands > &physics) const
 dF/dOmega is rho s^2, including at zero angular speed.
 
void validate_integral (double moment_of_inertia) const
 Validate the total moment, allowing signed trial densities with nonnegative inertia.
 

Static Public Attributes

static constexpr std::string_view name = "angular momentum"
 

Private Attributes

double m_target_momentum
 
RigidRotation m_rotation
 

Detailed Description

Close the unknown angular speed with integral_star rho Omega s^2 dV - target_momentum = 0.

Member Typedef Documentation

◆ AngularVelocity

◆ AngularVelocityValue

◆ Density

◆ DensityValue

◆ Operands

◆ ResidualQuantity

Constructor & Destructor Documentation

◆ AngularMomentum()

serif::equations::AngularMomentum::AngularMomentum ( double target_momentum,
RigidRotation::Vector axis = {0.0, 0.0, 1.0},
RigidRotation::Vector center = {} )
inlineexplicit

The target is nonnegative; signed angular speeds remain valid trial states.

Member Function Documentation

◆ additional_order() [1/2]

int serif::equations::AngularMomentum::additional_order ( AngularVelocityValue ,
int position_order ) const
inlinenodiscard

◆ additional_order() [2/2]

int serif::equations::AngularMomentum::additional_order ( DensityValue ,
int position_order ) const
inlinenodiscard

◆ evaluate()

PointLinearization< Operands > serif::equations::AngularMomentum::evaluate ( const EquationPoint< Operands > & point) const
inlinenodiscard

◆ residual_offset()

double serif::equations::AngularMomentum::residual_offset ( ) const
inlinenodiscard

◆ validate_integral()

void serif::equations::AngularMomentum::validate_integral ( double moment_of_inertia) const
inline

Validate the total moment, allowing signed trial densities with nonnegative inertia.

◆ validation_integrand()

double serif::equations::AngularMomentum::validation_integrand ( const EquationPoint< Operands > & ,
const PointLinearization< Operands > & physics ) const
inlinenodiscard

dF/dOmega is rho s^2, including at zero angular speed.

Member Data Documentation

◆ m_rotation

RigidRotation serif::equations::AngularMomentum::m_rotation
private

◆ m_target_momentum

double serif::equations::AngularMomentum::m_target_momentum
private

◆ name

std::string_view serif::equations::AngularMomentum::name = "angular momentum"
staticconstexpr

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