Skip to content

C0PEP0D/sheld0n

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sheld0n: Lagrangian active particles advection

standard-readme compliant DOI

A code that enables complex active particle advection in flows. The code is still in active developpement, feel free to ask for features.

This code enables to compute active particle trajectories inside flows. It enables the user to specify a complex behaviour of particles. It can be used with external flow data, thus enabling to use data from flow simulations or experiments. Moreover, provided an internet connection, the software enables to use flows of the Johns Hopkins Turbulence Database. Please keep in mind that this is a work in progress, all may not work out of the box yet. This software should be usable on any operating system but only have been tested on recent Linux distributions (Ubuntu 20, Archlinux).

This repository contains:

  1. Lagrangian active particles advection software that binds low-level c++ modules into a high-level command line tool.
  2. A few low-level c++ modules that can be used independently.

Table of Contents

Background

This software has been produced during my PhD thesis and as part as the European Research Council project: C0PEP0D

Install

Dependencies

The dependencies are standard softwares that may already be installed on your system. If not, you should be able to install these dependencies with your package manager.

Installing

Start by cloning this repository with its submodules.

$ git clone --recurse-submodules https://github.com/C0PEP0D/sheld0n.git

And that's it! The executables are in the cases directory.

Updating

A simple pull should be enough.

$ git pull --recurse-submodules

Usage

The following covers basic usage of the code, while the documentation is improving, feel free to contact me if you have any questions regarding using this software.

Most scripts provided by this software contain their description, explaining how to use them. One can access this description using the following:

$ script -h

or

$ script --help

Quick start

Go to the cases folder and a choose a case:

$ cd cases
$ ls
adaptative_surfers spherical_surfers comparison surfers tracers

Then navigate in the case you choose, surfers for example, and run the case.

$ cd surfers
$ ./run

Once the simulation has started or finished, one can run some post processing:

$ ./post

Final data should be in the post_process directory. Further post processing can be done using various scripts in that directory. Post processing will generated CSV files that can then be processed thirdparty softwares to plot curves.

Creating a new case

Go to the cases folder and run the new_case script

$ cd cases
$ ./new_case new_case_name

Editing simulation parameters

All parameters are included in the param. One can edit any parameters.h file in this subtree. Furthermore can choose between different simulation parameters using the choose scripts. The print_param is a helper script to print all parameters that can be used to check all simulation parameters before running a simulation.

Known issue

There is a memory leak somewhere. I am pretty sure it comes from the turblib library but I have not got the time to investigate it more. You should be fine if you do not use the jhtdb flow. If you do, just kill the process when too much memory is used and rerun it.

Maintainers

Rémi Monthiller - @rmonthil - remi.monthiller@gmail.com

Contributing

Feel free to dive in! Open an issue or submit PRs. Or just propose features you would like to have implemented in the code.

License

MIT © Centrale Marseille, Rémi Monthiller

About

A code that enables complex active particle advection in fluid flows. The code is still in active developpement, feel free to ask for features.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published