diff --git a/README.md b/README.md index 962e05cb49ec64654fa0968e7ca8fc374d063eae..aa05e6bb56b2aba3a4ddd3755f0576eacc5f0c7f 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 0000000000000000000000000000000000000000..b6243b5e6a646065673a9ffb1d067dacfc702683 --- /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 0000000000000000000000000000000000000000..8ba6b6669014c71efbdafe9aa4cbd38c077f9475 --- /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 0000000000000000000000000000000000000000..658270a3839a57c3d7ec9b320a13203ac43a49b8 --- /dev/null +++ b/binder/start @@ -0,0 +1,5 @@ +#!/bin/bash + +python3 setup.py develop + +exec "$@" \ No newline at end of file