Skip to content

PINN-kit

A comprehensive toolkit for Physics-Informed Neural Networks (PINNs) that empowers researchers and engineers to solve complex differential equations using deep learning.

!!! abstract "What is PINN-kit?" PINN-kit provides an intuitive interface for implementing and training physics-informed neural networks, combining the power of deep learning with the rigor of physics-based modeling.

Key Features

  • Easy-to-use interface for defining physics-informed neural networks
  • Flexible domain handling utilities for arbitrary input variables
  • High-performance training with PyTorch backend
  • Built-in visualization tools for results analysis
  • Support for various differential equation types
  • Clean, modular design for easy customization

Quick Start

Installation

PINN-kit supports macOS, Linux, and Windows. Install it using pip:

pip install pinn-kit

!!! tip "Virtual Environment" It's recommended to use a virtual environment with Python 3.12+ to avoid dependency conflicts:

```bash
python3.12 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install pinn-kit
```

Basic Usage

from pinn_kit import PINN, Domain

# Create a domain with flexible variable definition
domain = Domain([
    ('x', -1, 1),  # x-coordinate bounds
    ('y', -1, 1),  # y-coordinate bounds  
    ('t', 0, 1)    # time bounds
])

# Initialize a PINN with 3 inputs, 2 hidden layers, 1 output
pinn = PINN([3, 20, 20, 1])

# Define your physics-informed loss function
def physics_loss():
    # Your physics constraints here
    return loss_value

# Train the network
pinn.train_model(domain, physics_loss, epochs=1000)

!!! success "That's it!" PINN-kit handles all the complexity behind the scenes, letting you focus on your physics problem.

Documentation

Explore our comprehensive documentation to get the most out of PINN-kit:

Learn how to use PINN-kit effectively with step-by-step tutorials and examples.

Understand how to define and work with different types of domains and boundaries.

Dive deep into the PINN implementation and advanced configuration options.

See real-world applications and use cases with complete code examples.

Use Cases

PINN-kit is perfect for solving:

  • Heat transfer and fluid dynamics problems
  • Wave propagation and vibration analysis
  • Quantum mechanics and electromagnetic field simulations
  • Financial modeling with differential constraints
  • Biological systems and chemical reactions

System Requirements

Component Requirement
Python 3.9+
PyTorch 2.0+
NumPy 1.21+
OS macOS, Linux, Windows

!!! note "Dependencies" All required dependencies (including PyTorch) are automatically installed with PINN-kit.

Contributing

We welcome contributions! Whether it's:

  • Bug reports and feature requests
  • Documentation improvements
  • Code contributions and pull requests
  • Ideas and suggestions

Visit our GitHub repository to get started.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❤️ for the scientific computing community. Created by Shivani M. Pillay (CEO) fraqtal technologies Pty (LTD)