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)
195 lines
8.6 KiB
Groff
195 lines
8.6 KiB
Groff
.TH "serif::discretization::backend::mfem::FieldValues< Term >" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
serif::discretization::backend::mfem::FieldValues< Term > \- Read a field using the same representation and mappings as its equation operators\&.
|
|
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
.PP
|
|
\fR#include <field_values\&.hpp>\fP
|
|
.SS "Public Types"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "using \fBValueOperand\fP = \fBforms::Operand\fP<Term>"
|
|
.br
|
|
.ti -1c
|
|
.RI "using \fBValue\fP = \fBforms::OperandValue\fP<\fBValueOperand\fP>"
|
|
.br
|
|
.in -1c
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "\fBFieldValues\fP (const \fBDofMap\fP &binding, const ::mfem::Vector &coefficients)"
|
|
.br
|
|
.RI "Borrow supported physical coefficients, including their hanging-node constraints\&. "
|
|
.ti -1c
|
|
.RI "template<typename Binding>
|
|
.br
|
|
requires std::same_as<typename Binding::Term, Term>\fBFieldValues\fP (const \fBoperators::backend::mfem::CoefficientView\fP< Binding > &field)"
|
|
.br
|
|
.RI "Retain the field identity carried by a typed coefficient view\&. "
|
|
.ti -1c
|
|
.RI "\fBFieldValues\fP (const \fBDofMap\fP &, ::mfem::Vector &&)=delete"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBFieldValues\fP (const \fBDofMap\fP &, const ::mfem::Vector &&)=delete"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBValue\fP \fBvalue\fP (int element, const ::mfem::IntegrationPoint &point)"
|
|
.br
|
|
.RI "Evaluate at a canonical element point, including the fixed MFEM mesh map\&. "
|
|
.ti -1c
|
|
.RI "void \fBvalues\fP (int element, const ::mfem::IntegrationRule &points, ::mfem::Vector &result)"
|
|
.br
|
|
.RI "Sample an element's points together, reusing tensor factors for repeated sampling rules\&. "
|
|
.ti -1c
|
|
.RI "\fBValue\fP \fBvalue\fP (int element, const ::mfem::IntegrationPoint &point, const \fBmapping::MappingPointContext\fP &context)"
|
|
.br
|
|
.RI "Evaluate with the additional deformation or compactification map used by the solve\&. "
|
|
.ti -1c
|
|
.RI "std::array< double, 3 > \fBgradient\fP (int element, const ::mfem::IntegrationPoint &point)"
|
|
.br
|
|
.RI "Return a scalar H1 field's gradient in the fixed computational mesh coordinates\&. "
|
|
.ti -1c
|
|
.RI "std::array< double, 3 > \fBgradient\fP (int element, const ::mfem::IntegrationPoint &point, const \fBmapping::MappingPointContext\fP &context)"
|
|
.br
|
|
.RI "Return a scalar H1 field's physical gradient after the additional SERiF map\&. "
|
|
.in -1c
|
|
.SS "Private Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<typename Operation> auto \fBsample\fP (int element, const ::mfem::IntegrationPoint &point)"
|
|
.br
|
|
.RI "Reuse the equation evaluator so diagnostic samples cannot bypass reconstruction\&. "
|
|
.in -1c
|
|
.SS "Private Attributes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "const \fBDofMap\fP & \fBm_binding\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "const ::mfem::Vector & \fBm_coefficients\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBDofMap::Elements\fP \fBm_elements\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "::mfem::IntegrationRule \fBm_rule\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "::mfem::Vector \fBm_local\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "::mfem::Vector \fBm_values\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBBasisEvaluation\fP \fBm_basis\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBTensorBasisCache\fP \fBm_cache\fP"
|
|
.br
|
|
.ti -1c
|
|
.RI "\fBBasisWorkspace\fP \fBm_workspace\fP"
|
|
.br
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
|
|
.SS "template<blocks::SpatialTerm Term>
|
|
.br
|
|
class serif::discretization::backend::mfem::FieldValues< Term >"Read a field using the same representation and mappings as its equation operators\&.
|
|
|
|
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
This reader borrows its binding and coefficients\&. They must outlive it, and the mesh must not change during a sampling traversal\&. Each reader reuses scratch storage and is not shared between threads\&. Scalar VALUE fields need no extra map on a moving mesh; gradients require the overload accepting the additional SERiF mapping context\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SH "Member Typedef Documentation"
|
|
.PP
|
|
.SS "template<blocks::SpatialTerm Term> using \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::Value = \fBforms::OperandValue\fP<\fBValueOperand\fP>"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> using \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::ValueOperand = \fBforms::Operand\fP<Term>"
|
|
|
|
.SH "Constructor & Destructor Documentation"
|
|
.PP
|
|
.SS "template<blocks::SpatialTerm Term> \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::FieldValues (const \fBDofMap\fP & binding, const ::mfem::Vector & coefficients)\fR [inline]\fP"
|
|
|
|
.PP
|
|
Borrow supported physical coefficients, including their hanging-node constraints\&.
|
|
.SS "template<blocks::SpatialTerm Term> template<typename Binding>
|
|
.br
|
|
requires std::same_as<typename Binding::Term, Term>\fBserif::discretization::backend::mfem::FieldValues\fP< Term >::FieldValues (const \fBoperators::backend::mfem::CoefficientView\fP< Binding > & field)\fR [inline]\fP, \fR [explicit]\fP"
|
|
|
|
.PP
|
|
Retain the field identity carried by a typed coefficient view\&.
|
|
.SS "template<blocks::SpatialTerm Term> \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::FieldValues (const \fBDofMap\fP & , ::mfem::Vector && )\fR [delete]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::FieldValues (const \fBDofMap\fP & , const ::mfem::Vector && )\fR [delete]\fP"
|
|
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "template<blocks::SpatialTerm Term> std::array< double, 3 > \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::gradient (int element, const ::mfem::IntegrationPoint & point)\fR [inline]\fP, \fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Return a scalar H1 field's gradient in the fixed computational mesh coordinates\&.
|
|
.SS "template<blocks::SpatialTerm Term> std::array< double, 3 > \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::gradient (int element, const ::mfem::IntegrationPoint & point, const \fBmapping::MappingPointContext\fP & context)\fR [inline]\fP, \fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Return a scalar H1 field's physical gradient after the additional SERiF map\&.
|
|
.SS "template<blocks::SpatialTerm Term> template<typename Operation> auto \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::sample (int element, const ::mfem::IntegrationPoint & point)\fR [inline]\fP, \fR [nodiscard]\fP, \fR [private]\fP"
|
|
|
|
.PP
|
|
Reuse the equation evaluator so diagnostic samples cannot bypass reconstruction\&.
|
|
.SS "template<blocks::SpatialTerm Term> \fBValue\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::value (int element, const ::mfem::IntegrationPoint & point)\fR [inline]\fP, \fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Evaluate at a canonical element point, including the fixed MFEM mesh map\&.
|
|
.SS "template<blocks::SpatialTerm Term> \fBValue\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::value (int element, const ::mfem::IntegrationPoint & point, const \fBmapping::MappingPointContext\fP & context)\fR [inline]\fP, \fR [nodiscard]\fP"
|
|
|
|
.PP
|
|
Evaluate with the additional deformation or compactification map used by the solve\&.
|
|
.SS "template<blocks::SpatialTerm Term> void \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::values (int element, const ::mfem::IntegrationRule & points, ::mfem::Vector & result)\fR [inline]\fP"
|
|
|
|
.PP
|
|
Sample an element's points together, reusing tensor factors for repeated sampling rules\&.
|
|
.PP
|
|
\fBNote\fP
|
|
.RS 4
|
|
\fBVector\fP components are consecutive within each point\&. As for \fBvalue()\fP, these samples include the fixed MFEM mesh map\&.
|
|
.RE
|
|
.PP
|
|
|
|
.SH "Member Data Documentation"
|
|
.PP
|
|
.SS "template<blocks::SpatialTerm Term> \fBBasisEvaluation\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_basis\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> const \fBDofMap\fP& \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_binding\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> \fBTensorBasisCache\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_cache\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> const ::mfem::Vector& \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_coefficients\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> \fBDofMap::Elements\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_elements\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> ::mfem::Vector \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_local\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> ::mfem::IntegrationRule \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_rule\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> ::mfem::Vector \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_values\fR [private]\fP"
|
|
|
|
.SS "template<blocks::SpatialTerm Term> \fBBasisWorkspace\fP \fBserif::discretization::backend::mfem::FieldValues\fP< Term >::m_workspace\fR [private]\fP"
|
|
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|