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

Fix one component of integral rho (x-center)/M_target. More...

#include <barycenter.hpp>

Inheritance diagram for serif::equations::BarycenterConstraint< Axis, Row >:
[legend]
Collaboration diagram for serif::equations::BarycenterConstraint< Axis, Row >:
[legend]

Public Types

using Density = discretization::blocks::density::mass
 
using Operands = utils::types::TypeList<discretization::forms::Operand<Density>>
 
using ResidualQuantity = dimensions::Length
 
- Public Types inherited from serif::equations::Contribution< TestOperandT, SupportT >
using Test = TestOperandT::term_type
 The test type of the contribution.
 
using TestOperand = TestOperandT
 The operand type of the contribution (associating a test function and a term)
 
using Support = SupportT
 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

 BarycenterConstraint (double target_mass, std::array< double, 3 > center={})
 Use a fixed positive mass scale and the same finite center as the rotation and deformation.
 
PointLinearization< Operands > evaluate (const EquationPoint< Operands > &point) const
 Differentiate the normalized first mass moment in density and physical position.
 
double target_mass () const noexcept
 Inspect the fixed normalization mass.
 
const std::array< double, 3 > & center () const noexcept
 Inspect the desired barycenter.
 

Static Public Member Functions

static int additional_order (discretization::forms::Operand< Density >, int position_order)
 Include the linear position factor in quadrature selection.
 

Static Public Attributes

static constexpr std::string_view name = "barycenter constraint"
 

Private Attributes

double m_target_mass
 
std::array< double, 3 > m_center
 

Detailed Description

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
class serif::equations::BarycenterConstraint< Axis, Row >

Fix one component of integral rho (x-center)/M_target.

Member Typedef Documentation

◆ Density

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
using serif::equations::BarycenterConstraint< Axis, Row >::Density = discretization::blocks::density::mass

◆ Operands

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
using serif::equations::BarycenterConstraint< Axis, Row >::Operands = utils::types::TypeList<discretization::forms::Operand<Density>>

◆ ResidualQuantity

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
using serif::equations::BarycenterConstraint< Axis, Row >::ResidualQuantity = dimensions::Length

Constructor & Destructor Documentation

◆ BarycenterConstraint()

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
serif::equations::BarycenterConstraint< Axis, Row >::BarycenterConstraint ( double target_mass,
std::array< double, 3 > center = {} )
inlineexplicit

Use a fixed positive mass scale and the same finite center as the rotation and deformation.

Member Function Documentation

◆ additional_order()

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
static int serif::equations::BarycenterConstraint< Axis, Row >::additional_order ( discretization::forms::Operand< Density > ,
int position_order )
inlinestaticnodiscard

Include the linear position factor in quadrature selection.

◆ center()

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
const std::array< double, 3 > & serif::equations::BarycenterConstraint< Axis, Row >::center ( ) const
inlinenodiscardnoexcept

Inspect the desired barycenter.

◆ evaluate()

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
PointLinearization< Operands > serif::equations::BarycenterConstraint< Axis, Row >::evaluate ( const EquationPoint< Operands > & point) const
inlinenodiscard

Differentiate the normalized first mass moment in density and physical position.

◆ target_mass()

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
double serif::equations::BarycenterConstraint< Axis, Row >::target_mass ( ) const
inlinenodiscardnoexcept

Inspect the fixed normalization mass.

Member Data Documentation

◆ m_center

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
std::array<double, 3> serif::equations::BarycenterConstraint< Axis, Row >::m_center
private

◆ m_target_mass

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
double serif::equations::BarycenterConstraint< Axis, Row >::m_target_mass
private

◆ name

template<int Axis, typename Row = discretization::blocks::frame_acceleration::component<Axis>>
std::string_view serif::equations::BarycenterConstraint< Axis, Row >::name = "barycenter constraint"
staticconstexpr

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