|
| template<VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::validate_volume_data (const VolumeData< EquationT, SchemaT > &data) |
| | Reject changes to discretization objects borrowed by an accepted linearization.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename VisitT> |
| void | serif::operators::backend::mfem::for_each_volume_element (const VolumeData< EquationT, SchemaT > &data, VisitT &&visit) |
| | Visit each contribution's own batch in equation order, without scanning other contributions.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename VisitT> |
| void | serif::operators::backend::mfem::for_each_volume_linearization (const VolumeData< EquationT, SchemaT > &data, VisitT &&visit) |
| | Visit equation data together with its graph-owned local geometry derivative matrix.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | serif::operators::backend::mfem::volume_height (const VolumeData< EquationT, SchemaT > &data) |
| | Return the supported residual size.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | serif::operators::backend::mfem::volume_width (const VolumeData< EquationT, SchemaT > &data) |
| | Packed directions contain unique coefficient terms followed by displacement.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| std::size_t | serif::operators::backend::mfem::tensor_element_count (const VolumeData< EquationT, SchemaT > &data) |
| | Count contribution-elements using tensor contractions for any sampled basis.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| int | serif::operators::backend::mfem::integration_order (const VolumeData< EquationT, SchemaT > &data, int element) |
| | Return the largest contribution quadrature order on a supported mesh element.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::volume_residual (const VolumeData< EquationT, SchemaT > &data, ::mfem::Vector &result) |
| | Copy the residual already assembled and checked when this result was accepted.
|
| |
| template<std::size_t Count> |
| std::array< discretization::backend::mfem::DofMap::Elements, Count > | serif::operators::backend::mfem::column_elements (const std::array< const discretization::backend::mfem::DofMap *, Count > &columns) |
| | Validate coefficient bindings once before a complete element traversal.
|
| |
| template<bool Fields = true, bool Geometry = true, VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::apply_volume_direction (const VolumeData< EquationT, SchemaT > &data, const std::array< const ::mfem::Vector *, EquationPlan< EquationT >::column_count > &directions, const ::mfem::Vector &displacement_direction, Workspace &workspace, ::mfem::Vector &result) |
| | Apply only the requested directions and assemble their supported residual contribution.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::apply_volume_displacements (const VolumeData< EquationT, SchemaT > &data, std::span< const ::mfem::Vector *const > displacement_directions, std::span<::mfem::Vector *const > results) |
| | apply_volume_direction<false, true> for several displacement directions in one traversal.
|
| |
| template<VolumeEquation EquationT, typename SchemaT, typename CoefficientsT> |
| void | serif::operators::backend::mfem::apply_jacobian (const VolumeData< EquationT, SchemaT > &data, const CoefficientsT &direction, const ::mfem::Vector &displacement_direction, Workspace &workspace, ::mfem::Vector &result) |
| | Apply a direction whose terms explicitly name the accepted coefficient bindings.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::apply_jacobian (const VolumeData< EquationT, SchemaT > &data, const ::mfem::Vector &direction, Workspace &workspace, ::mfem::Vector &result) |
| | Unpack unique coefficient terms and displacement, then use the same numerical action.
|
| |
| template<VolumeEquation EquationT, typename SchemaT> |
| void | serif::operators::backend::mfem::apply_jacobian_transpose (const VolumeData< EquationT, SchemaT > &data, const ::mfem::Vector &residual_dual, Workspace &workspace, ::mfem::Vector &result) |
| | Assemble the full coordinate transpose in the same packed order as the forward action.
|
| |