Skip to content

Code developped for a PhD project at the Université de Montpellier, supervised by Ludovic Berthier (Montpellier) and Robert Jack (Cambridge).

License

Notifications You must be signed in to change notification settings

yketa/coll_dyn_activem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Collective dynamics in simple active matter

Yann-Edwin Keta — L2C, Université de Montpellier — 2020

Introduction

This repository contains scripts, for simulation and analysis purposes, developed for my PhD project (see my website), concerned with the emergence of large collective motion in simple model of active matter. It is derived from the repository yketa/active_work.

Simulation and cloning scripts are written in C++. Wrapper scripts to launch the latter are written in Python, and other Python classes and functions are available to read and analyse the generated data.

A library of C++ functions (pycpp.cpp) is implemented in pycpp.py, given that _pycpp.so is compiled (this necessitates the GNU Science Library and pybind11).

While C++ files can be quite cumbersome, Python wrappers are hopefully more readable and commented enough so that their functioning can be easily understood.

Requirements

All code was developed and tested on 64-bit linux. C++ cloning scripts necessitate OpenMP. Python scripts are written for python3.*, import the coll_dyn_activem package which necessitates the directory containing this repository to be added to the $PYTHONPATH, e.g. by executing

echo "export PYTHONPATH=\$PYTHONPATH:${PWD}/.." >> ~/.bashrc

from this directory, and rely on the following packages:

  • matplotlib: plotting,
  • seaborn: color palettes,
  • numpy: mathematical functions and array manipulation,
  • scipy: various methods and special functions,
  • freud-analysis: analysis of MD simulations,
  • fastkde: kernel density estimation (scde.py),

which can be installed by running pip.sh.

Production of movies, via frame.py, necessitates ffmpeg — though other functionalities of the former can be used without the latter.

Memory error detection and profiling, using make memcheck and make massif (see Makefile), necessitates valgrind.

Minimisation procedures from ALGLIB are used in [alglib.hpp]((https://github.com/yketa/coll_dyn_activem/blob/master/alglib.hpp) — the library must be downloaded and added as alglib to the g++ path.

About

Code developped for a PhD project at the Université de Montpellier, supervised by Ludovic Berthier (Montpellier) and Robert Jack (Cambridge).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages