Skip to content

Orientation of simplicial complexes #358

@ffl096

Description

@ffl096

The Problem

Simplicial complexes are often used with an arbitrary reference orientation in mind, e.g., when considering edge flows. Consider this simple example:

from toponetx.classes import SimplicialComplex

SC = SimplicialComplex()
SC.add_simplex((2, 1), flow=10)

The user should expect that the edge (2, 1) is added with exactly this orientation, i.e., with an edge flow of 10 from node 2 to node 1. However, TopoNetX does not handle orientation, it transforms the edge into canonical form (1, 2) without any thought about associated data that might be orientation-aware.

Possible Actions

  • Full-fledged orientation support. This is a big undertaking, especially for when already existing simplices are re-added with a different orientation. A priori it is not clear how to deal with already existing data, as we cannot infer whether arbitrary user-data is relative to the orientation or not. For data that is relative to orientation, we might have to change the sign, for other data (with may also be numeric), we must not alter them.
  • Offload the cannocalization and appropriate sign-changes of data to the user. SimplicialComplex.add_simplex calls are only allowed for pre-sorted tuples.

Metadata

Metadata

Assignees

No one assigned
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions