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

Prescribe angular momentum while angular velocity remains an independent solved coordinate. More...

#include <fixed_angular_momentum.hpp>

Collaboration diagram for serif::model::FixedAngularMomentum:
[legend]

Classes

struct  Parameters
 

Public Types

using ScalarDescription
 
using TargetValue = ScalarDescription::TargetValue
 
using ModelDefinition
 

Public Member Functions

 FixedAngularMomentum (TargetValue angular_momentum)
 Require finite nonnegative angular momentum about the default z axis.
 
 FixedAngularMomentum (Parameters parameters)
 Validate the physical target and normalize a finite nonzero rotation axis.
 
TargetValue target () const noexcept
 Inspect the prescribed total angular momentum.
 
const std::array< double, 3 > & axis () const noexcept
 Read the normalized rotation axis.
 
const std::array< double, 3 > & center () const noexcept
 Read the point through which the rotation axis passes.
 

Private Attributes

TargetValue m_target
 
std::array< double, 3 > m_axis
 
std::array< double, 3 > m_center
 

Detailed Description

Prescribe angular momentum while angular velocity remains an independent solved coordinate.

Member Typedef Documentation

◆ ModelDefinition

Initial value:
FixedAngularMomentum(TargetValue angular_momentum)
Require finite nonnegative angular momentum about the default z axis.
Definition specifications.cpp:31
ScalarConstraint< dimensions::AngularMomentum, dimensions::AngularVelocity, dimensions::AngularMomentum, "fixed_angular_momentum.angular_velocity", "Omega", "fixed_angular_momentum.residual", "R_J"> ScalarDescription
Definition fixed_angular_momentum.hpp:22
utils::types::TypeList< Fields... > Reads
Definition specification.hpp:43
utils::types::TypeList< Equations... > Changes
Definition specification.hpp:46
@ invariant
Definition specification.hpp:18
@ physical_coordinate
Definition specification.hpp:24
Declare a prescription once; numerical providers and normalization consume this metadata.
Definition specification.hpp:52

◆ ScalarDescription

Initial value:
"fixed_angular_momentum.angular_velocity", "Omega", "fixed_angular_momentum.residual", "R_J">
Dimension of Angular Momentum.
Definition dimensions.hpp:303
Dimension of Angular Velocity.
Definition dimensions.hpp:280
Declare independent target, unknown and residual units and stable descriptive identities.
Definition specification.hpp:31

◆ TargetValue

using serif::model::FixedAngularMomentum::TargetValue = ScalarDescription::TargetValue

Constructor & Destructor Documentation

◆ FixedAngularMomentum() [1/2]

serif::model::FixedAngularMomentum::FixedAngularMomentum ( TargetValue angular_momentum)
explicit

Require finite nonnegative angular momentum about the default z axis.

Use the default rotation axis for a dimensional angular momentum target.

◆ FixedAngularMomentum() [2/2]

serif::model::FixedAngularMomentum::FixedAngularMomentum ( Parameters parameters)
explicit

Validate the physical target and normalize a finite nonzero rotation axis.

Preserve arbitrary finite axes and centers without overflowing the normalization calculation.

Member Function Documentation

◆ axis()

const std::array< double, 3 > & serif::model::FixedAngularMomentum::axis ( ) const
inlinenodiscardnoexcept

Read the normalized rotation axis.

◆ center()

const std::array< double, 3 > & serif::model::FixedAngularMomentum::center ( ) const
inlinenodiscardnoexcept

Read the point through which the rotation axis passes.

◆ target()

TargetValue serif::model::FixedAngularMomentum::target ( ) const
inlinenodiscardnoexcept

Inspect the prescribed total angular momentum.

Member Data Documentation

◆ m_axis

std::array<double, 3> serif::model::FixedAngularMomentum::m_axis
private

◆ m_center

std::array<double, 3> serif::model::FixedAngularMomentum::m_center
private

◆ m_target

TargetValue serif::model::FixedAngularMomentum::m_target
private

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