Composite Data Structures

The package relies on a number of basic composite data structures that encompass more complicated objects. For the internal representation of sparse matrices we refer to Internal Sparse Matrix Representation.

ConleyDynamicsModule
module ConleyDynamics

Collection of tools for computational Conley theory.

source

Lefschetz Complex Type

ConleyDynamics.LefschetzComplexType
LefschetzComplex

Collect the Lefschetz complex information in a struct.

The struct is created via the following fields:

  • labels::Vector{String}: Vector of labels associated with cell indices
  • dimensions::Vector{Int}: Vector cell dimensions
  • boundary::SparseMatrix: Boundary matrix, columns give the cell boundaries

It is expected that the dimensions are given in increasing order, and that the square of the boundary matrix is zero. Otherwise, exceptions are raised. In addition, the following fields are created during initialization:

  • ncells::Int: Number of cells
  • dim::Int: Dimension of the complex
  • indices::Dict{String,Int}: Dictionary for finding cell index from label

The coefficient field is specified by the boundary matrix.

source

Cell Subset Types

ConleyDynamics.CellsType
Cells = Union{Vector{Int},Vector{String}}

A list of cells of a Lefschetz complex.

This data type is used to represent subsets of a Lefschetz complex. It is used for individual isolated invariant sets, locally closed subsets, and multivectors.

source
ConleyDynamics.CellSubsetsType
CellSubsets = Union{Vector{Vector{Int}},Vector{Vector{String}}}

A collection of cell lists.

This data type is used to represent a collection of subsets of a Lefschetz complex. It is used for Morse decompositions and for multivector fields.

source

Conley-Morse Graph Type

ConleyDynamics.ConleyMorseCMType
ConleyMorseCM{T}

Collect the connection matrix information in a struct.

The struct has the following fields:

  • matrix::SparseMatrix{T}: Connection matrix
  • columns::Vector{Int}: Corresponding columns in the boundary matrix
  • poset::Vector{Int}: Poset indices for the connection matrix columns
  • labels::Vector{String}: Labels for the connection matrix columns
  • morse::Vector{Vector{String}}: Vector of Morse sets in original complex
  • conley::Vector{Vector{Int}}: Vector of Conley indices for the Morse sets
  • complex::LefschetzComplex: The Conley complex as a Lefschetz complex
source