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

Namespaces

namespace  backend
 
namespace  detail
 

Classes

struct  BadContributionCollection
 
struct  BadContributionRow
 
struct  ContributionBinding
 Retain one leaf equation and the constant coefficient of its arithmetic expression. More...
 
struct  DiscontinuousScalar
 
struct  EquationPlan
 
struct  EquationPlan< EquationT, utils::types::TypeList< O... > >
 
class  EquationRegistry
 A compile-time registry of equations. More...
 
struct  GradientRequest
 
struct  HasScalarVolumeOperands
 
struct  HasScalarVolumeOperands< EquationT, utils::types::TypeList< Operands... > >
 
class  LinearizedBlock
 An accepted physical block with optional efficient diagonal and sparse assembly operations. More...
 
class  LinearizedSystemView
 Borrow an accepted collection of physical blocks and its independently ordered system layout. More...
 
struct  NestedBadCollection
 
struct  NodalRequest
 
struct  OperandValues
 A helper struct to store the values of operands. There is some convention here, specifically if OutputT is void then this struct represents the values of the operands, otherwise it represents the local derivatives of the operands with respect to OutputT. More...
 
struct  PhysicalBlock
 Identify a physical Jacobian block by its equation rows and unknown coordinates. More...
 
struct  VolumeContributions
 
struct  VolumeContributions< std::tuple< C... > >
 
struct  VolumeOperands
 
struct  VolumeOperands< C, utils::types::TypeList< O... > >
 

Concepts

concept  ScalarValueTerm
 
concept  ScalarValueOperand
 
concept  ScalarGradientOperand
 A conforming scalar gradient; discontinuous fields also require face terms.
 
concept  VectorGradientOperand
 Full vector gradients are supported for componentwise H1 fields.
 
concept  ScalarVolumeEquation
 Equations executable by the current scalar-value volume operator.
 
concept  MappedOperand
 Mathematical operand combinations implemented by the current volume backend.
 
concept  VolumeEquation
 One or more supported weak volume contributions assembled into a single residual row.
 

Typedefs

using Density = discretization::forms::Operand<discretization::blocks::density::mass>
 
using Potential = discretization::forms::Operand<discretization::blocks::gravity::potential>
 
using Constant = discretization::forms::Operand<discretization::blocks::barotropic_constant::mass_normalization>
 
using FirstOrder = equations::OperandValues<utils::types::TypeList<Density, Potential, Constant>>
 
using PermutedOrder = equations::OperandValues<utils::types::TypeList<Constant, Density, Potential>>
 
using MassPlan = EquationPlan<equations::MassNormalization>
 
using BalancePlan = EquationPlan<equations::BarotropicDensityBalance<eos::models::Polytrope>>
 
using MassPoint = equations::EquationPoint<equations::MassNormalization::Operands>
 
using PotentialContributions = equations::ContributionsOf<equations::PrimalPoissonBalance>
 
using Balance = equations::BarotropicDensityBalance<eos::models::Polytrope>
 
using Displacement = discretization::blocks::displacement::vector
 
using Schema = discretization::domain::schema::CoreEnvelopeVacuumDomainSchema
 
using BoundaryValue = NodalRequest<Potential>
 
using DensityValue = discretization::forms::Operand<Density>
 
using PotentialValue = discretization::forms::Operand<Potential>
 
using PotentialGradient = discretization::forms::Operand<Potential, discretization::forms::Operation::Gradient>
 
using DisplacementDivergence = discretization::forms::Operand<discretization::blocks::displacement::vector, discretization::forms::Operation::Divergence>
 
using DisplacementValue = discretization::forms::Operand<Displacement>
 
using DisplacementGradient = discretization::forms::Operand<Displacement, discretization::forms::Operation::Gradient>
 
using VectorTensor = discretization::forms::MatrixValue
 
using CartesianVector = discretization::forms::VectorValue
 
using MixedSamples = utils::types::TypeList<DisplacementValue, DisplacementDivergence, DensityValue>
 
using Mass = equations::MassNormalization
 
using Omega = discretization::blocks::rotation::angular_velocity
 
using Momentum = equations::AngularMomentumConstraint
 

Functions

template<equations::Equation EquationT>
auto bind_contributions (std::shared_ptr< const EquationT > equation)
 Give each retained leaf a compile-time tuple position for independently cached contribution results.
 
template<equations::Equation EquationT, typename FunctionT>
void for_each_contribution (const EquationT &equation, FunctionT &&function)
 
template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
 LinearizedSystemView (const Layout &, const Blocks &) -> LinearizedSystemView< Layout, Blocks >
 Infer canonical owner types while retaining the explicit borrowing lifetime checks.
 
LinearizedBlock linearized_block (std::shared_ptr< const ::mfem::SparseMatrix > matrix)
 Retain an already assembled physical block without copying its matrix.
 

Typedef Documentation

◆ Balance

◆ BalancePlan

◆ BoundaryValue

◆ CartesianVector

◆ Constant

◆ Density

◆ DensityValue

◆ Displacement

◆ DisplacementDivergence

◆ DisplacementGradient

◆ DisplacementValue

◆ FirstOrder

◆ Mass

◆ MassPlan

◆ MassPoint

◆ MixedSamples

◆ Momentum

◆ Omega

◆ PermutedOrder

◆ Potential

◆ PotentialContributions

◆ PotentialGradient

◆ PotentialValue

◆ Schema

◆ VectorTensor

Function Documentation

◆ bind_contributions()

template<equations::Equation EquationT>
auto serif::operators::bind_contributions ( std::shared_ptr< const EquationT > equation)
nodiscard

Give each retained leaf a compile-time tuple position for independently cached contribution results.

◆ for_each_contribution()

template<equations::Equation EquationT, typename FunctionT>
void serif::operators::for_each_contribution ( const EquationT & equation,
FunctionT && function )

Visit leaves in declaration order, multiplying constant coefficients along each path. The callback receives (leaf equation, unique contribution index, coefficient).

◆ linearized_block()

LinearizedBlock serif::operators::backend::mfem::linearized_block ( std::shared_ptr< const ::mfem::SparseMatrix > matrix)
nodiscard

Retain an already assembled physical block without copying its matrix.

◆ LinearizedSystemView()

template<discretization::blocks::SystemLayoutType Layout, utils::dependencies::IsDependencyContext Blocks>
serif::operators::LinearizedSystemView ( const Layout & ,
const Blocks &  ) -> LinearizedSystemView< Layout, Blocks >

Infer canonical owner types while retaining the explicit borrowing lifetime checks.