Skip to content

DOKOS-TAYOS/DifferentialLab

Repository files navigation

DifferentialLab Logo

DifferentialLab

Numerical ODE, difference-equation, and PDE solver with a desktop GUI for science and engineering workflows.

Python License Version Status

Documentation | Report Bug | Request Feature

What It Solves

  • ODEs with SciPy integrators (RK45, RK23, DOP853, Radau, BDF, LSODA)
  • Difference equations (recurrence systems)
  • PDEs (elliptic 2D solver and operator-based PDE workflows)
  • Vector ODE systems with dedicated visualization modes
  • Function transforms (Fourier, Laplace, Taylor, Hilbert, Z-transform)

Core Features

  • Predefined equation catalog loaded from YAML (config/equations/*.yaml)
  • Custom equation parsing with safe AST validation
  • Unified f[...] notation (f[0], f[1], f[i,k])
  • Interactive result dialogs (derivative selection, phase-space selection, dynamic redraw)
  • Export to CSV, JSON, static figures, and MP4 animations
  • Configurable UI/plot/solver behavior via .env or in-app configuration dialog

Complex Problems (Plugin Mode)

Complex Problems is a plugin-style subsystem for specialized models with custom UI, solver, and result dialogs.

Current modules:

  • coupled_oscillators (1D coupled oscillators and FPUT variants)
  • membrane_2d (2D coupled nonlinear membrane)
  • nonlinear_waves (NLSE and KdV)
  • schrodinger_td (time-dependent Schrodinger in 1D/2D)
  • antenna_radiation (far-field patterns and antenna metrics)
  • aerodynamics_2d (2D incompressible obstacle flow approximations)
  • pipe_flow (steady and transient 1D pipe-flow models)

Requirements

  • Python >=3.12
  • Windows 10/11, macOS, or Linux
  • Tkinter available in the Python runtime (GUI requirement)

Quick Start

First-time setup

Windows:

install.bat

Linux/macOS:

chmod +x install.sh
./install.sh

Existing clone

Windows:

bin\setup.bat
bin\run.bat

Linux/macOS:

chmod +x bin/setup.sh bin/run.sh
./bin/setup.sh
./bin/run.sh

Direct run:

python src/main_program.py

Installed console entry point:

differential-lab

Documentation

To build docs locally:

pip install -e ".[docs]"
cd docs
make html      # Linux/macOS
make.bat html  # Windows

Output directory: docs/_build/html/.

Development

Install development dependencies:

pip install -e ".[dev]"

Run tests:

pytest

Contribution guide: CONTRIBUTING.md.

License

MIT License. See license.md.

Third-party licenses: THIRD_PARTY_LICENSES.md.

About

DifferentialLab: numerical solver for ODEs, difference equations, and PDEs with a Python GUI. SciPy methods (RK45, Radau, BDF), vector systems, transforms (Fourier, Laplace), and CSV/PNG/MP4 export.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors