Metadata-Version: 2.3
Name: nijenhuis-toolkit
Version: 0.1.1
Summary: A toolkit to simplify working with Nijenhuis and Haantjes tensors
Keywords: mathematics,tensor,integrability,differential-geometry,sympy
Author: Morgan McCaffrey
Author-email: Morgan McCaffrey <mjmccaffrey44@gmail.com>
License: MIT
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Intended Audience :: Science/Research
Requires-Dist: matplotlib>=3.10.9
Requires-Dist: numpy>=2.4.6
Requires-Dist: scipy>=1.17.1
Requires-Dist: sympy>=1.14.0
Requires-Python: >=3.11
Project-URL: Repository, https://github.com/idlechip/nijenhuis-toolkit
Description-Content-Type: text/markdown

# Nijenhuis toolkit

Symbolic computation of Nijenhuis and Haantjes tensors for integrability analysis of hydrodynamic-type systems.

## Features

- Nijenhuis and Haantjes tensor objects in python
- Symbolic computation using SymPy
- Checking of diagonalisability and zero elements
- Easy to read tensor summaries
- Direct LaTeX translation functions for tensors and matrices

## Installation 

If using pip:
    pip install nijenhuis-toolkit

## Examples
    # Define coordinates and a matrix as an operator
    u, v = sp.symbols('u v')

    L = Operator(
        [[v,1],
        [0,v]],coords=[u,v])

    # Compute the Nijenhuis and Haantjes tensors
    N = L.nijenhuis_tensor()
    H = L.haantjes_tensor()

    # Prouce a tensor summary
    print(tensor_summary(N,symbol="N"))
    >>> N: 2 components total, 0 non-zero
        

    #Check if the Nijenhuis tensor is identically zero
    print(L.is_nijenhuis())
    >>> True

