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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cinfsymmetries-1.2.3.tar.gz.
File metadata
- Download URL: cinfsymmetries-1.2.3.tar.gz
- Upload date:
- Size: 202.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1ad1ea99227ab78b6332a711c19152317f7df02dea909879ab7c50d825ae33d
|
|
| MD5 |
fea8fe32ec03aad624ee4923391b4f0d
|
|
| BLAKE2b-256 |
9d93375809dee7a45f994b2f8f143849360723d065f1bab99c488a8d3e7bc4bf
|
File details
Details for the file cinfsymmetries-1.2.3-py3-none-any.whl.
File metadata
- Download URL: cinfsymmetries-1.2.3-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0509c84d09ace4f59af6e3be3ec73e77d28bd242c192a06870d00c6ed753a99e
|
|
| MD5 |
1ef9ce2e3a9880fb86c33e67a218afd3
|
|
| BLAKE2b-256 |
8a4c229746ce64282da373d919c20279a5a736ea9a9da0363eb3e4ef6adaade2
|