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)
99 lines
5.8 KiB
Groff
99 lines
5.8 KiB
Groff
.TH "src/include/serif/backend/mfem/operators/volume_computations.hpp" 3 "Version v0.0.1a" "SERiF" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
src/include/serif/backend/mfem/operators/volume_computations.hpp
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fR#include <expected>\fP
|
|
.br
|
|
\fR#include <memory>\fP
|
|
.br
|
|
\fR#include <tuple>\fP
|
|
.br
|
|
\fR#include <utility>\fP
|
|
.br
|
|
\fR#include 'serif/backend/mfem/operators/volume_stages\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/backend/mfem/operators/volume_inputs\&.hpp'\fP
|
|
.br
|
|
\fR#include 'serif/utils/dependencies/dependencies\&.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 "Typedefs"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<std::size_t Contribution, typename OperandT, typename Scope = void> using \fBserif::operators::backend::mfem::VolumeOperandResult\fP"
|
|
.br
|
|
.RI "Values need a mapping node only when the operand's physical representation depends on geometry\&. "
|
|
.ti -1c
|
|
.RI "template<typename CacheT, typename Scope = void> using \fBserif::operators::backend::mfem::VolumeEquationOf\fP = typename std::remove_cvref_t<decltype(std::declval<const CacheT&>()\&.template get<typename \fBvolume_keys::Scoped\fP<Scope>::Linearization>())>::Equation"
|
|
.br
|
|
.RI "Recover the equation type from a cache's accepted result type, without accessing a result\&. "
|
|
.in -1c
|
|
.SS "Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "template<std::size_t Contribution, typename OperandT, VolumeEquation EquationT, typename SchemaT, typename Scope = void> auto \fBserif::operators::backend::mfem::make_operand_computations\fP (const std::shared_ptr< \fBVolumeScratch\fP > &scratch)"
|
|
.br
|
|
.RI "Declare one coefficient contraction, followed by a physical mapping when the space requires it\&. "
|
|
.ti -1c
|
|
.RI "template<std::size_t Index, typename Scope, VolumeEquation EquationT, typename SchemaT, typename ContributionT, typename\&.\&.\&. Operands> auto \fBserif::operators::backend::mfem::make_contribution_computations\fP (const std::shared_ptr< const \fBVolumeConfiguration\fP< EquationT, SchemaT > > &configuration, const std::shared_ptr< \fBVolumeScratch\fP > &scratch, \fBContributionBinding\fP< ContributionT > contribution, \fButils::types::TypeList\fP< Operands\&.\&.\&. >)"
|
|
.br
|
|
.RI "Build one contribution's branch in the same order as its numerical description\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, std::size_t\&.\&.\&. Indices> auto \fBserif::operators::backend::mfem::connect_volume_contributions\fP (const std::shared_ptr< const \fBVolumeConfiguration\fP< EquationT, SchemaT > > &configuration, std::index_sequence< Indices\&.\&.\&. >)"
|
|
.br
|
|
.RI "Expose contribution computations so deformation and equations can share one dependency graph\&. "
|
|
.ti -1c
|
|
.RI "template<VolumeEquation EquationT, std::size_t Index, typename Scope = void, typename CacheT> void \fBserif::operators::backend::mfem::report_contribution_preparation\fP (const CacheT &cache, \fBNumericalWork\fP &report)"
|
|
.br
|
|
.RI "Convert the dependency engine's node statuses to numerical work counts for one contribution\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> auto \fBserif::operators::backend::mfem::make_volume_equation_computations\fP (std::shared_ptr< const EquationT > equation, const \fBVolumeDiscretization\fP< typename EquationT::Test, SchemaT > &discretization, \fBVolumeOptions\fP options={})"
|
|
.br
|
|
.RI "Declare reusable volume computations without selecting their source of displacement\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> auto \fBserif::operators::backend::mfem::make_volume_equation_computations\fP (EquationT equation, const \fBVolumeDiscretization\fP< typename EquationT::Test, SchemaT > &discretization, \fBVolumeOptions\fP options={})"
|
|
.br
|
|
.RI "Own standalone equations while allowing complete models to share their existing immutable members\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, typename InputsT> auto \fBserif::operators::backend::mfem::make_volume_equation_cache\fP (EquationT equation, const \fBVolumeDiscretization\fP< typename EquationT::Test, SchemaT > &discretization, const InputsT &inputs, \fBVolumeOptions\fP options={})"
|
|
.br
|
|
.RI "Construct a standalone cache from the same computations used by a coupled deformation graph\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> std::expected< void, \fBPreparationRejection\fP > \fBserif::operators::backend::mfem::try_prepare_volume\fP (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const \fB::mfem::Vector\fP &displacement_coefficients, \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Validate current inputs and atomically publish a complete volume linearization\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> void \fBserif::operators::backend::mfem::prepare_volume\fP (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const \fB::mfem::Vector\fP &displacement_coefficients, \fBPreparationMode\fP mode=PreparationMode::reuse_unchanged)"
|
|
.br
|
|
.RI "Throw a caller-visible numerical error when a complete preparation cannot be accepted\&. "
|
|
.ti -1c
|
|
.RI "template<typename Scope = void, typename CacheT> \fBNumericalWork\fP \fBserif::operators::backend::mfem::volume_work_report\fP (const CacheT &cache)"
|
|
.br
|
|
.RI "Derive work counts from accepted node statuses; no second report lifecycle is stored\&. "
|
|
.in -1c
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for SERiF from the source code\&.
|