SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::operators::backend::mfem::EvaluableOperand Concept Reference

Check the complete interface used by preparation, Jacobian application, and its transpose. More...

#include <operand_evaluation.hpp>

Concept definition

template<typename OperandT>
const ::mfem::IntegrationRule& rule,
::mfem::ElementTransformation& transformation,
const BasisEvaluation& reference_basis,
BasisEvaluation& mapped_basis,
BasisWorkspace& workspace,
const ::mfem::Vector& coefficients,
const typename OperandEvaluator<OperandT>::ReferenceValue& reference_value,
) {
{ OperandEvaluator<OperandT>::components } -> std::convertible_to<int>;
{ OperandEvaluator<OperandT>::reference_components } -> std::convertible_to<int>;
{ OperandEvaluator<OperandT>::geometry_dependent } -> std::convertible_to<bool>;
{ OperandEvaluator<OperandT>::sample_basis(binding, 0, rule, mapped_basis, cache, ContractionMode::automatic, transformation, workspace) } -> std::same_as<void>;
{ OperandEvaluator<OperandT>::evaluate(reference_basis, coefficients, values, workspace) } -> std::same_as<void>;
{ OperandEvaluator<OperandT>::integrate(reference_basis, coefficients, values, workspace) } -> std::same_as<void>;
{ OperandEvaluator<OperandT>::reference_value(coefficients, 0) } -> std::same_as<typename OperandEvaluator<OperandT>::ReferenceValue>;
{ OperandEvaluator<OperandT>::physical_value(reference_value, context) } -> std::same_as<typename OperandEvaluator<OperandT>::Value>;
{ OperandEvaluator<OperandT>::geometry_variation(reference_value, context, variation) } -> std::same_as<typename OperandEvaluator<OperandT>::Value>;
{ OperandEvaluator<OperandT>::map_basis_point(0, context, reference_basis, mapped_basis, workspace) } -> std::same_as<void>;
{ OperandEvaluator<OperandT>::map_basis_point(0, context, reference_basis, mapped_basis, workspace, &variation) } -> std::same_as<void>;
}
Represents an element-local basis evaluation operator, supporting dense or tensor contractions,...
Definition basis_evaluation.hpp:115
A mapping from a full MFEM finite-element space to a reduced set of DOFs that are supporter by the gi...
Definition dof_map.hpp:39
Share immutable tensor plans within one operator; copied rules are keyed by their contents.
Definition tensor_basis.hpp:458
Check the complete interface used by preparation, Jacobian application, and its transpose.
Definition operand_evaluation.hpp:311
::mfem::Vector Vector
Definition computation_owners.cpp:27
::mfem::Vector values
Definition element_preparation.hpp:91
Reusable scratch storage for basis contractions, reducing repeated allocations.
Definition basis_evaluation.hpp:19
A structure representing the context of a mapping point, including the reference position,...
Definition context.hpp:55
Definition variation.hpp:7
static void sample_basis(const discretization::backend::mfem::DofMap &binding, int element, const ::mfem::IntegrationRule &rule, BasisEvaluation &basis, TensorBasisCache &cache, ContractionMode mode, ::mfem::ElementTransformation &transformation, BasisWorkspace &workspace)
A global coefficient has basis one; spatial operands use their native element basis.
Definition operand_evaluation.hpp:58
static void evaluate(const BasisEvaluation &basis, const ::mfem::Vector &coefficients, ::mfem::Vector &values, BasisWorkspace &workspace)
Apply a cached tensor or dense basis using reusable contraction scratch.
Definition operand_evaluation.hpp:191
static void integrate(const BasisEvaluation &basis, const ::mfem::Vector &values, ::mfem::Vector &result, BasisWorkspace &workspace)
Transpose the same contraction; global scalar reductions retain compensated summation.
Definition operand_evaluation.hpp:201
static constexpr bool geometry_dependent
Definition operand_evaluation.hpp:50
Definition operand_evaluation.hpp:28

Detailed Description

Check the complete interface used by preparation, Jacobian application, and its transpose.