Skip to content
Snippets Groups Projects
Commit beec6d3e authored by Martin Bauer's avatar Martin Bauer
Browse files

Adapted README

parent bc82de86
No related branches found
No related tags found
No related merge requests found
pystencils pystencils
========== ==========
[![pipeline status](https://i10git.cs.fau.de/pycodegen/pystencils/badges/master/pipeline.svg)](https://i10git.cs.fau.de/pycodegen/pystencils/commits/master)
[![coverage report](https://i10git.cs.fau.de/pycodegen/pystencils/badges/master/coverage.svg)](https://i10git.cs.fau.de/pycodegen/pystencils/commits/master)
[coverage report](http://pycodegen.pages.walberla.net/pystencils/coverage_report)
Run blazingly fast stencil codes on numpy arrays. Run blazingly fast stencil codes on numpy arrays.
![alt text](doc/img/logo.png) *pystencils* uses sympy to define stencil operations, that can be executed on numpy array.
It runs faster than normal numpy code and even as Cython and numba.
Here is a code snippet that computes the average of neighboring cells:
```python
import pystencils as ps
import numpy as np
f, g = ps.fields("f, g : [2D]")
stencil = ps.Assignment(g[0, 0],
(f[1, 0] + f[-1, 0] + f[0, 1] + f[0, -1]) / 4)
kernel = ps.create_kernel(stencil).compile()
f_arr = np.random.rand(1000, 1000)
g_arr = np.empty_like(f_arr)
kernel(f=f_arr, g=g_arr)
```
*pystencils* is mostly used for numerical simulations using finite difference or finite volume methods.
It comes with automatic finite difference discretization for PDEs:
```python
c, v = ps.fields("c, v(2): [2D]")
adv_diff_pde = ps.fd.transient(c) - ps.fd.diffusion(c, sp.symbols("D")) + ps.fd.advection(c, v)
discretize = ps.fd.Discretization2ndOrder(dx=1, dt=0.01)
discretization = discretize(adv_diff_pde)
```
Look at the [documentation](http://pycodegen.pages.walberla.net/pystencils) to learn more.
Installation Installation
------------ ------------
```bash ```bash
export PIP_EXTRA_INDEX_URL=https://www.walberla.net/pip
pip install pystencils[interactive] pip install pystencils[interactive]
``` ```
...@@ -32,4 +63,5 @@ pip install pystencils[interactive,gpu,doc] ...@@ -32,4 +63,5 @@ pip install pystencils[interactive,gpu,doc]
Documentation Documentation
------------- -------------
Read the docs [here](http://software.pages.walberla.net/pystencils/pystencils) Read the docs [here](http://pycodegen.pages.walberla.net/pystencils) and
\ No newline at end of file check out the Jupyter notebooks in `doc/notebooks`.
doc/img/logo_no_text.png

5.42 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment