Files
MeanField_SERiF/docs/man/man3/serif_equations_GravityForce.3
Emily Boudreaux 6b57738330 docs(docs): built docs
Note for now much of the docs is LLM written. This was done to save time and focus on code development. The docs have been LOOSLEY reviewed. However, the code itself has been either fully written by hand or fully reviewed. Therefore, the docs should at the moment be seen as a loose resource rather than authoratiative (and this is on top of the general ability for docs to drift)
2026-11-09 14:09:44 -05:00

189 lines
7.6 KiB
Groff

.TH "serif::equations::GravityForce" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::equations::GravityForce \- The gravitational force contribution to the mechanical balance equation\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <gravity_force\&.hpp>\fP
.PP
Inherits \fBserif::equations::Contribution< discretization::forms::Operand< discretization::blocks::displacement::vector >, discretization::domain::StellarDomains >\fP\&.
.SS "Public Types"
.in +1c
.ti -1c
.RI "using \fBDensity\fP = \fBdiscretization::blocks::density::mass\fP"
.br
.RI "The density type is the model's mass density,\&. "
.ti -1c
.RI "using \fBGradient\fP = \fBdiscretization::blocks::gravity::gradient\fP"
.br
.RI "The gradient type is the model's negative gravitational acceleration (see class comment for why this is negative)\&. "
.ti -1c
.RI "using \fBDensityValue\fP = \fBdiscretization::forms::Operand\fP<\fBDensity\fP>"
.br
.RI "The density value type is a density Operand\&. "
.ti -1c
.RI "using \fBGradientValue\fP = \fBdiscretization::forms::Operand\fP<\fBGradient\fP>"
.br
.RI "The gradient value type is a gradient Operand\&. "
.ti -1c
.RI "using \fBOperands\fP = \fButils::types::TypeList\fP<\fBDensityValue\fP, \fBGradientValue\fP>"
.br
.RI "The operands for this equation are the density and gradient operands\&. "
.ti -1c
.RI "using \fBResult\fP = \fBdiscretization::forms::VectorValue\fP"
.br
.RI "This equation's results are vector valued\&. "
.in -1c
Public Types inherited from \fBserif::equations::Contribution< discretization::forms::Operand< discretization::blocks::displacement::vector >, discretization::domain::StellarDomains >\fP
.in +1c
.ti -1c
.RI "using \fBTest\fP"
.br
.RI "The test type of the contribution\&. "
.ti -1c
.RI "using \fBTestOperand\fP"
.br
.RI "The operand type of the contribution (associating a test function and a term) "
.ti -1c
.RI "using \fBSupport\fP"
.br
.RI "The domain support of the contribution (which then boils down to the dofs which are supported by the term on that test function) "
.in -1c
.SS "Static Public Member Functions"
.in +1c
.ti -1c
.RI "static \fBPointLinearization\fP< \fBOperands\fP, \fBResult\fP > \fBevaluate\fP (const \fBEquationPoint\fP< \fBOperands\fP > &point)"
.br
.RI "Evaluate the gravitational force equation at a given point\&. "
.ti -1c
.RI "template<typename OperandT> static int \fBadditional_order\fP (OperandT, int)"
.br
.RI "Return the additional quadrature order required for the gravitational force equation\&. We add one to the registered order of the gradient functional space to satisfy the InfSup condition for the density operand (which is in L2) "
.in -1c
.SS "Static Public Attributes"
.in +1c
.ti -1c
.RI "static constexpr std::string_view \fBname\fP = 'gravitational force'"
.br
.RI "Compile time name for the gravitational force equation, used for debugging and logging\&. "
.in -1c
.SH "Detailed Description"
.PP
The gravitational force contribution to the mechanical balance equation\&.
\fBEquation\fP \fBContributions\fP
.PD 0
.IP "\(bu" 2
Residuals to the global displacement vector supported on the stellar domain\&.
.PP
.PP
\fBNote\fP
.RS 4
The gravitational force is given by $ \mathbf{F} = \rho \mathbf{g} $, where $ \rho $ is the mass density and $ \mathbf{g} $ is the gravitational acceleration\&. The residual is given by the difference between the model gravitational force and the gravitational force given by the equation of state\&. The partial derivatives implemented are:
.IP "\(bu" 2
$ \frac{\partial F}{\partial \rho} = g $
.IP "\(bu" 2
$ \frac{\partial F}{\partial g} = \rho I $
.PP
.PP
For some reason which only past me can fathom I adopted $ \mathbf{g} = \nabla \Phi $ rather than $ \mathbf{g} = -\nabla \Phi $\&. The implication of this is that acceleration is $ -\mathbf{g} $\&. We may want to change this but we will need to be careful\&.
.PP
The reason is actually completely fathomable: I just didn't think\&. Carry on now\&.
.PP
You know I've written, over the last year about 60k lines of code for this project, much of it deleted and rewritten multiple time\&. I am going through now and adding comments to this version which I am finally happy with\&. In doing so I suspect that a reader can see the slow(ish?) deterioration of my mental state as these comments get more and more conversational\&. I wonder if anyone will have anything to say about this or if it will simply become some marginal curiosity buried in the docs\&. I suspect the former, though I am not so selfless as to not hope for the latter\&.
.RE
.PP
.SH "Member Typedef Documentation"
.PP
.SS "using \fBserif::equations::GravityForce::Density\fP = \fBdiscretization::blocks::density::mass\fP"
.PP
The density type is the model's mass density,\&.
.SS "using \fBserif::equations::GravityForce::DensityValue\fP = \fBdiscretization::forms::Operand\fP<\fBDensity\fP>"
.PP
The density value type is a density Operand\&.
.SS "using \fBserif::equations::GravityForce::Gradient\fP = \fBdiscretization::blocks::gravity::gradient\fP"
.PP
The gradient type is the model's negative gravitational acceleration (see class comment for why this is negative)\&.
.SS "using \fBserif::equations::GravityForce::GradientValue\fP = \fBdiscretization::forms::Operand\fP<\fBGradient\fP>"
.PP
The gradient value type is a gradient Operand\&.
.SS "using \fBserif::equations::GravityForce::Operands\fP = \fButils::types::TypeList\fP<\fBDensityValue\fP, \fBGradientValue\fP>"
.PP
The operands for this equation are the density and gradient operands\&.
.SS "using \fBserif::equations::GravityForce::Result\fP = \fBdiscretization::forms::VectorValue\fP"
.PP
This equation's results are vector valued\&.
.SH "Member Function Documentation"
.PP
.SS "template<typename OperandT> static int serif::equations::GravityForce::additional_order (OperandT , int )\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP"
.PP
Return the additional quadrature order required for the gravitational force equation\&. We add one to the registered order of the gradient functional space to satisfy the InfSup condition for the density operand (which is in L2)
.PP
\fBParameters\fP
.RS 4
\fIoperand\fP The operand for which to determine the additional quadrature order\&.
.br
\fIposition_order\fP The order of the position operand, which is not used in this implementation\&.
.RE
.PP
\fBReturns\fP
.RS 4
The additional quadrature order required for the given operand\&.
.RE
.PP
This function returns the additional quadrature order required for the gravitational force equation\&. For the density operand, it returns the order of the gradient functional space plus one\&. For other operands, it returns the order of the density functional space\&.
.SS "static \fBPointLinearization\fP< \fBOperands\fP, \fBResult\fP > serif::equations::GravityForce::evaluate (const \fBEquationPoint\fP< \fBOperands\fP > & point)\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP"
.PP
Evaluate the gravitational force equation at a given point\&.
.PP
\fBParameters\fP
.RS 4
\fIpoint\fP The point at which to evaluate the gravitational force equation\&.
.RE
.PP
\fBReturns\fP
.RS 4
A \fBPointLinearization\fP object containing the residual and field derivatives for the gravitational force equation at the given point\&.
.RE
.PP
This function evaluates
.IP "\(bu" 2
$ F = \rho g $
.IP "\(bu" 2
$ \frac{\partial F}{\partial \rho} = g $
.IP "\(bu" 2
$ \frac{\partial F}{\partial g} = \rho I $
.PP
.SH "Member Data Documentation"
.PP
.SS "std::string_view serif::equations::GravityForce::name = 'gravitational force'\fR [static]\fP, \fR [constexpr]\fP"
.PP
Compile time name for the gravitational force equation, used for debugging and logging\&.
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.