.TH "serif::discretization::blocks::BlockVectorView< Kind, Layout, Scalar >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*- .ad l .nh .SH NAME serif::discretization::blocks::BlockVectorView< Kind, Layout, Scalar > \- Build a non-owning view of a packed layout as a span\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .SS "Public Types" .in +1c .ti -1c .RI "using \fBLayoutType\fP = std::remove_cvref_t" .br .RI "Alias for the layout type, e\&.g\&. \fBSystemLayout\fP\&. " .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBBlockVectorView\fP (const \fBLayoutType\fP &layout, std::span< Scalar > values)" .br .RI "Construct one of these views from a layout and a span of coefficients\&. " .ti -1c .RI "\fBBlockVectorView\fP (const \fBLayoutType\fP &&, std::span< Scalar >)=delete" .br .RI "Reject temporary metadata whose offsets would dangle before the coefficients are accessed\&. " .ti -1c .RI "template .br requires (!std::is_lvalue_reference_v && !std::ranges::borrowed_range)\fBBlockVectorView\fP (const \fBLayoutType\fP &, Range &&)=delete" .br .RI "Prevent implicit const-span conversion from retaining a temporary owning container\&. " .ti -1c .RI "template .br requires utils::dependencies::ContainsKey>std::span< Scalar > \fBget\fP () const" .br .RI "Access the requested physical coordinate while retaining storage constness\&. " .in -1c .SS "Private Attributes" .in +1c .ti -1c .RI "const \fBLayoutType\fP & \fBm_layout\fP" .br .RI "The layout to use for the view\&. The layout must remain unchanged while the view is used\&. " .ti -1c .RI "std::span< Scalar > \fBm_values\fP" .br .RI "The span of coefficients to view\&. " .in -1c .SH "Detailed Description" .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> .br requires (Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP) .br class serif::discretization::blocks::BlockVectorView< Kind, Layout, Scalar >"Build a non-owning view of a packed layout as a span\&. .PP \fBTemplate Parameters\fP .RS 4 \fIKind\fP The kind of represented values to select, e\&.g\&. RepresentedValueKind::values or RepresentedValueKind::residuals\&. .br \fILayout\fP The block layout type, e\&.g\&. \fBSystemLayout\fP\&. .br \fIScalar\fP The scalar type of the coefficients, e\&.g\&. double\&. .RE .PP Requirements .PD 0 .IP "\(bu" 2 Kind == \fBRepresentedValueKind::value\fP || Kind == \fBRepresentedValueKind::residual\fP .PP .PP \fBNote\fP .RS 4 The layout must remain unchanged while the view is used\&. Probably we want to, in the future, add some way to validate this; however, I am at the moment at a loss for how to do so\&. .RE .PP .SH "Member Typedef Documentation" .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> using \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::LayoutType = std::remove_cvref_t" .PP Alias for the layout type, e\&.g\&. \fBSystemLayout\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::BlockVectorView (const \fBLayoutType\fP & layout, std::span< Scalar > values)\fR [inline]\fP" .PP Construct one of these views from a layout and a span of coefficients\&. .PP \fBParameters\fP .RS 4 \fIlayout\fP The layout to use for the view\&. .br \fIvalues\fP The span of coefficients to view\&. .RE .PP \fBExceptions\fP .RS 4 \fIstd::domain_error\fP If the span of coefficients does not match the total size of the layout\&. .RE .PP \fBTodo\fP .RS 4 Really this could go in many places; however, I think we should move away from throwing std exceptions and introduce our own exception hierarchy\&. .RE .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::BlockVectorView (const \fBLayoutType\fP && , std::span< Scalar > )\fR [delete]\fP" .PP Reject temporary metadata whose offsets would dangle before the coefficients are accessed\&. .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> template .br requires (!std::is_lvalue_reference_v && !std::ranges::borrowed_range)\fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::BlockVectorView (const \fBLayoutType\fP & , Range && )\fR [delete]\fP" .PP Prevent implicit const-span conversion from retaining a temporary owning container\&. .SH "Member Function Documentation" .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> template .br requires utils::dependencies::ContainsKey>std::span< Scalar > \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::get () const\fR [inline]\fP, \fR [nodiscard]\fP" .PP Access the requested physical coordinate while retaining storage constness\&. .PP \fBTemplate Parameters\fP .RS 4 \fICoordinate\fP The coordinate tag to access .RE .PP Requirements .PD 0 .IP "\(bu" 2 A layout type with kind Kind must contain the requested coordinate tag\&. .PP .SH "Member Data Documentation" .PP .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> const \fBLayoutType\fP& \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::m_layout\fR [private]\fP" .PP The layout to use for the view\&. The layout must remain unchanged while the view is used\&. .SS "template<\fBRepresentedValueKind\fP Kind, SystemLayoutType Layout, typename Scalar = double> std::span \fBserif::discretization::blocks::BlockVectorView\fP< Kind, Layout, Scalar >::m_values\fR [private]\fP" .PP The span of coefficients to view\&. .SH "Author" .PP Generated automatically by Doxygen for SERiF from the source code\&.