|
| template<std::size_t Contribution, typename OperandT, VolumeEquation EquationT, typename SchemaT, typename Scope = void> |
| auto | serif::operators::backend::mfem::make_operand_computations (const std::shared_ptr< VolumeScratch > &scratch) |
| | Declare one coefficient contraction, followed by a physical mapping when the space requires it.
|
| |
| template<std::size_t Index, typename Scope, VolumeEquation EquationT, typename SchemaT, typename ContributionT, typename... Operands> |
| auto | serif::operators::backend::mfem::make_contribution_computations (const std::shared_ptr< const VolumeConfiguration< EquationT, SchemaT > > &configuration, const std::shared_ptr< VolumeScratch > &scratch, ContributionBinding< ContributionT > contribution, utils::types::TypeList< Operands... >) |
| | Build one contribution's branch in the same order as its numerical description.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, std::size_t... Indices> |
| auto | serif::operators::backend::mfem::connect_volume_contributions (const std::shared_ptr< const VolumeConfiguration< EquationT, SchemaT > > &configuration, std::index_sequence< Indices... >) |
| | Expose contribution computations so deformation and equations can share one dependency graph.
|
| |
| template<VolumeEquation EquationT, std::size_t Index, typename Scope = void, typename CacheT> |
| void | serif::operators::backend::mfem::report_contribution_preparation (const CacheT &cache, NumericalWork &report) |
| | Convert the dependency engine's node statuses to numerical work counts for one contribution.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> |
| auto | serif::operators::backend::mfem::make_volume_equation_computations (std::shared_ptr< const EquationT > equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, VolumeOptions options={}) |
| | Declare reusable volume computations without selecting their source of displacement.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT> |
| auto | serif::operators::backend::mfem::make_volume_equation_computations (EquationT equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, VolumeOptions options={}) |
| | Own standalone equations while allowing complete models to share their existing immutable members.
|
| |
| template<typename Scope = void, VolumeEquation EquationT, typename SchemaT, typename InputsT> |
| auto | serif::operators::backend::mfem::make_volume_equation_cache (EquationT equation, const VolumeDiscretization< typename EquationT::Test, SchemaT > &discretization, const InputsT &inputs, VolumeOptions options={}) |
| | Construct a standalone cache from the same computations used by a coupled deformation graph.
|
| |
| template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> |
| std::expected< void, PreparationRejection > | serif::operators::backend::mfem::try_prepare_volume (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients, PreparationMode mode=PreparationMode::reuse_unchanged) |
| | Validate current inputs and atomically publish a complete volume linearization.
|
| |
| template<typename Scope = void, typename CacheT, typename DiscretizationT, typename CoefficientsT> |
| void | serif::operators::backend::mfem::prepare_volume (CacheT &cache, const DiscretizationT &discretization, const CoefficientsT &term_coefficients, const ::mfem::Vector &displacement_coefficients, PreparationMode mode=PreparationMode::reuse_unchanged) |
| | Throw a caller-visible numerical error when a complete preparation cannot be accepted.
|
| |
| template<typename Scope = void, typename CacheT> |
| NumericalWork | serif::operators::backend::mfem::volume_work_report (const CacheT &cache) |
| | Derive work counts from accepted node statuses; no second report lifecycle is stored.
|
| |