Files
MeanField_SERiF/docs/man/man3/serif_discretization_blocks_SystemLayout.3

268 lines
11 KiB
Groff
Raw Normal View History

.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\&.