Skip to main content

Geometric study of differential equations (Lie symmetries, lambda-symmetries, Cinf-structures, solvable structures)

Project description

cinfsymmetries

A Python library for the geometric study of differential equations, bridging the gap from sympy to advanced concepts such as Lie symmetries, $\lambda$-symmetries, $C^{\infty}$-structures, and solvable structures.

Originally inspired by functionality from Maple packages for Differential Geometry.

Features

  • VectorFields and Distributions: Define symbolic vector fields over an arbitrary set of variables.
  • Lie Brackets: Compute Lie Brackets of vector fields analytically.
  • Involutivity: Check if a distribution is involutive.
  • Symmetries: Check if a given vector field is a symmetry of a distribution.
  • C^inf-Symmetries: Specialized check for Generalized symmetries including $\lambda$-symmetries.
  • Prolongations: Automatically prolong vector fields to higher-order jet spaces (any number of independent and dependent variables).
  • Differential Forms: Support for $k$-forms, exterior derivative, wedge product, interior product, and unified Lie derivatives ($\mathcal{L}_X$).
  • Symmetry Search: Automatically derive determining equations for Lie and lambda-symmetries of systems of ODEs or PDEs.
  • Pfaffian Systems: Compute dual distributions from 1-forms and vice versa.
  • Invariants: Calculate fundamental invariants of a vector field.

Documentation

For a detailed guide on how to use the library, including how to create vector fields and check for symmetries, please refer to the Manual.

Installation

pip install -e .

Quick Start

import sympy as sp
from cinfsymmetries import VectorField, LieBracket, Distribution

x, y = sp.symbols('x y')

# Define Vector Fields X = d/dx, Y = x*d/dy
X = VectorField({x: 1})
Y = VectorField({y: x})

# Lie Bracket [X, Y] = d/dy
bracket = LieBracket(X, Y)
print(bracket) # Outputs: (1)*d_y

# Create an ODE-like rank 1 distribution (spanned by X + Y)
D = Distribution([X + Y])

# Check if X is a symmetry of D
# [X, X+Y] = [X, Y] = d/dy, which is NOT in the span of (d/dx + x*d/dy), so False.
print(D.check_symmetry(X))

# Get invariants of X
print(X.get_invariants()) # No non-constant invariants in 1D

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cinfsymmetries-1.2.1.tar.gz (201.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cinfsymmetries-1.2.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file cinfsymmetries-1.2.1.tar.gz.

File metadata

  • Download URL: cinfsymmetries-1.2.1.tar.gz
  • Upload date:
  • Size: 201.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cinfsymmetries-1.2.1.tar.gz
Algorithm Hash digest
SHA256 c848ed65197526dc551df0771bee9fa03743eef11f9faf9faf8364d14d07d022
MD5 7f04963c51c2c307e2e00b3f04e2b35e
BLAKE2b-256 c33e1808b30f0931e2f1f9739ae916c119e331b1f923d68c8dcfcf629b6a76c3

See more details on using hashes here.

File details

Details for the file cinfsymmetries-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: cinfsymmetries-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for cinfsymmetries-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 14e83c2f21eab239c256fe31101f5b3a2a94e82585781b199e84396c55bde74d
MD5 d275d7faf4b850591d153546ec9e9fc2
BLAKE2b-256 d1b5dbfee2a43e876a17a1377ca20fb61b1376b96a58f4e40910fd022eb731d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page