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

164 lines
6.1 KiB
Groff

.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 <vector_view\&.hpp>\fP
.SS "Public Types"
.in +1c
.ti -1c
.RI "using \fBLayoutType\fP = std::remove_cvref_t<Layout>"
.br
.RI "Alias for the layout type, e\&.g\&. \fBSystemLayout<Values, Residuals>\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<typename Range>
.br
requires (!std::is_lvalue_reference_v<Range> && !std::ranges::borrowed_range<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<typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, typename LayoutType::template Coordinates<Kind>>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<Layout>"
.PP
Alias for the layout type, e\&.g\&. \fBSystemLayout<Values, Residuals>\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<typename Range>
.br
requires (!std::is_lvalue_reference_v<Range> && !std::ranges::borrowed_range<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<typename Coordinate>
.br
requires utils::dependencies::ContainsKey<Coordinate, typename LayoutType::template Coordinates<Kind>>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<Scalar> \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\&.