/active_particles

Code developed for a research project at the University of British Columbia focusing on a simple model of active particles, supervised by Jörg Rottler.

Primary LanguagePythonMIT LicenseMIT

Active Brownian disks

Simple model of active particles

Yann-Edwin Keta, University of British Columbia, 2018

This repository contains scripts, for simulation and analysis purposes, developed for a research project, detailed in this wiki. It is organised as a Python importable package.

Simulation scripts rely on the HOOMD-blue simulation toolkit to perform molecular dynamics simulation of active particles.

Requirements

  • active_particles was tested on 64-bit Linux, thus the installation script should work on this OS only.
  • An environment is set specifically for active_particles with conda, which thus has to be installed.

Installation

Clone this repository and source the install.sh file.

git clone https://github.com/yketa/active_particles
source active_particles/install.sh

install.sh creates a specific conda environment, sources setup.sh — which adds the directory containing active_particles to the Python path, and sets up aliases, environment variables and functions to be used in the command line — and writes to ~/.bash_profile so the latter is done at each login.

Remark: This is not an installation stricto sensu, all scripts can be used as they come without running install.sh. However, running it then using the defined commands and environment variables makes sure everything works as expected.

Useful aliases

  • ap_python: Python executable installed in the active_particles conda environment.
  • ap_mprof: mprof command of memory_profiler, useful for monitoring memory consumption of processes, installed in the active_particles conda environment.
  • ap_update: Pull git repository and source setup.sh.

Notable scripts

  • setup.sh sets up aliases, environment variables and functions to be used in the command line.
  • naming.py contains all the standards for naming all data files and directories.

Usage

All modules (or almost) contain a detailed documentation in their header, accessible through Python with the built-in function help(module_name). Scripts' headers should contain a detailed list of parameters to set as environment variables when executing them.

For example, to launch the script analysis/cuu.py — which computes displacement correlations — one can use the environment variable AP_CUU set by setup.sh. With parameters:

  • compute displacement correlations = True,
  • lag time = 10,
  • numbers of intervals of time considered = 10,

and all other parameters set to default, the program is launched the following way

yketa@yketa: ~/active_particles_data/Dk8000_Vj1000_Rg2000_Nq1000_Ll0000 $ COMPUTE=True TIME=10 INTERVAL_MAXIMUM=10 $AP_CUU
Execution time: 0:01:26.969770

and will output its execution time. Launching the program to plot the calculated data is done similarly

yketa@yketa: ~/active_particles_data/Dk8000_Vj1000_Rg2000_Nq1000_Ll0000 $ SHOW=True PLOT=True R_MAX=50 AXIS=LINLOG TIME=10 INTERVAL_MAXIMUM=10 $AP_CUU

and will make plotting windows appear.

Example of Cuu plot


Associated publication

"Cooperative motion and shear strain correlations in dense 2D systems of self-propelled soft disks", Yann-Edwin Keta and Jörg Rottler, EPL, 125 (2019) 58004. (doi: 10.1209/0295-5075/125/58004)