maxlevesque / laboetie

Fluid dynamics for chemical applications
GNU General Public License v2.0
5 stars 3 forks source link
adsorption fluid-dynamics lattice-boltzmann mass-transport

laboetie


laboetie is a computational fluid dynamics code for chemical applications.
It uses the Lattice-Boltzmann algorithm.
[more to come]

It is written by Maximilien Levesque¹ and Benjamin Rotenberg²
¹ École Normale Supérieure and CNRS, Paris, France
² Sorbonne Universités, UPMC Univ. Paris 06, CNRS, UMR 8234, PHENIX, F-75005 Paris, France


Please cite us!

We are researchers: our work is evaluated on the basis of citations to our publications. If you use Laboetie, please cite us:
doi: 10.1103/PhysRevE.88.013308


Research papers about or using laboetie

  1. Accounting for adsorption and desorption in lattice Boltzmann simulations
    Maximilien Levesque, Magali Duvail, Ignacio Pagonabarraga, Daan Frenkel and Benjamin Rotenberg
    Phys. Rev. B 88, 013308 (2013)
    http://dx.doi.org/10.1103/PhysRevE.88.013308
  2. Unexpected coupling between flow and adsorption in porous media
    Jean-Mathieu Vanson, François-Xavier Coudert, Benjamin Rotenberg, Maximilien Levesque, Caroline Tardivat, Michaela Klotz and Anne Boutin
    Soft Matter 11, 6125-6133 (2015)
    http://dx.doi.org/10.1039/C5SM01348H
  3. Computational Chemistry Methods for Nanoporous Materials
    Jack D. Evans, Guillaume Fraux, Romain Gaillac, Daniela Kohen, Fabien Trousselet, Jean-Mathieu Vanson and François-Xavier Coudert
    Chemistry of Materials 29, 199 (2017)
    http://dx.doi.org/10.1021/acs.chemmater.6b02994
  4. Transport and adsorption under liquid flow: the role of pore geometry
    Jean-Mathieu Vanson, Anne Boutin, Michaela Klotz and François-Xavier Coudert
    Soft Matter 13, 875-885 (2017)
    http://dx.doi.org/10.1039/C6SM02414A
  5. Kinetic Accessibility of Porous Material Adsorption Sites Studied through the Lattice Boltzmann Method
    Jean-Mathieu Vanson, François-Xavier Coudert, Michaela Klotz and Anne Boutin
    Langmuir 33, 1405-1411 (2017)
    http://dx.doi.org/10.1021/acs.langmuir.6b04472
  6. Transient hydrodynamic finite size effects in simulations under periodic boundary conditions
    Adelchi J. Asta, Maximilien Levesque, Rodolphe Vuilleumier and Benjamin Rotenberg
    Phys. Rev. E 95, 061301 (2017)
    https://dx.doi.org/10.1103/PhysRevE.95.061301
  7. Moment propagation method for the dynamics of charged adsorbing/desorbing species at solid-liquid interfaces
    Adelchi Asta, Maximilien Levesque and Benjamin Rotenberg
    Molecular Physics, Frenkel Special Issue (2018)
    https://doi.org/10.1080/00268976.2018.1461944

Installation instructions

git clone https://github.com/maxlevesque/laboetie
cd laboetie
make

Parallelism

The moment propagation is parallelized. It uses the OPENMP API. It is enabled by default (see -fopenmp in the Makefile).
To disable openmp parallelism, remove -fopenmp from line 13 of Makefile.

By default, laboetie will use all the threads of your computer.

How do you control the number of threads used by OPENMP?
You should export OMP_NUM_THREADS=3 in your terminal before executing laboetie if you want laboetie to use 3 threads:
Thus, to compile and execute laboetie limited to 8 threads on my computer, I type in my terminal:

$ export OMP_NUM_THREADS=8
$ ./laboetie

Please note that the run time, user time, system time and cpu time printed to you by laboetie are not usable anymore when OMP_NUM_THREADS > 1. This is an issue that needs to be corrected.

Parallelism is implemented by dividing the system along almost independent slices along the z direction: if your system has {100,100,1} nodes along the x, y and z directions, respectively, then it is absolutely useless to multithread your job: use export OMP_NUM_THREADS=1.

For now, OPENMP in laboetie is memory bound. Preliminary speed-ups for systems of few hundred of nodes are as follow:

# number of threads, speed-up
1, 1
2, 1.9
3, 2.6
4, 3.1
6, 2.7
8, 2.7

I would recommand to use 2 or 4 threads only.

Inputs (lb.in)

Outputs

All outputs files are found in output/.

supercell.xsf

A 3-dimensional representation of the supercell in xsf format. supercelf.xsf can be opened with VMD: vmd -xsf output/supercell.xsf. The color code is:

How to develop in laboetie or report a bug

Our git workflow

A successful git branching model

How to Report Bugs Effectively

A blogpost by Simon Tatham