Skip to content

MixedFormAlgebra - More Flexible Coercions #28916

@DeRhamSource

Description

@DeRhamSource

This makes the coercion model of mixed forms more robust against modifications regarding differential forms. For instance: As soon as all differential forms of another mixed form have a coerce map, the mixed form has one too. The same now holds for any algebraic element which is coercible into a single differential form.

At this stage, the method degree is used and special cases are handled separately. But notice that not all coercible objects provide this method (symbolic ring). Or conversely, having this method doesn't mean being coercible into a differential form. Hence this invocation is now entirely avoided.

In particular we have:

sage: M = Manifold(2, 'M')
sage: Omega = M.mixed_form_algebra()
sage: Omega1 = M.diff_form_module(1)
sage: T01 = M.tensor_field_module((0,1))
sage: Omega1.has_coerce_map_from(T01)
True

But at this stage:

sage: Omega.has_coerce_map_from(T01)
False

With this ticket:

sage: Omega.has_coerce_map_from(T01)
True

CC: @egourgoulhon @tscrim

Component: geometry

Keywords: mixed-forms

Author: Michael Jung

Branch: 37863df

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/28916

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions