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

164 lines
6.1 KiB
Groff
Raw Permalink Normal View History

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