.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 \fP .SS "Public Types" .in +1c .ti -1c .RI "using \fBValues\fP = std::remove_cvref_t" .br .RI "The physical coordinates represented in the state vector\&. " .ti -1c .RI "using \fBResiduals\fP = std::remove_cvref_t" .br .RI "The physical coordinates represented in the residual vector\&. " .ti -1c .RI "template<\fBRepresentedValueKind\fP Kind> using \fBCoordinates\fP = std::conditional_t" .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>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>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>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 .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 template<\fBRepresentedValueKind\fP Kind> using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Coordinates = std::conditional_t" .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 using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Residuals = std::remove_cvref_t" .PP The physical coordinates represented in the residual vector\&. .SS "template using \fBserif::discretization::blocks::SystemLayout\fP< ValuesT, ResidualsT >::Values = std::remove_cvref_t" .PP The physical coordinates represented in the state vector\&. .SH "Member Function Documentation" .PP .SS "template template<\fBRepresentedValueKind\fP Kind, typename Coordinate> .br requires utils::dependencies::ContainsKey>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 template<\fBRepresentedValueKind\fP Kind, typename Coordinate> .br requires utils::dependencies::ContainsKey>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 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 template<\fBRepresentedValueKind\fP Kind, typename Coordinate> .br requires utils::dependencies::ContainsKey>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 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 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 std::array > \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 std::array > \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\&.