From beec6d3e4fe078fea83b55815445de73ad1c6f5e Mon Sep 17 00:00:00 2001
From: Martin Bauer <martin.bauer@fau.de>
Date: Sat, 27 Apr 2019 18:09:14 +0200
Subject: [PATCH] Adapted README

---
 README.md                |  38 +++++++++++++++++++++++++++++++++++---
 doc/img/logo_no_text.png | Bin 0 -> 5554 bytes
 2 files changed, 35 insertions(+), 3 deletions(-)
 create mode 100644 doc/img/logo_no_text.png

diff --git a/README.md b/README.md
index bd3680317..e864251cd 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,47 @@
 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.
 
-![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
 ------------
 
 ```bash
-export PIP_EXTRA_INDEX_URL=https://www.walberla.net/pip
 pip install pystencils[interactive]
 ```
 
@@ -32,4 +63,5 @@ pip install pystencils[interactive,gpu,doc]
 Documentation
 -------------
 
-Read the docs [here](http://software.pages.walberla.net/pystencils/pystencils)
\ No newline at end of file
+Read the docs [here](http://pycodegen.pages.walberla.net/pystencils) and
+check out the Jupyter notebooks in `doc/notebooks`.
diff --git a/doc/img/logo_no_text.png b/doc/img/logo_no_text.png
new file mode 100644
index 0000000000000000000000000000000000000000..a214a13cbe271cca7c890430a1cb0da44ccadf71
GIT binary patch
literal 5554
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
AZ2$lO

literal 0
HcmV?d00001

-- 
GitLab