Skip to main content

Python Awesome Partial differential Equation Solver

Project description

pyapes: PYthon Awesome Partial differential Equation Solver (general purpose finite difference PDE solver)

python

Description

pyapes is designed to solve various engineering problems in rectangular grid.

The goal of pyapes (should be/have) is

  • Cross-platform
    • Both tested on Mac and Linux (Arch)
    • Windows support is under testing
  • GPU acceleration in a structured grid with PyTorch
    • Use of torch.Tensor. User can choose either torch.device("cpu") or torch.device("cuda").
  • Generically expressed (OpenFOAM-like, human-readable formulation)

Installation

We recommend to use poetry to manage/install all dependencies.

  • From git

    git clone git@gitlab.ethz.ch:kchung/pyapes.git
    cd pyapes
    poetry install
    
  • From pypi

    python3 -m pip install pyapes
    # or
    poetry add pyapes
    

Dependencies

  • Core dependency
    • python >= 3.10
      • As of 19.02.2023, torch does not support 3.11 properly (for the official release). Therefore, stick to python3.10.
    • torch >= 1.10.0
  • Dependencies from my personal projects
    • pymyplot (plotting tools)
    • pymytools (misc. tools including data I/O, logging, etc.)

Implemented Features

  • CPU/GPU(CUDA) computation using torch

  • (OpenFOAM like) generically expressed solver

      >>> solver.set_eq(fdm.laplacian(1.0, var) == rhs)
      >>> solver.solve()
    
  • FDM Discretizations

    • Spatial: Grad, Laplacian, Div
      • Supports flux limiter upwind for the Div operator
    • Temporal: Ddt
  • Boundary conditions:

    • Supports Dirichlet, Neumann, Periodic, and Symmetry
  • Demo cases in jupter notebooks

Examples

Check our demos files

Todos

  • Boundary conditions
    • Inflow/Outflow
  • Need different derivative order at the cell face
    • Additional features
      • High order time discretization
      • Immersed body BC
      • Higher order flux limiters (quick)
  • Testing and validation
    • Ddt class (implementation is tested but haven't validated with practical test cases)
  • Working on demo files
    • The Poisson equation
    • The advection-diffusion equation
    • The Burgers' equation
    • The Navier-Stokes equation at low Reynolds numbers
    • The Black-Scholes equation

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

pyapes-0.1.1.tar.gz (31.1 kB view hashes)

Uploaded Source

Built Distribution

pyapes-0.1.1-py3-none-any.whl (38.1 kB view hashes)

Uploaded Python 3

Supported by

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