SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::equations::PointEquation Concept Reference

A concept that defines the requirements for a pointwise equation. More...

#include <concepts.hpp>

Concept definition

template<typename T>
requires {
typename T::Test;
typename T::Operands;
} &&
std::same_as<typename TestOperandOf<T>::term_type, typename T::Test> &&
requires(const T& equation, const EquationPoint<typename T::Operands>& point) {
{
equation.evaluate(point)
} -> std::same_as<PointLinearization<typename T::Operands, discretization::forms::OperandValue<TestOperandOf<T>>>>;
}
Concept for term types that are global scalar terms. A global scalar term is a term that has support ...
Definition concepts.hpp:89
Concept for term types that have a residual block associated with them. To have a residual block a ty...
Definition concepts.hpp:70
Concept for term types that are spatial terms. A spatial term is a term that has a functional space (...
Definition concepts.hpp:80
Concept to validate a valid operand. An operand is valid if the following conditions are satisfied.
Definition operands.hpp:126
A concept that defines the requirements for a pointwise equation.
Definition concepts.hpp:30
TestOperandTraits< T >::type TestOperandOf
Helper alias to extract the test operand type from a contribution or equation.
Definition contributions.hpp:99
A struct to represent the values of operands at a given point in space.
Definition point.hpp:130

Detailed Description

A concept that defines the requirements for a pointwise equation.

Requirements
  • The equation must have a test type (::Test) and an operand type (::Operands).
  • The test type (::Test) must be either a spatial term or a global scalar term.
  • The test type must have a residual block.
  • The operand type must be a valid operand
  • The operant term type (::term_type) must be the same as the test type (::Test).
  • The equation must have a method called ::evaluate() that takes an EquationPoint of the operand type and returns a PointLinearization of the operand type and the operand value of the test operand.