109 lines
5.7 KiB
Groff
109 lines
5.7 KiB
Groff
|
|
.TH "src/include/serif/backend/mfem/operators/volume_application.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
||
|
|
.ad l
|
||
|
|
.nh
|
||
|
|
.SH NAME
|
||
|
|
src/include/serif/backend/mfem/operators/volume_application.hpp
|
||
|
|
.SH SYNOPSIS
|
||
|
|
.br
|
||
|
|
.PP
|
||
|
|
\fR#include <algorithm>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <array>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <functional>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <span>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <tuple>\fP
|
||
|
|
.br
|
||
|
|
\fR#include <vector>\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/backend/mfem/operators/volume_inputs\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/backend/mfem/operators/element_evaluation\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/backend/mfem/operators/element_transpose\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
\fR#include 'serif/backend/mfem/shared/parallel\&.hpp'\fP
|
||
|
|
.br
|
||
|
|
|
||
|
|
.SS "Namespaces"
|
||
|
|
|
||
|
|
.in +1c
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::operators\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::operators::backend\fP"
|
||
|
|
.br
|
||
|
|
.ti -1c
|
||
|
|
.RI "namespace \fBserif::operators::backend::mfem\fP"
|
||
|
|
.br
|
||
|
|
.in -1c
|
||
|
|
.SS "Functions"
|
||
|
|
|
||
|
|
.in +1c
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::validate_volume_data\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data)"
|
||
|
|
.br
|
||
|
|
.RI "Reject changes to discretization objects borrowed by an accepted linearization\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT, typename VisitT> void \fBserif::operators::backend::mfem::for_each_volume_element\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, VisitT &&visit)"
|
||
|
|
.br
|
||
|
|
.RI "Visit each contribution's own batch in equation order, without scanning other contributions\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT, typename VisitT> void \fBserif::operators::backend::mfem::for_each_volume_linearization\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, VisitT &&visit)"
|
||
|
|
.br
|
||
|
|
.RI "Visit equation data together with its graph-owned local geometry derivative matrix\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> int \fBserif::operators::backend::mfem::volume_height\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data)"
|
||
|
|
.br
|
||
|
|
.RI "Return the supported residual size\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> int \fBserif::operators::backend::mfem::volume_width\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data)"
|
||
|
|
.br
|
||
|
|
.RI "Packed directions contain unique coefficient terms followed by displacement\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> std::size_t \fBserif::operators::backend::mfem::tensor_element_count\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data)"
|
||
|
|
.br
|
||
|
|
.RI "Count contribution-elements using tensor contractions for any sampled basis\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> int \fBserif::operators::backend::mfem::integration_order\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, int element)"
|
||
|
|
.br
|
||
|
|
.RI "Return the largest contribution quadrature order on a supported mesh element\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::volume_residual\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, \fB::mfem::Vector\fP &result)"
|
||
|
|
.br
|
||
|
|
.RI "Copy the residual already assembled and checked when this result was accepted\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<std::size_t Count> std::array< \fBdiscretization::backend::mfem::DofMap::Elements\fP, Count > \fBserif::operators::backend::mfem::column_elements\fP (const std::array< const \fBdiscretization::backend::mfem::DofMap\fP *, Count > &columns)"
|
||
|
|
.br
|
||
|
|
.RI "Validate coefficient bindings once before a complete element traversal\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<bool Fields = true, bool Geometry = true, VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::apply_volume_direction\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, const std::array< const \fB::mfem::Vector\fP *, \fBEquationPlan\fP< EquationT >::column_count > &directions, const \fB::mfem::Vector\fP &displacement_direction, \fBWorkspace\fP &workspace, \fB::mfem::Vector\fP &result)"
|
||
|
|
.br
|
||
|
|
.RI "Apply only the requested directions and assemble their supported residual contribution\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::apply_volume_displacements\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, std::span< const \fB::mfem::Vector\fP *const > displacement_directions, std::span<\fB::mfem::Vector\fP *const > results)"
|
||
|
|
.br
|
||
|
|
.RI "apply_volume_direction<false, true> for several displacement directions in one traversal\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT, typename CoefficientsT> void \fBserif::operators::backend::mfem::apply_jacobian\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, const CoefficientsT &direction, const \fB::mfem::Vector\fP &displacement_direction, \fBWorkspace\fP &workspace, \fB::mfem::Vector\fP &result)"
|
||
|
|
.br
|
||
|
|
.RI "Apply a direction whose terms explicitly name the accepted coefficient bindings\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::apply_jacobian\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, const \fB::mfem::Vector\fP &direction, \fBWorkspace\fP &workspace, \fB::mfem::Vector\fP &result)"
|
||
|
|
.br
|
||
|
|
.RI "Unpack unique coefficient terms and displacement, then use the same numerical action\&. "
|
||
|
|
.ti -1c
|
||
|
|
.RI "template<VolumeEquation EquationT, typename SchemaT> void \fBserif::operators::backend::mfem::apply_jacobian_transpose\fP (const \fBVolumeData\fP< EquationT, SchemaT > &data, const \fB::mfem::Vector\fP &residual_dual, \fBWorkspace\fP &workspace, \fB::mfem::Vector\fP &result)"
|
||
|
|
.br
|
||
|
|
.RI "Assemble the full coordinate transpose in the same packed order as the forward action\&. "
|
||
|
|
.in -1c
|
||
|
|
.SH "Author"
|
||
|
|
.PP
|
||
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|