From ab6ffc5de58499ae836669f3266c643152d50822 Mon Sep 17 00:00:00 2001 From: Martin Bauer <martin.bauer@fau.de> Date: Sat, 22 Feb 2020 14:55:18 +0100 Subject: [PATCH] Added binder support --- README.md | 21 ++++++++++++++++++--- binder/apt.txt | 3 +++ binder/environment.yml | 35 +++++++++++++++++++++++++++++++++++ binder/start | 5 +++++ 4 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 binder/apt.txt create mode 100644 binder/environment.yml create mode 100755 binder/start diff --git a/README.md b/README.md index 962e05cb..aa05e6bb 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,34 @@ lbmpy ===== +[](https://mybinder.org/v2/gh/mabau/lbmpy/master?filepath=doc%2Fnotebooks) [](http://pycodegen.pages.walberla.net/lbmpy) [](https://i10git.cs.fau.de/pycodegen/lbmpy/commits/master) [](http://pycodegen.pages.walberla.net/lbmpy/coverage_report) -Run fast fluid simulations based on the lattice Boltzmann method in Python. +Run fast fluid simulations based on the lattice Boltzmann method in Python on CPUs and GPUs. +lbmpy creates highly optimized LB compute kernels in C or CUDA, for a wide variety of different collision operators, including MRT, +entropic, and cumulant schemes. - +All collision operators can be easily adapted, for example, to integrate turbulence models, custom force terms, or multi-phase models. +It even comes with an integrated Chapman Enskog analysis based on sympy! + +Common test scenarios can be set up quickly: +```python +ch = create_channel(domain_size=(300,100, 100), force=1e-7, method="trt", + equilibrium_order=2, compressible=True, + relaxation_rates=[1.97, 1.6], optimization={'target': 'gpu'}) +``` + +To find out more, check out the interactive [tutorial notebooks online with binder](https://mybinder.org/v2/gh/mabau/lbmpy/master?filepath=doc%2Fnotebooks). Installation ------------ +For local installation use pip: + ```bash pip install lbmpy[interactive] ``` @@ -36,4 +51,4 @@ Documentation ------------- Read the docs [here](http://pycodegen.pages.walberla.net/lbmpy) and -check out the Jupyter notebooks in `doc/notebooks`. +check out the Jupyter notebooks in `doc/notebooks`. diff --git a/binder/apt.txt b/binder/apt.txt new file mode 100644 index 00000000..b6243b5e --- /dev/null +++ b/binder/apt.txt @@ -0,0 +1,3 @@ +build-essential +graphviz +ffmpeg diff --git a/binder/environment.yml b/binder/environment.yml new file mode 100644 index 00000000..8ba6b666 --- /dev/null +++ b/binder/environment.yml @@ -0,0 +1,35 @@ + +# ---------------------------------------------------------------------------------------------------------------------- +# Environment with all dependencies to use pystencils +# +# +# Download conda at https://conda.io/miniconda.html and create this environment by running: +# conda env create -f conda_environment_user.yml +# . activate pystencils +# +# If you have CUDA installed and want to use your GPU, uncomment the last line to install pycuda +# +# ---------------------------------------------------------------------------------------------------------------------- + +name: pystencils +dependencies: + # Basic dependencies: + - python >= 3.6 + - numpy + - sympy >= 1.1 + - appdirs # to find default cache directory on each platform + - joblib # caching on hard-disk, this is optional, but if not installed lbmpy is really slow + - cython # speed up boundary list computation (optional) + - matplotlib + - imageio + - pandas + - scipy + - pip + - pip: + - islpy # used to optimize staggered kernels + - py-cpuinfo # get cpu info like cache sizes, supported vector instruction sets, ... + - graphviz # can show abstract syntax trees as formatted graphs + - ipy_table # HTML tables for jupyter notebooks + - pyevtk # VTK output for serial simulations + - blitzdb # file-based No-SQL database to store simulation results + #- pycuda # add this if you have CUDA installed diff --git a/binder/start b/binder/start new file mode 100755 index 00000000..658270a3 --- /dev/null +++ b/binder/start @@ -0,0 +1,5 @@ +#!/bin/bash + +python3 setup.py develop + +exec "$@" \ No newline at end of file -- GitLab