Skip to main content

Module diffalg

Module diffalg 

Source
Expand description

V2-13 — Differential algebra / Rosenfeld–Gröbner-style differential elimination.

Given a polynomial DAE in implicit form g_i(t, y, y') = 0, prolongation appends formal time derivatives D^k(g_i) while tracking the derivative state layout (same structural rule as crate::dae::pantelides). After each prolongation step, an ordinary Gröbner basis over ℚ captures the algebraic constraints among the jet variables. Inconsistent systems yield the unit ideal (basis containing a non-zero constant).

This is a fragment of the full Rosenfeld–Gröbner / regular differential decomposition (no multi-branch saturation over initials here); it suffices for consistency checking and complements Pantelides when the structural index is high.

References:

  • Boulier et al., Rosenfeld–Gröbner algorithm (differential elimination).
  • Hubert, Differential algebra for comptroller generation.

Structs§

DifferentialIdeal
Algebraic presentation of a finitely generated differential ideal (dense ℚ-polynomial generators in a fixed jet basis).
DifferentialRanking
Ordering data for differential indeterminates: vars[i] maps to exponent index i of GbPoly used in Gröbner steps.
DifferentialRing
Ordinary polynomial ring context for a fixed independent variable and ranked jets.
RegularDifferentialChain
One component produced by differential elimination — here the algebraic Gröbner basis of a saturated ordinary ideal at the end of prolongation.
RosenfeldGroebnerResult
Result of rosenfeld_groebner (single coherent component in this build).

Enums§

DaeIndexReduction
Outcome of dae_index_reduce: Pantelides when it succeeds, otherwise a Rosenfeld–Gröbner consistency pass when Pantelides hits its index cap.
DiffAlgError
Errors from differential-algebra operations.

Functions§

dae_index_reduce
Try Pantelides; on DaeError::IndexTooHigh, run rosenfeld_groebner.
rosenfeld_groebner
rosenfeld_groebner_with_options with [DEFAULT_MAX_PROLONG_ROUNDS].
rosenfeld_groebner_algebraic
Algebraic-only slice: Gröbner basis of the generators; empty Vec if the ideal is [1].
rosenfeld_groebner_with_options
Rosenfeld-style prolongation + Gröbner stabilization for a polynomial DAE.