Skip to content
This repository was archived by the owner on Jul 19, 2023. It is now read-only.
This repository was archived by the owner on Jul 19, 2023. It is now read-only.

New DiffEqOperator Interface for Array and Composite Operators #60

@MSeeker1340

Description

@MSeeker1340

The current interface of AbstractDiffEqOperator is a bit messy and could use some rework. Some of the major problems are:

  • The definitions are not centralized, with some of the type hierarchy defined in DiffEqBase instead of DiffEqOperators.

  • AbstractDiffEqOperator is defined as a subtype of AbstractLinearMap from LinearMaps.jl. This is problematic because the combination and composition of operators will be of type LinearCombination and CompositeMap, which goes beyond the AbstractDiffEqOperator type hierarchy. Also the implementation in LinearMaps.jl for operator combinations and compositions are not optimal for out standard (e.g. multiplication requires allocation of additional memory).

  • Time-dependent coefficients. Currently they are implemented as DiffEqScalar and included within array operators. Presumably we need to do the same for all operators, which can be cumbersome.

Below is my draft for a new DiffEqOperator interface that gets rid of the LinearMaps dependence and build up the type hierarchy from scratch. The overall structure is similar to LinearMaps while at the same time tailored to the needs of JuliaDiffEq. Feedbacks are welcomed :P

New DiffEqArrayOperator Interface Draft

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions