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

268 lines
11 KiB
Groff

.TH "serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
.ad l
.nh
.SH NAME
serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT > \- Describe the independently ordered physical state and residual coordinates of a discrete system\&.
.SH SYNOPSIS
.br
.PP
.PP
\fR#include <system_layout\&.hpp>\fP
.SS "Public Types"
.in +1c
.ti -1c
.RI "using \fBValues\fP = std::remove_cvref_t<ValuesT>"
.br
.RI "The physical coordinates represented in the state vector\&. "
.ti -1c
.RI "using \fBResiduals\fP = std::remove_cvref_t<ResidualsT>"
.br
.RI "The physical coordinates represented in the residual vector\&. "
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind> using \fBCoordinates\fP = std::conditional_t<Kind == \fBRepresentedValueKind::value\fP, \fBValues\fP, \fBResiduals\fP>"
.br
.RI "Select the coordinate tag at compile time based on the kind of the represented values selected (e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals)\&. "
.in -1c
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind>
.br
requires (Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP)std::span< const std::size_t > \fBsizes\fP () const noexcept"
.br
.RI "Get the sizes of the physical coordinates for the requested kind\&. "
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>std::size_t \fBsize\fP () const noexcept"
.br
.RI "Read the coefficient count for a physical coordinate\&. "
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>std::size_t \fBoffset\fP () const"
.br
.RI "Locate a coordinate in packed storage, rejecting size overflow before creating a view\&. Note that this specifically locates the first coefficient of a coordinate, or the offset to where that coordinate's coefficients begin in packed storage\&. "
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind>
.br
requires (Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP)std::size_t \fBtotal_size\fP () const"
.br
.RI "Count all coefficients of one kind\&. "
.ti -1c
.RI "bool \fBoperator==\fP (const \fBSystemLayout\fP &) const =default"
.br
.RI "Default equality comparison\&. "
.in -1c
.SS "Static Public Member Functions"
.in +1c
.ti -1c
.RI "template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>static consteval std::size_t \fBindex\fP ()"
.br
.RI "Locate a physical identity on the requested side of the system\&. "
.in -1c
.SS "Public Attributes"
.in +1c
.ti -1c
.RI "std::array< std::size_t, \fButils::dependencies::key_count_v\fP< \fBValues\fP > > \fBstate_sizes\fP"
.br
.RI "The coefficient counts for each physical coordinate in the state vector, in the order of \fBValues\fP\&. "
.ti -1c
.RI "std::array< std::size_t, \fButils::dependencies::key_count_v\fP< \fBResiduals\fP > > \fBresidual_sizes\fP"
.br
.RI "The coefficient counts for each physical coordinate in the residual vector, in the order of \fBResiduals\fP\&. "
.in -1c
.SH "Detailed Description"
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT>
.br
struct serif::discretization::blocks::SystemLayout< ValuesT, ResidualsT >"Describe the independently ordered physical state and residual coordinates of a discrete system\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIValuesT\fP A KeyList of the physical coordinates represented in the state vector\&.
.br
\fIResidualsT\fP A KeyList of the physical coordinates represented in the residual vector\&.
.RE
.PP
.SH "Member Typedef Documentation"
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind> using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Coordinates = std::conditional_t<Kind == \fBRepresentedValueKind::value\fP, \fBValues\fP, \fBResiduals\fP>"
.PP
Select the coordinate tag at compile time based on the kind of the represented values selected (e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals)\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.RE
.PP
Requirements
.PD 0
.IP "\(bu" 2
Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP
.PP
.PP
\fBNote\fP
.RS 4
This requires clause is not strictly necessary right now since we have a template type argument; however, if we ever add more \fBRepresentedValueKind\fP types, this will ensure that we don't accidentally allow them to be used here\&.
.RE
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Residuals = std::remove_cvref_t<ResidualsT>"
.PP
The physical coordinates represented in the residual vector\&.
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Values = std::remove_cvref_t<ValuesT>"
.PP
The physical coordinates represented in the state vector\&.
.SH "Member Function Documentation"
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>static consteval std::size_t \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::index ()\fR [inline]\fP, \fR [static]\fP, \fR [nodiscard]\fP, \fR [consteval]\fP"
.PP
Locate a physical identity on the requested side of the system\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.br
\fICoordinate\fP The coordinate type to locate\&.
.RE
.PP
\fBReturns\fP
.RS 4
The index of the coordinate in the requested kind\&.
.RE
.PP
Requirements
.PD 0
.IP "\(bu" 2
Coordinate is contained in the KeyList of the requested kind\&.
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>std::size_t \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::offset () const\fR [inline]\fP, \fR [nodiscard]\fP"
.PP
Locate a coordinate in packed storage, rejecting size overflow before creating a view\&. Note that this specifically locates the first coefficient of a coordinate, or the offset to where that coordinate's coefficients begin in packed storage\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.br
\fICoordinate\fP The coordinate type to locate\&.
.RE
.PP
\fBReturns\fP
.RS 4
The offset of the coordinate in the requested kind\&. (e\&.g\&. the index of the first coefficient of that coordinate in packed storage\&.)
.RE
.PP
Requirements
.PD 0
.IP "\(bu" 2
Coordinate is contained in the KeyList of the requested kind\&.
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> bool \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::operator== (const \fBSystemLayout\fP< ValuesT, ResidualsT > & ) const\fR [nodiscard]\fP, \fR [default]\fP"
.PP
Default equality comparison\&.
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind, typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, \fBCoordinates\fP<Kind>>std::size_t \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::size () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Read the coefficient count for a physical coordinate\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.br
\fICoordinate\fP The coordinate type to locate\&.
.RE
.PP
\fBReturns\fP
.RS 4
The coefficient count for the specified coordinate\&.
.RE
.PP
Requirements
.PD 0
.IP "\(bu" 2
Coordinate is contained in the KeyList of the requested kind\&.
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind>
.br
requires (Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP)std::span< const std::size_t > \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::sizes () const\fR [inline]\fP, \fR [nodiscard]\fP, \fR [noexcept]\fP"
.PP
Get the sizes of the physical coordinates for the requested kind\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.RE
.PP
\fBReturns\fP
.RS 4
A span of sizes for the physical coordinates of the requested kind\&.
.RE
.PP
Requirements
.PD 0
.IP "\(bu" 2
Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> template<\fBRepresentedValueKind\fP Kind>
.br
requires (Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP)std::size_t \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::total_size () const\fR [inline]\fP, \fR [nodiscard]\fP"
.PP
Count all coefficients of one kind\&.
.PP
\fBTemplate Parameters\fP
.RS 4
\fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&.
.RE
.PP
\fBReturns\fP
.RS 4
The total coefficient count for the requested kind\&.
.RE
.PP
.SH "Member Data Documentation"
.PP
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> std::array<std::size_t, \fButils::dependencies::key_count_v\fP<\fBResiduals\fP> > \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::residual_sizes"
.PP
The coefficient counts for each physical coordinate in the residual vector, in the order of \fBResiduals\fP\&.
.SS "template<utils::dependencies::IsKeyList ValuesT, utils::dependencies::IsKeyList ResidualsT> std::array<std::size_t, \fButils::dependencies::key_count_v\fP<\fBValues\fP> > \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::state_sizes"
.PP
The coefficient counts for each physical coordinate in the state vector, in the order of \fBValues\fP\&.
.SH "Author"
.PP
Generated automatically by Doxygen for SERiF from the source code\&.