Files
MeanField_SERiF/docs/man/man3/serif_model_EosReference.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

135 lines
6.3 KiB
Groff

.TH "serif::model::EosReference< EOS >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::model::EosReference< EOS > \- Reuse one immutable EOS in equation objects, optionally retaining shared ownership\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <eos_reference\&.hpp>\fP
.SS "Public Types"
.in +1c
.ti -1c
.RI "using \fBRelations\fP = typename EOS::Relations"
.br
.in -1c
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBEosReference\fP (std::shared_ptr< const EOS > equation_of_state)"
.br
.RI "Retain an owned EOS, including an aliasing handle into an immutable model\&. "
.ti -1c
.RI "\fBEosReference\fP (const EOS &equation_of_state) noexcept"
.br
.RI "Borrow an EOS whose model owner must outlive all equations and prepared actions using it\&. "
.ti -1c
.RI "\fBEosReference\fP (EOS &&)=delete"
.br
.RI "Never retain a pointer into a temporary EOS\&. "
.ti -1c
.RI "\fBEosReference\fP (const EOS &&)=delete"
.br
.RI "Const temporaries have the same borrowing lifetime restriction\&. "
.ti -1c
.RI "template<typename Relation, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, Values\&.\&.\&. values) { eos\&.evaluate(relation, values\&.\&.\&.); }decltype(auto) \fBevaluate\fP (Relation relation, Values\&.\&.\&. values) const noexcept(noexcept(\fBm_eos\fP\->evaluate(relation, values\&.\&.\&.)))"
.br
.RI "Forward only the relations actually implemented by the underlying EOS\&. "
.ti -1c
.RI "template<typename Relation, typename Input, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, Input input, Values\&.\&.\&. values) { eos\&.partial_derivative(relation, input, values\&.\&.\&.); }decltype(auto) \fBpartial_derivative\fP (Relation relation, Input input, Values\&.\&.\&. values) const noexcept(noexcept(\fBm_eos\fP\->partial_derivative(relation, input, values\&.\&.\&.)))"
.br
.RI "Preserve exact derivative availability and physical return types\&. "
.ti -1c
.RI "template<typename Relation, typename FirstInput, typename SecondInput, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, FirstInput first, SecondInput second, Values\&.\&.\&. values) { eos\&.second_partial_derivative(relation, first, second, values\&.\&.\&.); }decltype(auto) \fBsecond_partial_derivative\fP (Relation relation, FirstInput first, SecondInput second, Values\&.\&.\&. values) const noexcept(noexcept(\fBm_eos\fP\->second_partial_derivative(relation, first, second, values\&.\&.\&.)))"
.br
.RI "Forward second partials only when the underlying EOS provides them\&. "
.ti -1c
.RI "const EOS & \fBget\fP () const noexcept"
.br
.RI "Inspect EOS-specific physical parameters without storing another copy\&. "
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "std::shared_ptr< const EOS > \fBm_owner\fP"
.br
.ti -1c
.RI "const EOS * \fBm_eos\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<typename EOS>
.br
requires requires { typename EOS::Relations; }
.br
class serif::model::EosReference< EOS >"Reuse one immutable EOS in equation objects, optionally retaining shared ownership\&.
.SH "Member Typedef Documentation"
.PP
.SS "template<typename EOS> using \fBserif::model::EosReference\fP< EOS >::Relations = typename EOS::Relations"
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<typename EOS> \fBserif::model::EosReference\fP< EOS >::EosReference (std::shared_ptr< const EOS > equation_of_state)\fR [inline]\fP, \fR [explicit]\fP"
.PP
Retain an owned EOS, including an aliasing handle into an immutable model\&.
.SS "template<typename EOS> \fBserif::model::EosReference\fP< EOS >::EosReference (const EOS & equation_of_state)\fR [inline]\fP, \fR [explicit]\fP, \fR [noexcept]\fP"
.PP
Borrow an EOS whose model owner must outlive all equations and prepared actions using it\&.
.SS "template<typename EOS> \fBserif::model::EosReference\fP< EOS >::EosReference (EOS && )\fR [delete]\fP"
.PP
Never retain a pointer into a temporary EOS\&.
.SS "template<typename EOS> \fBserif::model::EosReference\fP< EOS >::EosReference (const EOS && )\fR [delete]\fP"
.PP
Const temporaries have the same borrowing lifetime restriction\&.
.SH "Member Function Documentation"
.PP
.SS "template<typename EOS> template<typename Relation, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, Values\&.\&.\&. values) { eos\&.evaluate(relation, values\&.\&.\&.); }decltype(auto) \fBserif::model::EosReference\fP< EOS >::evaluate (Relation relation, Values\&.\&.\&. values) const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Forward only the relations actually implemented by the underlying EOS\&.
.SS "template<typename EOS> const EOS & \fBserif::model::EosReference\fP< EOS >::get () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Inspect EOS-specific physical parameters without storing another copy\&.
.SS "template<typename EOS> template<typename Relation, typename Input, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, Input input, Values\&.\&.\&. values) { eos\&.partial_derivative(relation, input, values\&.\&.\&.); }decltype(auto) \fBserif::model::EosReference\fP< EOS >::partial_derivative (Relation relation, Input input, Values\&.\&.\&. values) const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Preserve exact derivative availability and physical return types\&.
.SS "template<typename EOS> template<typename Relation, typename FirstInput, typename SecondInput, typename\&.\&.\&. Values>
.br
requires requires(const EOS& eos, Relation relation, FirstInput first, SecondInput second, Values\&.\&.\&. values) { eos\&.second_partial_derivative(relation, first, second, values\&.\&.\&.); }decltype(auto) \fBserif::model::EosReference\fP< EOS >::second_partial_derivative (Relation relation, FirstInput first, SecondInput second, Values\&.\&.\&. values) const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Forward second partials only when the underlying EOS provides them\&.
.SH "Member Data Documentation"
.PP
.SS "template<typename EOS> const EOS* \fBserif::model::EosReference\fP< EOS >::m_eos\fR [private]\fP"
.SS "template<typename EOS> std::shared_ptr<const EOS> \fBserif::model::EosReference\fP< EOS >::m_owner\fR [private]\fP"
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.