diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index e7acd92547b..c2d14691a60 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -3,16 +3,4 @@ add_subdirectory(sphinx)
add_subdirectory(logo)
add_subdirectory(tutorials)
-find_program(PDFLATEX pdflatex)
-find_program(BIBTEX bibtex)
-find_program(MAKEINDEX makeindex)
-
-set(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
-set(abs_top_srcdir ${CMAKE_SOURCE_DIR})
-
-configure_file(latexit.sh.in
- ${CMAKE_BINARY_DIR}/doc/latexit.sh
- @ONLY
- )
-
add_custom_target(doc DEPENDS logo doxygen tutorials)
diff --git a/doc/latexit.sh.in b/doc/latexit.sh.in
deleted file mode 100755
index 50dcfc4abfb..00000000000
--- a/doc/latexit.sh.in
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2012-2019 The ESPResSo project
-# Copyright (C) 2010,2011,2012 Olaf Lenz
-#
-# This file is part of ESPResSo.
-#
-# ESPResSo is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# ESPResSo is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-#
-SRCDIR=$1
-BASEFILENAME=$2
-TEXINPUTS=.:$SRCDIR:@abs_srcdir@:
-BIBINPUTS=.:$SRCDIR:
-export TEXINPUTS BIBINPUTS
-echo "TEXINPUTS=$TEXINPUTS"
-
-ESPRESSO_VERSION="@PROJECT_VERSION@"
-echo "ESPRESSO_VERSION=$ESPRESSO_VERSION"
-
-PDFLATEX="@PDFLATEX@ -halt-on-error -interaction=batchmode"
-LATEXLINE="\\def\\esversion{$ESPRESSO_VERSION}\\input{$BASEFILENAME.tex}"
-
-echo "Running LaTeX stage 1..."
-
-$PDFLATEX $LATEXLINE
-EC=$?
-if test $EC -ne 0; then
- echo "ERROR: LaTeX stage 1 failed."
- echo "These are the last 30 lines of $BASEFILENAME.log:"
- echo "--------------------------------------------"
- tail -n 30 $BASEFILENAME.log
- echo "--------------------------------------------"
- test -f $BASEFILENAME.pdf && rm $BASEFILENAME.pdf
- exit $EC
-fi
-
-echo "Running bibtex..."
-# Don't fail on bibtex error: it fails if no .bib-file is there!
-@BIBTEX@ $BASEFILENAME
-
-echo "Running LaTeX stage 2..."
-$PDFLATEX $LATEXLINE
-EC=$?
-if test $EC -ne 0; then
- echo "ERROR: LaTeX stage 2 failed."
- echo "These are the last 30 lines of $BASEFILENAME.log:"
- echo "--------------------------------------------"
- tail -n 30 $BASEFILENAME.log
- echo "--------------------------------------------"
- test -f $BASEFILENAME.pdf && rm $BASEFILENAME.pdf
- exit $EC
-fi
-
-if test -e $BASEFILENAME.idx; then
- echo "Running makeindex..."
- @MAKEINDEX@ $BASEFILENAME || exit $?
-fi
-
-echo "Running LaTeX stage 3..."
-$PDFLATEX $LATEXLINE
-EC=$?
-if test $EC -ne 0; then
- echo "ERROR: LaTeX stage 3 failed."
- echo "These are the last 30 lines of $BASEFILENAME.log:"
- echo "--------------------------------------------"
- tail -n 30 $BASEFILENAME.log
- echo "--------------------------------------------"
- test -f $BASEFILENAME.pdf && rm $BASEFILENAME.pdf
- exit $EC
-fi
-
-echo "See LaTeX output in $BASEFILENAME.log."
diff --git a/doc/misc/bibliography.bib b/doc/misc/bibliography.bib
deleted file mode 100644
index 1baaaaed16a..00000000000
--- a/doc/misc/bibliography.bib
+++ /dev/null
@@ -1,10 +0,0 @@
-@Unpublished{pep0020,
- author = {Tim Peters \texttt{}},
- title = {{The Zen of Python}},
- note = {\url{http://www.python.org/dev/peps/pep-0020/}},
- OPTkey = {},
- OPTmonth = {},
- OPTyear = {},
- OPTannote = {}
-}
-
diff --git a/doc/misc/python.tex b/doc/misc/python.tex
deleted file mode 100644
index 5ebfc5f3ac0..00000000000
--- a/doc/misc/python.tex
+++ /dev/null
@@ -1,262 +0,0 @@
-% Copyright (C) 2011-2019 The ESPResSo project
-%
-% This file is part of ESPResSo.
-%
-% ESPResSo is free software: you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by the
-% Free Software Foundation, either version 3 of the License, or (at your
-% option) any later version.
-%
-% ESPResSo is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program. If not, see .
-%
-\documentclass[
-a4paper, % paper size
-11pt, % font size
-]{scrartcl}
-
-\usepackage{hyperref} % automatically creates links when
- % using pdflatex, defines \url
-\usepackage[numbers]{natbib}
-\usepackage{xspace}
-
-\newcommand{\es}{\mbox{\textsf{ESPResSo}}\xspace}
-\newcommand{\ie}{\textit{i.e.}\xspace}
-\newcommand{\eg}{\textit{e.g.}\xspace}
-\newcommand{\etal}{\textit{et al.}\xspace}
-
-\newenvironment{designrule}{\begin{quote}\itshape}{\end{quote}}
-
-\begin{document}
-\title{\es Python Interface Design}
-\author{Olaf Lenz}
-\date{\today}
-\maketitle
-
-\tableofcontents
-
-\clearpage
-\section{Design Criteria}
-
-\subsection{Zen of Python}
-
-\begin{verse}
-Beautiful is better than ugly.\\
-Explicit is better than implicit.\\
-Simple is better than complex.\\
-Complex is better than complicated.\\
-Flat is better than nested.\\
-Sparse is better than dense.\\
-Readability counts.\\
-Special cases aren't special enough to break the rules.\\
-Although practicality beats purity.\\
-Errors should never pass silently.\\
-Unless explicitly silenced.\\
-In the face of ambiguity, refuse the temptation to guess.\\
-There should be one-- and preferably only one --obvious way to do it.\\
-Although that way may not be obvious at first unless you're Dutch.\\
-Now is better than never.\\
-Although never is often better than \emph{right} now.\\
-If the implementation is hard to explain, it's a bad idea.\\
-If the implementation is easy to explain, it may be a good idea.\\
-Namespaces are one honking great idea -- let's do more of those!
-\end{verse}
-
-This is the ``Zen of Python''\footnote{PEP 20:
- \url{http://www.python.org/dev/peps/pep-0020/}} a set of rules
-embraced by the Python community. We should heed them, so that
-experienced Python users feel at home.
-
-\subsection{Principle of Least Surprise}
-
-\begin{designrule}
- Design the interface such that it works as the user expects, not as
- it would feel natural from the inner logic of the program.
-\end{designrule}
-
-
-This is the \emph{Principle of Least Surprise} or \emph{Principle of
- Least Astonishment} (POLA)
-\footnote{\url{http://en.wikipedia.org/wiki/Principle_of_least_astonishment}}.
-
-\subsection{Maximal Freedom in the Interface}
-
-\begin{designrule}
- Allow for maximal possible freedom in the interface.
-\end{designrule}
-
-\begin{itemize}
-\item Use \emph{runtime restrictions} rather than \emph{interface
- restrictions}.
-\item You never know when a restriction might be lifted. Doing so is
- much easier when using runtime restrictions.
-\item Don't restrict or because the inner logic of the program
- doesn't allow for more yet.
-\item Do not force specific types where it is not necessary.
-\end{itemize}
-
-\paragraph{Example 1}
-
-\begin{itemize}
-\item Design 1
-\begin{verbatim}
-system.setElectrostatics(method="p3m", bjerrum=1.0)
-\end{verbatim}
-
-\item Design 2
-\begin{verbatim}
-p3m = P3M(bjerrum=1.0)
-system.addInteraction(p3m)
-\end{verbatim}
-
-\item Design 1 does not allow to use several instances of P3M, while
- Design 2 does. If this should be restricted, Design 2 could throw an
- exception if the users tries to add more than one P3M.
-\end{itemize}
-
-\paragraph{Example 2}
-There is no reason to allow only numerical particle ids in the
-future. Instead, a particle could be identified by anything else, \eg
-a string. In this case, the Python interface might provide a bridge
-between the inner program logic and the user.
-
-\subsection{Algorithms are not Physics}
-
-\begin{designrule}
- Algorithms are not physics.
-\end{designrule}
-
-Algorithms can be used to model physics, but the same algorithm might
-be able to model another aspect of physics. For example, P3M can be
-used to model electrostatics as well as gravity.
-
-This has a few implications:
-
-\begin{itemize}
-\item Don't restrict what a user can do just because you think ``it
- would be unphysical''.
-
- A user should have the freedom to employ algorithms wherever
- possible, even if you think it might be unphysical. You might simply
- not know what new method the user has thought of.
-
-\item Choose class names and method names after algorithms, not intended
- physics.
-
- For example, a class that implements the P3M algorithm should be
- called \texttt{P3M}, not \texttt{Electrostatics}. On the one hand,
- P3M can also be used to simulate gravity, on the other hand, there
- might be other algorithms that implement electrostatics.
-\end{itemize}
-
-\subsection{Have the Future in Mind}
-
-\begin{designrule}
- Don't model what is, model what should be.
-\end{designrule}
-
-We should try to create an interface that allows for future
-development rather than an interface that models exactly what is
-currently possible with \es.
-
-For example, don't make variables global because the are currently
-global in \es (\eg don't make the time step global).
-
-\paragraph{Example}
-\begin{verbatim}
->>> # unnecessarily global
->>> espresso.time_step = 0.01
->>> # should be a parameter of the integrator
->>> integrator = espresso.integrator.VelocityVerlet(time_step=0.01)
-\end{verbatim}
-
-\subsection{Specifity}
-
-\begin{designrule}
- Design and name the classes and methods as generic as possible but
- as specific as necessary.
-\end{designrule}
-
-\begin{itemize}
-\item Call the velocity verlet integrator \texttt{VelocityVerlet}, not
- \texttt{Integrator}. After all, there might be a different
- integrator at some time in the future.
-\end{itemize}
-
-\subsection{Keyword Arguments}
-
-\begin{designrule}
- Prefer keyword arguments over positional arguments!
-\end{designrule}
-
-\clearpage
-\section{Open Questions}
-
-\subsection{Namespaces}
-
-Should we employ namespaces, and to what extent?
-
-\subsubsection{One Big Flat Namespace}
-
-Put everything into module \texttt{espresso}.
-
-\paragraph{Example}
-\begin{verbatim}
->>> integrator = espresso.VelocityVerletIntegrator()
-\end{verbatim}
-
-\paragraph{Pros}
-\begin{itemize}
-\item "Flat is better than nested" (Zen of Python)
-\item Everything needs to be defined in \texttt{espresso.py}
-\end{itemize}
-
-\paragraph{Cons}
-\begin{itemize}
-\item Hard to extend for other users
-\end{itemize}
-
-\subsubsection{Nested Namespaces}
-
-Use nested namespaces, name the namespace after the usage of the
-algorithms. Modules by other users can be put into namespace
-\texttt{extensions}.
-
-\paragraph{Example}
-\begin{verbatim}
->>> integrator = espresso.integrator.VelocityVerlet()
->>> newinteraction = espresso.extensions.specialinteraction.SpecialInteraction()
-\end{verbatim}
-
-\paragraph{Pros}
-\begin{itemize}
-\item Logical
-\item Models physical intuition
-\item Good to extend
-\end{itemize}
-
-\clearpage
-\section{Interface}
-
-\subsection{Particles}
-
-\begin{itemize}
-\item A user should not keep references to all particles to allow for
- huge parallel systems, \ie it should not be necessary for a user to
- keep a list or dictionary of al particles!
-\item Particles should be easily addressable (\eg via a numerical id)
-\item Is it necessary to restrict the ids to numerical ids?
-\item Should it be \emph{possible} to keep particle references as
- Python objects?
-\end{itemize}
-
-\subsection{Interactions}
-
-
-
-\end{document}
diff --git a/doc/sphinx/contributing.rst b/doc/sphinx/contributing.rst
index 921e7476d86..f5f9b9c4ca8 100644
--- a/doc/sphinx/contributing.rst
+++ b/doc/sphinx/contributing.rst
@@ -86,7 +86,7 @@ Required Development Tools
- To build the user documentation, you will need Sphinx_.
-- To build the tutorials, you will need LaTeX and Jupyter.
+- To build the tutorials, you will need Jupyter_.
- To build the core documentation, you will need Doxygen_.
@@ -124,3 +124,5 @@ in :ref:`Installation` and then the documentation with ``make sphinx``.
.. _Doxygen: http://www.doxygen.org/
.. _Sphinx: https://www.sphinx-doc.org/en/master/
+
+.. _Jupyter: https://jupyter.org/
diff --git a/doc/tutorials/01-lennard_jones/01-lennard_jones.ipynb b/doc/tutorials/01-lennard_jones/01-lennard_jones.ipynb
index 2e469523ce5..c76f0180d4f 100644
--- a/doc/tutorials/01-lennard_jones/01-lennard_jones.ipynb
+++ b/doc/tutorials/01-lennard_jones/01-lennard_jones.ipynb
@@ -377,7 +377,7 @@
"At this point, we have set the necessary environment and warmed up our system. Now, we integrate the equations of motion and take measurements. We first plot the radial distribution function which describes how the density varies as a function of distance from a tagged particle. The radial distribution function is averaged over several measurements to reduce noise.\n",
"\n",
"The potential and kinetic energies can be monitored using the analysis method system.analysis.energy().\n",
- "kinetic_temperature here refers to the measured temperature obtained from kinetic energy and the number\n",
+ "Here kinetic_temperature refers to the measured temperature obtained from kinetic energy and the number\n",
"of degrees of freedom in the system. It should fluctuate around the preset temperature of the thermostat.\n",
"\n",
"The mean square displacement of particle $i$ is given by:\n",
diff --git a/doc/tutorials/02-charged_system/02-charged_system-1.ipynb b/doc/tutorials/02-charged_system/02-charged_system-1.ipynb
index a9bb5e41d6d..55f5df575a6 100644
--- a/doc/tutorials/02-charged_system/02-charged_system-1.ipynb
+++ b/doc/tutorials/02-charged_system/02-charged_system-1.ipynb
@@ -85,8 +85,8 @@
"readable as we will see later when we actually need the values. The parameters here define a purely repulsive, \n",
"equally sized, monovalent salt.\n",
"\n",
- "The simulation engine itself is modified by changing the\n",
- "espressomd.System() properties. We create an instance system and\n",
+ "The simulation engine itself is modified by changing the espressomd.System()\n",
+ "properties. We create an instance system and\n",
"set the box length, periodicity and time step. The skin depth skin \n",
"is a parameter for the link--cell system which tunes its\n",
"performance, but shall not be discussed here."
diff --git a/doc/tutorials/06-active_matter/06-active_matter.ipynb b/doc/tutorials/06-active_matter/06-active_matter.ipynb
new file mode 100644
index 00000000000..f934749fa80
--- /dev/null
+++ b/doc/tutorials/06-active_matter/06-active_matter.ipynb
@@ -0,0 +1,824 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Active Matter Tutorial\n",
+ "## Table of Contents\n",
+ "1. [Introduction](#Introduction)\n",
+ "2. [Active particles](#Active-particles)\n",
+ "3. [Active Particles in **ESPResSo**](#Active-Particles-in-ESPResSo)\n",
+ " 1. [Self-Propulsion without Hydrodynamics](#Self-Propulsion-without-Hydrodynamics)\n",
+ " 2. [Self-Propulsion with Hydrodynamics](#Self-Propulsion-with-Hydrodynamics)\n",
+ "4. [Enhanced Diffusion](#Enhanced-Diffusion)\n",
+ " 1. [Configuring **ESPResSo** for Active Matter](#Configuring-ESPResSo-for-Active-Matter)\n",
+ " 2. [The Enhanced-Diffusion Tutorial](#The-Enhanced-Diffusion-Tutorial)\n",
+ "5. [Rectification](#Rectification)\n",
+ " 1. [The Rectifying-Geometry Tutorial](#The-Rectifying-Geometry-Tutorial)\n",
+ " 2. [The Rectification Tutorial](#The-Rectification-Tutorial)\n",
+ "6. [Flow Field around a Swimmer](#Flow-Field around-a-Swimmer)\n",
+ " 1. [The Flow-Field Tutorial](#The-Flow-Field-Tutorial)\n",
+ "7. [Concluding Remarks](#Concluding-Remarks)\n",
+ "8. [Bibliography](#Bibliography)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Introduction\n",
+ "In this tutorial we explore the ways to simulate self-propulsion in the\n",
+ "simulation software package **ESPResSo**. We consider three examples that illustrate\n",
+ "the properties of these systems. First, we study the concept of enhanced\n",
+ "diffusion of a self-propelled particle. Second, we investigate rectification in\n",
+ "an asymmetric geometry. Finally, we determine the flow field around a\n",
+ "self-propelled particle using lattice-Boltzmann simulations (LB). These three\n",
+ "subsections should give insight into the basics of simulating active matter\n",
+ "with **ESPResSo**. This tutorial assumes basic knowledge of Python and **ESPResSo**,\n",
+ "as well as the use of lattice-Boltzmann within **ESPResSo**. It is therefore\n",
+ "recommended to go through the relevant tutorials first, before attempting this one."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Active particles\n",
+ "\n",
+ "Active matter is a term that describes a class of systems, in which energy is\n",
+ "constantly consumed to perform work. These systems are therefore highly\n",
+ "out-of-equilibrium (thermodynamically) and (can) thus defy description using\n",
+ "the standard framework of statistical mechanics. Active systems are, however,\n",
+ "ubiquitous. On our length scale, we encounter flocks of\n",
+ "birds [1], schools of fish [2], and, of course,\n",
+ "humans [3],[4],[5];\n",
+ "on the mesoscopic level examples are found in\n",
+ "bacteria [6],[7],[8],\n",
+ "sperm [9],[10],[11],\n",
+ "and algae [12],[13];\n",
+ "and on the nanoscopic level, transport along the cytoskeleton is achieved by\n",
+ "myosin motors [14]. This exemplifies that range of length scales\n",
+ "which the field of active matter encompasses, as well as its diversity. Recent\n",
+ "years have seen a huge increase in studies into systems consisting of\n",
+ "self-propelled particles, in particular artificial ones in the colloidal\n",
+ "regime [15],[16],[17],[18],[19],[20],[21],[22],[23],[24],[25],[26],[27],[28].\n",
+ "These self-propelled colloids show promise as physical model systems for\n",
+ "complex biological behavior (bacteria moving collectively) and could be used to\n",
+ "answer fundamental questions concerning out-of-equilibrium statistical\n",
+ "physics [29],[30].\n",
+ "Simulations can also play an important role in this regard, as the\n",
+ "parameters are more easily tunable and the results ‘cleaner’ than in\n",
+ "experiments. The above should give you some idea of the importance of\n",
+ "the field of active matter and why you should be interested in\n",
+ "performing simulations in it."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Active Particles in **ESPResSo**\n",
+ "\n",
+ "The ENGINE feature offers intuitive syntax for adding self-propulsion to\n",
+ "a particle. The propulsion will occur along the vector that defines the\n",
+ "orientation of the particle (henceforth referred to as ‘director’). In **ESPResSo**\n",
+ "the orientation of the particle is defined by a quaternion; this in turn\n",
+ "defines a rotation matrix that acts on the particle's initial orientation\n",
+ "(along the z-axis), which then defines the particles current orientation\n",
+ "through the matrix-oriented\n",
+ "vector [31],[32],[33].\n",
+ "Within the ENGINE feature there are two ways of setting up a self-propelled\n",
+ "particle, with and without hydrodynamic interactions. The particle without\n",
+ "hydrodynamic interactions will be discussed first, as it is the simplest case."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Self-Propulsion without Hydrodynamics\n",
+ "\n",
+ "For this type of self-propulsion the Langevin thermostat is exploited. The\n",
+ "Langevin thermostat causes a particle to experience a velocity-dependent\n",
+ "friction [31]. When a constant force is applied along the director,\n",
+ "the friction causes the particle to attain a terminal velocity, due to the balance\n",
+ "of driving and friction force, see Fig. 1. The exponent with\n",
+ "which the particle's velocity relaxes towards this value, depends on the\n",
+ "strength of the friction and the mass of the particle. The ENGINE\n",
+ "feature implies that rotation of the particles (the ROTATION feature) is\n",
+ "compiled into **ESPResSo**. The particle can thus reorient due to external torques or\n",
+ "due to thermal fluctuations, whenever the rotational degrees of freedom are\n",
+ "thermalized. Note that the rotation of the particles has to be enabled\n",
+ "explicitly via their ROTATION property. This ‘engine’ building block can\n",
+ "be connected to other particles, *e.g.*, via the virtual sites (rigid\n",
+ "body) [31] to construct complex self-propelled objects[34].\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "The configuration for the Langevin-based swimming is exposed as an attribute of\n",
+ "the ParticleHandle class of **ESPResSo**, which represents a particle in the\n",
+ "simulation. You can either set up the self-propulsion during the creation of a\n",
+ "particle or at a later stage. In the following example we set up a particle\n",
+ "with ID 0 at the position `(1,1,1)` and set its terminal velocity to `1.0`.\n",
+ "\n",
+ "```python\n",
+ "system.part.add(pos=[1, 1, 1], swimming={'v_swim': 1.0})\n",
+ "```\n",
+ "\n",
+ "As you can see, the keyword for setting up the engine is `swimming`. The\n",
+ "code `{'v_swim': 1.0}` sets the terminal velocity to `1.0` (in MD units).\n",
+ "Setting the terminal velocity directly is possible, since the terminal velocity\n",
+ "is simply the ratio of the applied driving force and Langevin friction\n",
+ "coefficient. It is also possible to set the driving force directly, which\n",
+ "requires you to calculate/compute the terminal velocity. This can be achieved\n",
+ "by replacing `v_swim` with `f_swim`. Please note, that the\n",
+ "options `v_swim` and `f_swim` are mutually exclusive. Also, one\n",
+ "is limited to the force/velocity and time step that can be used by the\n",
+ "stability criteria on the Langevin algorithm itself.\n",
+ "\n",
+ "To modify a passive particle (switch on self-propulsion) or deactivate\n",
+ "activity, one can use the following commands: Suppose a passive particle with,\n",
+ "say ID 1, has been set up, we can add self-propulsion to it by specifying\n",
+ "\n",
+ "```python\n",
+ "system.part[1].swimming = {'f_swim': 0.03}\n",
+ "```\n",
+ "\n",
+ "Finally, a particle's activity can be switched off, by setting either `v_swim` or `f_swim` to zero\n",
+ "\n",
+ "```python\n",
+ "system.part[0].swimming = {'f_swim': 0.0}\n",
+ "```\n",
+ "\n",
+ "on the particle with ID 0 in this case. The numerical values of `v_swim`\n",
+ "and `f_swim` in these examples are completely arbitrary and crucially\n",
+ "depend on all other parameters of your simulation, such as friction,\n",
+ "temperature, interactions, etc. Please consult the User Guide [31]\n",
+ "for additional information."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Self-Propulsion with Hydrodynamics\n",
+ "\n",
+ "In situations where hydrodynamic interactions between swimmers or swimmers and\n",
+ "objects are of importance, we use the lattice-Boltzmann (LB) to propagate the\n",
+ "fluid's momentum diffusion. We recommend the GPU-based variant of LB in **ESPResSo**,\n",
+ "since it is much faster. Moreover, the current implementation of the CPU\n",
+ "self-propulsion is limited to one CPU. This is because the ghost-node structure\n",
+ "of the **ESPResSo** cell-list code does not allow for straightforward MPI parallellization\n",
+ "of the swimmer objects across several CPUs.\n",
+ "\n",
+ "Of particular importance for self-propulsion at low Reynolds number is the fact\n",
+ "that active systems (bacteria, sperm, algae, but also artificial chemically\n",
+ "powered swimmers) are force free. That is, the flow field around one of these\n",
+ "objects does not contain a monopolar (Stokeslet) contribution. In the case of a\n",
+ "sperm cell, see Fig. 2(a), the reasoning is as follows.\n",
+ "The whip-like tail pushes against the fluid and the fluid pushes against the\n",
+ "tail, at the same time the head experiences drag, pushing against the fluid and\n",
+ "being pushed back against by the fluid. This ensures that both the swimmer and\n",
+ "the fluid experience no net force. However, due to the asymmetry of the\n",
+ "distribution of forces around the swimmer, the fluid flow still causes net\n",
+ "motion. When there is no net force on the fluid, the lowest-order multipole\n",
+ "that can be present is a hydrodynamic dipole. Since a dipole has an\n",
+ "orientation, there are two types of swimmer: pushers and pullers. The\n",
+ "distinction is made by whether the particle pulls fluid in from the front and\n",
+ "back, and pushes it out towards its side (puller), or vice versa (pusher), see\n",
+ "Fig. 2(c,d).\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "In **ESPResSo** one can model both pushers and pullers using the following command.\n",
+ "Say we want to set up a pusher with ID 0 at the position `(1,1,1)` that has a\n",
+ "dipolar strength of `0.1`. Then we need to first set up the LB fluid (on the GPU)\n",
+ "by invoking\n",
+ "\n",
+ "```python\n",
+ "lbf = espressomd.lb.LBFluidGPU(agrid=1, dens=1.0, visc=1.0, tau=0.01)\n",
+ "system.actors.add(lbf)\n",
+ "system.thermostat.set_lb(LB_fluid=lbf, gamma=20.0, seed=42)\n",
+ "```\n",
+ "\n",
+ "In this example we used parameters for which we know the LB reproduces\n",
+ "Stokes-level hydrodynamic interactions well. Here, we simulate a\n",
+ "quiescent unthermalized LB fluid (this is the default\n",
+ "behavior). We next set up the pusher by imputing the following line\n",
+ "\n",
+ "```python\n",
+ "system.part.add(pos=[1, 1, 1], swimming={'f_swim': 0.1, 'dipole_length': 1.0})\n",
+ "```\n",
+ "\n",
+ "The `v_swim` option exists, but it does not produce the right flow\n",
+ "field. With `v_swim` one has motion, but no dipolar flow field. This can\n",
+ "be used to check whether the presence of a dipolar flow field is the dominant\n",
+ "term in describing the interactions. The keys `f_swim` and\n",
+ "`dipole_length` together determine what the dipole strength is. One\n",
+ "should be careful, however, the `dipole_length` should be at least one\n",
+ "grid spacing, since use is made of the LB interpolation scheme. If the length\n",
+ "is less than one grid spacing, you can easily run into discretization artifacts\n",
+ "or cause the particle not to move. This dipole length together with the\n",
+ "director and the keyword pusher/puller determines where the counter\n",
+ "force on the fluid is applied to make the system force free, see\n",
+ "Fig. 2(a) for an illustration of the setup. That is to\n",
+ "say, a force of magnitude `f_swim` is applied to the particle (leading\n",
+ "to a Stokeslet in the fluid, due to friction) and a counter force is applied to\n",
+ "compensate for this in the fluid (resulting in an extended dipole flow field,\n",
+ "due to the second monopole). For a puller the counter force is applied in front\n",
+ "of the particle and for a pusher it is in the back\n",
+ "(Fig. 2(b)).\n",
+ "\n",
+ "Finally, there are a few caveats to the swimming setup with hydrodynamic\n",
+ "interactions. First, the stability of this algorithm is governed by the\n",
+ "stability limitations of the LB method. Second, since the particle is\n",
+ "essentially a point particle, there is no rotation caused by the fluid\n",
+ "flow, *e.g.*, a swimmer in a Poiseuille flow. If the thermostat is\n",
+ "switched on, the rotational degrees of freedom will also be thermalized, but\n",
+ "there is still no contribution of rotation due to ‘external’ flow fields.\n",
+ "It is recommended to use an alternative means of obtaining rotations in your LB\n",
+ "swimming simulations. For example, by constructing a raspberry\n",
+ "particle [35],[36],[37],[38],[39]."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Enhanced Diffusion\n",
+ "Self-propelled particles behave differently from passive ones when it comes to\n",
+ "their diffusivity. In particular, an active particle of a certain size violates\n",
+ "the Stokes-Einstein relation [40], which states that the\n",
+ "translational diffusion coefficient (of a sphere) is given by\n",
+ "\n",
+ "\n",
+ "$$D = \\frac{k_{\\mathrm{B}}T}{6 \\pi \\eta R}$$\n",
+ "\n",
+ "where $k_{\\mathrm{B}}$ is Boltzmann's constant, $T$ the temperature, $\\eta$ is\n",
+ "the viscosity, and $R$ is the radius. N.B. For a Langevin thermostat the\n",
+ "friction $\\zeta \\equiv 6 \\pi \\eta R$ and the ‘temperature’ is given in units of\n",
+ "$k_{\\mathrm{B}}$. If the self-propelled particle does not experience Brownian\n",
+ "motion, it would move with a constant speed along a straight line. This means\n",
+ "that its mean-squared displacement (MSD) is ballistic. Rotational reorientation\n",
+ "due to Brownian collisions with the fluid, cause this self-propulsion-induced\n",
+ "ballistic regime to transition into a diffusive regime, on a time governed by\n",
+ "the rotational diffusion. Thus, when compared to its passive equivalent, the\n",
+ "ballistic regime of the MSD is stretched considerably and the diffusivity is\n",
+ "enhanced. Analysis of the equations of motion [21] shows that the\n",
+ "MSD is given by\n",
+ "\n",
+ "\n",
+ "$$\\langle r^{2}(t) \\rangle = 6 D t + \\frac{v^{2} \\tau^{2}_{R}}{2} \\left[ \\frac{2 t}{\\tau^{2}_{R}} + \\exp\\left( \\frac{-2t}{\\tau^{2}_{R}} \\right) - 1 \\right],$$\n",
+ "\n",
+ "where $\\langle r^{2}(t) \\rangle$ is the MSD from time $t=0$, $v$ is the\n",
+ "propulsion velocity, $\\tau^{2}_{R}$ is the rotational Brownian time, and $D$ is\n",
+ "the translational diffusivity as in Eq. [1]. For small times ($t \\ll\n",
+ "\\tau_{R}$) the motion is ballistic\n",
+ "\n",
+ "\n",
+ "$$\\langle r^{2}(t) \\rangle = 6 D t + v^{2} t^{2},$$\n",
+ "\n",
+ "while for long times ($t \\gg \\tau_{R}$) the motion is diffusive\n",
+ "\n",
+ "\n",
+ "$$\\langle r^{2}(t) \\rangle = (6 D + v^{2}\\tau_{R}) t$$\n",
+ "\n",
+ "with enhanced diffusion coefficient $D_{\\mathrm{eff}} = D + v^{2}\\tau_{R}/6$.\n",
+ "Note that no matter the strength of the activity, provided it is some finite\n",
+ "value, the crossover between ballistic motion and enhanced diffusion is\n",
+ "controlled by the rotational diffusion time. One can, of course, also connect\n",
+ "this increased diffusion with an effective temperature, using\n",
+ "Eq. [1]. However, this apparent equivalence can lead to problems when\n",
+ "one then attempts to apply statistical mechanics to such systems at the\n",
+ "effective temperature. That is, there is typically more to being\n",
+ "out-of-equilibrium than can be captured by a simple remapping of equilibrium\n",
+ "parameters."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Configuring **ESPResSo** for Active Matter\n",
+ "\n",
+ "For this tutorial the following features of **ESPResSo** are needed:\n",
+ "\n",
+ "```c++\n",
+ "#define MASS\n",
+ "#define ENGINE\n",
+ "#define ROTATION\n",
+ "#define ROTATIONAL_INERTIA\n",
+ "#define CUDA\n",
+ "#define LB_BOUNDARIES_GPU\n",
+ "#define LENNARD_JONES\n",
+ "```\n",
+ "\n",
+ "Please uncomment them in the myconfig.hpp and compile **ESPResSo** using this myconfig.hpp.\n",
+ "\n",
+ "Next you can find the tutorial files in the doc/tutorials/06-active_matter/\n",
+ "directory. There are two folders, one called EXERCISES and one called SOLUTIONS."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The Enhanced-Diffusion Tutorial\n",
+ "In the folder EXERCISES you will find the enhanced_diffusion.py file.\n",
+ "This tutorial demonstrates that our Langevin-based swimmer code captures\n",
+ "enhanced diffusion. N.B. It is incomplete and needs your input to be evaluated\n",
+ "in **ESPResSo** without errors. A fully functional file exists in the SOLUTIONS\n",
+ "folder, but we recommend that you try solving the exercises on your own first.\n",
+ "\n",
+ "To start the exercises, go into the EXERCISES directory and invoke the Python variant of **ESPResSo** on the script\n",
+ "\n",
+ "```sh\n",
+ "../../../../pypresso enhanced_diffusion.py 0.0\n",
+ "```\n",
+ "\n",
+ "where the parameter 0.0 gives the magnitude of the self-propulsion velocity. At\n",
+ "this stage, executing the above line will cause an error, as the exercise has\n",
+ "not yet been completed. If you read through the script, you will find all the\n",
+ "basic elements of a simple **ESPResSo** simulation, with two exceptions. First, you\n",
+ "will see that a single swimmer is set up using the\n",
+ "`swimming={'v_swim': ...}` combination, with a value of the velocity that\n",
+ "is read in from the command prompt. Second, you find that around the\n",
+ "integration loop there are commands related to the correlator. These have the\n",
+ "form\n",
+ "\n",
+ "```python\n",
+ "# Determine the MSD correlator\n",
+ "pos_id = ParticlePositions(ids=[0])\n",
+ "msd = Correlator(obs1=pos_id,\n",
+ " corr_operation=\"square_distance_componentwise\",\n",
+ " delta_N=1,\n",
+ " tau_max=tmax,\n",
+ " tau_lin=16)\n",
+ "system.auto_update_accumulators.add(msd)\n",
+ "\n",
+ "# Integrate\n",
+ "for i in range(SAMP_STEPS):\n",
+ " system.integrator.run(SAMP_LENGTH)\n",
+ "\n",
+ "# Finalize the correlator and write to disk\n",
+ "system.auto_update_accumulators.remove(msd)\n",
+ "msd.finalize()\n",
+ "numpy.savetxt(\"output.dat\", msd.result())\n",
+ "```\n",
+ "\n",
+ "Here, the observable `pos_id` is set to the particle positions of the\n",
+ "only particle in the simulation (with ID 0). Then an MSD correlation is created\n",
+ "on the next line. Since the MSD is an auto-correlation function, we only\n",
+ "require one entry for the observables, see the User Guide for additional\n",
+ "information [31]. The command corr_operation allows one to choose\n",
+ "the type of correlation, in this case `\"square_distance_componentwise\"`,\n",
+ "which gives the MSD for each component (x, y, and z). The time step `dt`\n",
+ "is set next, followed by the value of the maximum time (`tmax`) over\n",
+ "which the correlation is to be computed. This maximum can be set to the total\n",
+ "integrated time. However, it is recommended — as in the script — not to do\n",
+ "so, since this will give very limited sampling for the longest times (one or\n",
+ "even zero samples). In the tutorial only a 1000th of the total run length is\n",
+ "used for `tmax`, which means at least 1000 samples are gathered for the\n",
+ "longest time in the correlation function. You can play with this parameter to\n",
+ "see the effect on the quality of the sampling. The command `tau_lin=16`\n",
+ "indicates that the intervals of sampling are chosen by the correlator according\n",
+ "to an exponential distribution, see the User Guide [31]. Next the command\n",
+ "\n",
+ "```python\n",
+ "system.auto_update_accumulators.add(msd)\n",
+ "```\n",
+ "\n",
+ "lets **ESPResSo** know to start measuring the correlation function and to do so\n",
+ "automatically during integration. After integration, the commands\n",
+ "\n",
+ "```python\n",
+ "system.auto_update_accumulators.remove(msd)\n",
+ "msd.finalize()\n",
+ "```\n",
+ "\n",
+ "ensure that the auto updating is terminated and that any available information\n",
+ "used to create the auto correlation. That is, information that has not yet been\n",
+ "used is processed. Finally, the correlation allows you to write output to disk\n",
+ "in a format that depends on the specific choice of correlation.\n",
+ "\n",
+ "With the above knowledge it should be easy to understand the partially\n",
+ "functional Python script. It is a straightforward simulation of a single\n",
+ "particle, which uses the correlator functionality of **ESPResSo** [31],[33]\n",
+ "to determine the MSD and (angular) velocity auto-correlation function (A)VACF.\n",
+ "The latter two are of interest, since we can infer that the swimming only\n",
+ "affects the translational motion and not the rotational motion. They are given\n",
+ "by\n",
+ "\n",
+ "\n",
+ "$$\\mathrm{VACF}(t) = \\langle \\mathbf{v}(t) \\cdot \\mathbf{v}(t + \\tau) \\rangle_{\\tau};$$\n",
+ "\n",
+ "$$\\mathrm{AVACF}(t) = \\langle \\boldsymbol{\\omega}(t) \\cdot \\boldsymbol{\\omega}(t + \\tau) \\rangle_{\\tau},$$\n",
+ "\n",
+ "respectively. Here, $\\mathbf{v}$ is the velocity and $\\boldsymbol{\\omega}$ is\n",
+ "the angular velocity, and the brackets $\\langle \\rangle_{\\tau}$ indicate time\n",
+ "averaging over $\\tau$. The first task is to get the script up and running. Once\n",
+ "you have done this, you will find that you can output a single measurement of\n",
+ "the MSD and (A)VACF for a passive system (`vel=0.0`) or an active on\n",
+ "(*e.g.*, `vel=5.0`). You can visualize these using matplotlib.pyplot(),\n",
+ "for instance. To plot the total MSD,\n",
+ "you need to sum up the contributions from the different components (x, y and z).\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "Despite the long run length, the quality of the MSD and (A)VACF can be lacking.\n",
+ "It is therefore recommended that you output 5 uncorrelated data files. The\n",
+ "Python script is designed to facilitate you doing this. Once you have obtained\n",
+ "this data for a velocity of `vel=0.0` (passive) and `vel=5.0`\n",
+ "active particle, you can average over these and obtain a mean and standard\n",
+ "error for your data. You will be pleased to find that indeed, there is enhanced\n",
+ "diffusion for the active system and that the ballistic regime is stretched\n",
+ "compared to the passive case, see Fig. 3(a). Contrasting the\n",
+ "passive and active AVACFs shows that the rotational properties are unaffected\n",
+ "(Fig. 3(b)), as expected."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Rectification\n",
+ "\n",
+ "\n",
+ "In this tutorial you will consider the ‘rectifying’ properties of certain\n",
+ "geometries on active systems. Rectification can best be understood by\n",
+ "considering a system of passive particles first. In an in-equilibrium system,\n",
+ "for which the particles are confined to an asymmetric box, we know that the\n",
+ "particle density is homogeneous throughout, provided that there are no external\n",
+ "potentials acting on the particles. There are, of course, limitations involving\n",
+ "the particle size and the size of the geometry, but for an ideal gas this is\n",
+ "certainly true. However, in an out-of-equilibrium setting one can have a\n",
+ "heterogeneous distribution of particles, which limits the applicability of an\n",
+ "‘effective’ temperature description. For instance, self-propelled particles\n",
+ "will move in a preferred direction a series of wedge-shaped\n",
+ "obstacles [42]. If the obstacles are in a closed tube, then the\n",
+ "self-propelled particles will accumulate on one end. Since the speed at which\n",
+ "they accumulate depends on their self-motility, different bacteria can be\n",
+ "separated in this way [43]."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The Rectifying-Geometry Tutorial\n",
+ "\n",
+ "Here, we will set up a rectifying geometry. In the folder EXERCISES you will\n",
+ "find the rectification_geometry.py file. This will help you construct\n",
+ "and visualize a rectifying geometry of a cylindrical chamber with a wedge-like\n",
+ "obstacle in the center, see Fig. 4(a). You will first need to\n",
+ "complete the exercises before the script evaluates properly. The wedge-like\n",
+ "obstacle causes rectification when the particles are self-propelled. As you can\n",
+ "see the LB is used and the rectifying geometry is built by adding instances of\n",
+ "the LBBoundary class to the system, see the User Guide for more\n",
+ "information [31]. The reason for the use of LB is to help visualize the\n",
+ "geometry. An alternative is the OpenGL visualizer included with **ESPResSo**.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "The first block of the script sets up the basic simulation parameters, with\n",
+ "which you should be familiar – if you are struggling with this part, please\n",
+ "consult the previous tutorials. The second block sets up the boundaries using\n",
+ "instances of LBBoundary, as was introduced in the LB tutorial. Here it\n",
+ "is worth noting that the geometric parameters of the HollowCone\n",
+ "command are somewhat counterintuitive. They are illustrated in\n",
+ "Fig. 4(b) for clarification. Finally, in the third block the\n",
+ "code\n",
+ "\n",
+ "```python\n",
+ "lbf.print_vtk_boundary(\"{}/boundary.vtk\".format(outdir))\n",
+ "```\n",
+ "\n",
+ "ensures that the boundary data is exported to a .vtk file. This file\n",
+ "can be read in and visualized using the program ParaView, which should\n",
+ "have been introduced in the LB and Electrostatics tutorials. Here, we briefly\n",
+ "comment on how the geometry can be visualized. In the command prompt type\n",
+ "\n",
+ "```sh\n",
+ "paraview &\n",
+ "```\n",
+ "\n",
+ "to open ParaView. Open the relevant .vtk file (in our\n",
+ "case boundary.vtk). Click the green `Apply` button. Now add a\n",
+ "`Clip` from the ribbon just above the Pipeline Browser to the\n",
+ "highlighted boundary.vtk entry. Within the `Clip Properties` tab, select\n",
+ "`Scalar` in the `Clip Type` drop-down tab. Then set the value of the\n",
+ "scalar to 0.1 with the slide (or by typing in the field) and tick the\n",
+ "`Inside Out` box. Click `Apply`, next slide the `Opacity` slide\n",
+ "to 0.25, to visualize the inside of the geometry that you have created, see\n",
+ "Fig. 5(a).\n",
+ "\n",
+ "\n",
+ ""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The Rectification Tutorial\n",
+ "\n",
+ "Now we will study the effectiveness of our rectifying geometry. In the\n",
+ "folder EXERCISES you will find the rectification_simulation.py file. This\n",
+ "Python script will allow the user to appreciate the differences between a\n",
+ "passive and an active ‘ideal gas’ in the above geometry. Again, you will have\n",
+ "to complete the exercises to obtain a functioning script. N.B. Once up and\n",
+ "running, the simulation takes quite a while ($\\sim 20$ min) on a modern desktop.\n",
+ "We recommend that you proceed with the final exercise while the simulation is\n",
+ "running.\n",
+ "\n",
+ "The first block of the script introduces a procedure to convert a rotation\n",
+ "given in spherical coordinates by the azimuthal and polar angle $\\theta$ and\n",
+ "$\\phi$, respectively, to a quaternion. The code\n",
+ "```python\n",
+ "def a2quat(phi,theta):\n",
+ "\n",
+ " q1w = cos(theta/2.0)\n",
+ " q1x = 0\n",
+ " q1y = sin(theta/2.0)\n",
+ " q1z = 0\n",
+ "\n",
+ " q2w = cos(phi/2.0)\n",
+ " q2x = 0\n",
+ " q2y = 0\n",
+ " q2z = sin(phi/2.0)\n",
+ "\n",
+ " q3w = (q1w*q2w-q1x*q2x-q1y*q2y-q1z*q2z)\n",
+ " q3x = (q1w*q2x+q1x*q2w-q1y*q2z+q1z*q2y)\n",
+ " q3y = (q1w*q2y+q1x*q2z+q1y*q2w-q1z*q2x)\n",
+ " q3z = (q1w*q2z-q1x*q2y+q1y*q2x+q1z*q2w)\n",
+ "\n",
+ " return [q3w,q3x,q3y,q3z]\n",
+ "```\n",
+ "\n",
+ "essentially implements the geometric relation\n",
+ "\n",
+ "$$\n",
+ " \\begin{pmatrix}\n",
+ " w \\\\ x \\\\ y \\\\ z \\\\\n",
+ " \\end{pmatrix}\n",
+ " =\n",
+ " \\begin{pmatrix}\n",
+ " \\cos(\\alpha/2) \\\\\n",
+ " \\sin(\\alpha/2)\\ n_x \\\\\n",
+ " \\sin(\\alpha/2)\\ n_y \\\\\n",
+ " \\sin(\\alpha/2)\\ n_z \\\\\n",
+ " \\end{pmatrix}\n",
+ "$$\n",
+ "\n",
+ "where $\\alpha$ is the angle and $\\mathbf{n} = (n_x,n_y,n_z)$ is the\n",
+ "axis of rotation. This relation is used for both rotation axes and subsequently\n",
+ "the two expressions are quaternion multiplied to obtain the full rotation. This\n",
+ "procedure will be used later to draw (almost) random quaternions. The rest of\n",
+ "the block deals with standard input and output and parameter/simulation\n",
+ "definitions.\n",
+ "\n",
+ "The second block of the script uses the geometric parameters from\n",
+ "the rectification_geometry.py script to establish the constraints that keep\n",
+ "the particles inside of the confining geometry. The relevant **ESPResSo** command\n",
+ "is system.constraints.add() and has already been introduced in the basic\n",
+ "tutorial. Next we set up interactions between the geometry and the particles\n",
+ "— in this case the almost-hard WCA interaction — to ensure that they are\n",
+ "trapped. In the fourth block, the geometry is seeded with particles, two clouds\n",
+ "of equal size in the respective chambers. This is done to ensure that the\n",
+ "equilibration time for the system is limited. That is, if you had set up all\n",
+ "particles in a single chamber, there would obviously be flow from the full\n",
+ "chamber to the empty one, despite the system being passive (in equilibrium), as\n",
+ "the density is homogenized.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "The final block is concerned with measuring the rectifying properties of this\n",
+ "geometry. We do so with a convenient parameter, namely the center of mass (CMS)\n",
+ "of the system. You can use the **ESPResSo** command system.galilei.system_CMS()\n",
+ "to determine it directly [31]. If the\n",
+ "system is passive, then the CMS should fluctuate around the center of the box.\n",
+ "However, if there is rectification, this can be seen as a deviation of the CMS\n",
+ "from this center. Fig. 6 shows the evolution of the CMS\n",
+ "as a function of time for passive and active (a velocity of 5.0) particles in\n",
+ "the system. The script also outputs a snapshot of the final coordinates of the\n",
+ "particles using the line\n",
+ "\n",
+ "```python\n",
+ "system.part.writevtk(\"{}/points_{}.vtk\".format(outdir, vel), types=[0])\n",
+ "```\n",
+ "\n",
+ "The writevtk() command outputs the coordinates of the particles of type\n",
+ "0 to a file that is ParaView readable. You can now show how the particles are\n",
+ "distributed in the geometry that you visualized in the previous section. To do\n",
+ "so, choose the relevant .vtk file, *e.g.*, points_5.0.vtk\n",
+ "and load it into ParaView. Now add a `Glyph` from the ribbon just above\n",
+ "the Pipeline Browser to the highlighted points_5.0.vtk entry. Select\n",
+ "`Sphere` from the `Glyph Type` drop down. Scroll down and select\n",
+ "`off` in the `Scale Mode` drop down. Tick the `Edit` box and set\n",
+ "the scale factor to 1.0, then select `All Points` from the\n",
+ "`Glyph Mode` drop down. As you can see, there are clearly far more\n",
+ "particles in the ‘front’ chamber, than there are in the other, see\n",
+ "Fig. 5(b). This can be explained by the fact that the activity\n",
+ "makes it easier to take the barrier in one direction than in the other. Or in\n",
+ "technical terms: the equivalence between thermodynamic pressure and mechanical\n",
+ "pressure is lost."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Flow Field around a Swimmer\n",
+ "As previously discussed, the flow field around an active particle should not\n",
+ "contain a monopolar term. At least, not when there are no other forces acting\n",
+ "on the particle. In this tutorial, we will examine the flow field around the\n",
+ "two basic types of active swimmer: pushers and pullers. The nature of these\n",
+ "flow fields ultimately determine how particles interact with their\n",
+ "surroundings. That is, whether they are attracted to walls or repelled by\n",
+ "them [44], how they stir tracer beads in the\n",
+ "fluid [45], and how they move collectively [46].\n",
+ "However, it goes beyond the scope of this tutorial to discuss all of these points in\n",
+ "detail."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### The Flow-Field Tutorial\n",
+ "\n",
+ "Now we will study the flow field around a simple pusher and puller particle in\n",
+ "**ESPResSo**. In the folder EXERCISES you will find the flow_field.py file.\n",
+ "Once again, you will have to complete the excercises to obtain a functioning\n",
+ "script. The structure of the blocks and their content should by now be\n",
+ "straightforward for you to understand on the basis of the previous tutorials\n",
+ "and the information provided here. We will therefore focus on the use of this\n",
+ "script.\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "First run the simulation for a puller particle and a position of 0.0. This will\n",
+ "generate output in the directory that you have set up. Examine the content of\n",
+ "this folder and, in particular, the trajectory.dat file. From the final\n",
+ "line of this file, you can determine the position of the swimmer at the end of\n",
+ "the run. Now rerun the script with a modified position value, such that the\n",
+ "particle ends up in the center of the box. This generates a second directory.\n",
+ "Now go into this directory and open ParaView. Using the techniques you have\n",
+ "learned in the above tutorial, you can visualize the particle, and using the\n",
+ "methods you have picked up in the Electrokinetics tutorial, you can visualize\n",
+ "the fluid flow around this particle using, *e.g.*, stream lines, a\n",
+ "slice, or arrows. When you are done, the result could look like\n",
+ "Fig. 7."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Concluding Remarks\n",
+ "\n",
+ "With that, you have come to the end of this tutorial. We hope you found it\n",
+ "informative and that you have a sufficient understanding of the way to deal\n",
+ "with active matter in **ESPResSo** to set up simulations on your own."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Bibliography\n",
+ "\n",
+ "[1] M. Ballerini, N. Cabibbo, R. Candelier, A. Cavagna, E. Cisbani, I. Giardina, V. Lecomte, A. Orlandi, G. Parisi, A. Procaccini, M. Viale, and V. Zdravkovic. Interaction ruling animal collective behavior depends on topological rather than metric distance: Evidence from a field study. *Proc. Natl. Acad. Sci.*, 105:1232, 2008. \n",
+ "[2] Y. Katz, K. Tunstrøm, C.C. Ioannou, C. Huepe, and I.D. Couzin. Inferring the structure and dynamics of interactions in schooling fish. *Proc. Nat. Acad. Sci.*, 108(46):18720, 2011. \n",
+ "[3] D. Helbing, I. Farkas, and T. Vicsek. Simulating dynamical features of escape panic. *Nature*, 407:487, 2000. \n",
+ "[4] J. Zhang, W. Klingsch, A. Schadschneider, and A. Seyfried. Experimental study of pedestrian flow through a T-junction. In Valery V. Kozlov, Alexander P. Buslaev, Alexander S. Bugaev, Marina V. Yashina, Andreas Schadschneider, and Michael Schreckenberg, editors, *Traffic and Granular Flow ’11*, page 241. Springer (Berlin/Heidelberg), 2013. \n",
+ "[5] J.L. Silverberg, M. Bierbaum, J.P. Sethna, and I. Cohen. Collective motion of humans in mosh and circle pits at heavy metal concerts. *Phys. Rev. Lett.*, 110:228701, 2013. \n",
+ "[6] A. Sokolov, I.S. Aranson, J.O. Kessler, and R.E. Goldstein. Concentration dependence of the collective dynamics of swimming bacteria. *Phys. Rev. Lett.*, 98:158102, 2007. \n",
+ "[7] J. Schwarz-Linek, C. Valeriani, A. Cacciuto, M. E. Cates, D. Marenduzzo, A. N. Morozov, and W. C. K. Poon. Phase separation and rotor self-assembly in active particle suspensions. *Proc. Nat. Acad. Sci.*, 109:4052, 2012. \n",
+ "[8] M. Reufer, R. Besseling, J. Schwarz-Linek, V.A. Martinez, A.N. Morozov, J. Arlt, D. Trubitsyn, F.B. Ward, and W.C.K. Poon. Switching of swimming modes in magnetospirillium gryphiswaldense. *Biophys. J.*, 106:37, 2014. \n",
+ "[9] D.M. Woolley. Motility of spermatozoa at surfaces. *Reproduction*, 126:259, 2003. \n",
+ "[10] I.H. Riedel, K. Kruse, and J. Howard. A self-organized vortex array of hydrodynamically entrained sperm cells. *Science*, 309(5732):300, 2005. \n",
+ "[11] R. Ma, G.S. Klindt, I.H. Riedel-Kruse, F. Jülicher, and B.M. Friedrich. Active phase and amplitude fluctuations of flagellar beating. *Phys. Rev. Lett.*, 113:048101, 2014. \n",
+ "[12] M. Polin, I. Tuval, K. Drescher, J.P. Gollub, and R.E. Goldstein. Chlamydomonas swims with two “gears” in a eukaryotic version of run-and-tumble locomotion. *Science*, 325:487, 2009. \n",
+ "[13] V.F. Geyer, F. Jülicher, J. Howard, and B.M. Friedrich. Cell-body rocking is a dominant mechanism for flagellar synchronization in a swimming alga. *Proc. Nat. Acad. Sci.*, 110:18058, 2013. \n",
+ "[14] D. Mizuno, C. Tardin, C.F. Schmidt, and F.C. MacKintosh. Nonequilibrium mechanics of active cytoskeletal networks. *Science*, 315:370, 2007. \n",
+ "[15] R.F. Ismagilov, A. Schwartz, N. Bowden, and G.M. Whitesides. Autonomous movement and self-assembly. *Angew. Chem. Int. Ed.*, 41:652, 2002. \n",
+ "[16] W. F. Paxton, K. C. Kistler, C. C. Olmeda, A. Sen, S. K. St. Angelo, Y. Cao, T. E. Mallouk, P. E. Lammert, and V. H. Crespi. Catalytic nanomotors: Autonomous movement of striped nanorods. *J. Am. Chem. Soc.*, 126:13424, 2004. \n",
+ "[17] Y. Wang, R. M. Hernandez, D. J. Bartlett, J. M. Bingham, T. R. Kline, A. Sen, and T. E. Mallouk. Bipolar electrochemical mechanism for the propulsion of catalytic nanomotors in hydrogen peroxide solutions. *Langmuir*, 22:10451, 2006. \n",
+ "[18] A. Brown and W. Poon. Ionic effects in self-propelled Pt-coated Janus swimmers. *Soft Matter*, 10:4016–4027, 2014. \n",
+ "[19] S. Ebbens, D.A. Gregory, G. Dunderdale, J.R. Howse, Y. Ibrahim, T.B. Liverpool, and R. Golestanian. Electrokinetic effects in catalytic platinum-insulator Janus swimmers. *Euro. Phys. Lett.*, 106:58003, 2014. \n",
+ "[20] S. Ebbens, M.-H. Tu, J. R. Howse, and R. Golestanian. Size dependence of the propulsion velocity for catalytic Janus-sphere swimmers. *Phys. Rev. E*, 85:020401, 2012. \n",
+ "[21] J. R. Howse, R. A. L. Jones, A. J. Ryan, T. Gough, R. Vafabakhsh, and R. Golestanian. Self-motile colloidal particles: From directed propulsion to random walk. *Phys. Rev. Lett.*, 99:048102, 2007. \n",
+ "[22] L. F. Valadares, Y.-G. Tao, N. S. Zacharia, V. Kitaev, F. Galembeck, R. Kapral, and G. A. Ozin. Catalytic nanomotors: Self-propelled sphere dimers. *Small*, 6:565, 2010. \n",
+ "[23] J. Simmchen, V. Magdanz, S. Sanchez, S. Chokmaviroj, D. Ruiz-Molina, A. Baeza, and O.G. Schmidt. Effect of surfactants on the performance of tubular and spherical micromotors – a comparative study. *RSC Adv.*, 4:20334, 2014. \n",
+ "[24] H.-R. Jiang, N. Yoshinaga, and M. Sano. Active motion of a Janus particle by self-thermophoresis in a defocused laser beam. *Phys.* *Rev. Lett.*, 105:268302, 2010. \n",
+ "[25] L. Baraban, R. Streubel, D. Makarov, L. Han, D. Karnaushenko, O. G. Schmidt, and G. Cuniberti. Fuel-free locomotion of Janus motors: Magnetically induced thermophoresis. *ACS Nano*, 7:1360, 2013. \n",
+ "[26] I. Buttinoni, G. Volpe, F. Kümmel, G. Volpe, and C. Bechinger. Active Brownian motion tunable by light. *J. Phys.: Condens. Matter*, 24:284129, 2012. \n",
+ "[27] A. A. Solovev, Y. Mei, E. Bermúdez Ureña, G. Huang, and O. G. Schmidt. Catalytic microtubular jet engines self-propelled by accumulated gas bubbles. *Small*, 5:1688, 2009. \n",
+ "[28] Y. Mei, A. A. Solovev, S. Sanchez, and O. G. Schmidt. Rolled-up nanotech on polymers: from basic perception to self-propelled catalytic microengines. *Chem. Soc. Rev.*, 40:2109, 2011. \n",
+ "[29] M.E. Cates. Diffusive transport without detailed balance in motile bacteria: does microbiology need statistical physics? *Rep. Prog.* *Phys.*, 75:042601, 2012. \n",
+ "[30] M.E. Cates and J. Tailleur. Motility-induced phase separation. *Annu. Rev. Condens. Matter Phys.*, 6:219, 2015. \n",
+ "[31] A. Arnold et al. Espresso user guide. *User Guide: ESPResSo git repository*, 3.4-dev-1404-g32d3874:1, 2015. \n",
+ "[32] H. J. Limbach, A. Arnold, B. A. Mann, and C. Holm. ESPResSo – an extensible simulation package for research on soft matter systems. *Comp. Phys. Comm.*, 174:704, 2006. \n",
+ "[33] A. Arnold, O. Lenz, S. Kesselheim, R. Weeber, F. Fahrenberger, D. Roehm, P. Košovan, and C. Holm. ESPResSo 3.1 — Molecular Dynamics Software for Coarse-Grained Models. In M. Griebel and M. A. Schweitzer, editors, *Meshfree Methods for Partial Differential* *Equations VI*, volume 89 of *Lecture Notes in Computational Science and Engineering*. Springer, 2013. \n",
+ "[34] Sven Erik Ilse, Christian Holm, and Joost de Graaf. Surface roughness stabilizes the clustering of self-propelled triangles. *The Journal* *of Chemical Physics*, 145(13):134904, 2016. \n",
+ "[35] V. Lobaskin and B. Dünweg. A new model of simulating colloidal dynamics. *New J. Phys.*, 6:54, 2004. \n",
+ "[36] A. Chatterji and J. Horbach. Combining molecular dynamics with lattice boltzmann: A hybrid method for the simulation of (charged) colloidal systems. *J. Chem. Phys.*, 122:184903, 2005. \n",
+ "[37] L.P. Fischer, T. Peter, C. Holm, and J. de Graaf. The raspberry model for hydrodynamic interactions revisited. I. Periodic arrays of spheres and dumbbells. *J. Chem. Phys.*, 143:084107, 2015. \n",
+ "[38] J. de Graaf, T. Peter, L.P. Fischer, and C. Holm. The raspberry model for hydrodynamic interactions revisited. II. The effect of confinement. *J. Chem. Phys.*, 143:084108, 2015. \n",
+ "[39] Joost de Graaf, Arnold JTM Mathijssen, Marc Fabritius, Henri Menke, Christian Holm, and Tyler N Shendruk. Understanding the onset of oscillatory swimming in microchannels. *Soft Matter*, 12(21):4704–4708, 2016. \n",
+ "[40] A. Einstein. Eine neue Bestimmung der Moleküldimension. *Ann. Phys.*, 19:289, 1906. \n",
+ "[41] https://github.com/espressomd/espresso \n",
+ "[42] I. Berdakin, Y. Jeyaram, V.V. Moshchalkov, L. Venken, S. Dierckx, S.J. Vanderleyden, A.V. Silhanek, C.A. Condat, and V.I. Marconi. Influence of swimming strategy on microorganism separation by asymmetric obstacles. *Phys. Rev. E*, 87:052702, 2013. \n",
+ "[43] I. Berdakin, A.V. Silhanek, H.N. Moyano, V.I. Marconi, and C.A. Condat. Quantifying the sorting efficiency of self-propelled run-and-tumble swimmers by geometrical ratchets. *Central Euro. J. Phys.*, 12:1653, 2013. \n",
+ "[44] S.E. Spagnolie and E. Lauga. Hydrodynamics of self-propulsion near a boundary: predictions and accuracy of far-field approximations. *J. Fluid Mech.*, 700:105, 2012. \n",
+ "[45] A. Morozov and D. Marenduzzo. Enhanced diffusion of tracer particles in dilute bacterial suspensions. *Soft Matter*, 10:2748, 2014. \n",
+ "[46] Andreas Zöttl and Holger Stark. Hydrodynamics determines collective motion and phase behavior of active colloids in quasi-two-dimensional confinement. *Phys. Rev. Lett.*, 112:118101, 2014."
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/doc/tutorials/06-active_matter/06-active_matter.tex b/doc/tutorials/06-active_matter/06-active_matter.tex
deleted file mode 100644
index 2ac52096ded..00000000000
--- a/doc/tutorials/06-active_matter/06-active_matter.tex
+++ /dev/null
@@ -1,680 +0,0 @@
-\documentclass[aip,jcp,reprint,a4paper,onecolumn,amsmath]{revtex4-1}
-% Options for onecolumn and a4paper
-\linespread{1.0}
-\usepackage[expansion,protrusion,tracking=smallcaps]{microtype}
-\usepackage{listings,tikz,tikz-3dplot,xcolor,upquote}
-\tikzset{
- dot/.style = {draw,fill,circle,inner sep=1pt}
-}
-\lstset{
- basicstyle = \small\ttfamily,
- keywordstyle = \color{blue!80!black},
- commentstyle = \color{green!40!black},
- columns = fullflexible,
- xleftmargin = 1em
-}
-\lstnewenvironment{espresso}[1][]%
- {\lstset{language=python,#1}}%
- {}
-\lstnewenvironment{bash}[1][]%
- {\lstset{keywordstyle = \color{red!80!blue},keywords={\$},#1}}%
- {}
-\usepackage{xspace}
-\newcommand\code{\lstinline}
-\newcommand{\es}{\mbox{\textsf{ESPResSo}}\xspace}
-\newcommand\codees{\lstinline[language=python]}
-\begin{document}
-\title{Active Matter Tutorial}
-\author{Joost de Graaf}
-\email[]{\texttt{jgraaf@icp.uni-stuttgart.de}}
-\author{Henri Menke}
-\email[]{\texttt{henri@icp.uni-stuttgart.de}}
-\affiliation{Institute for Computational Physics,
- Universit\"at Stuttgart,
- Allmandring 3,
- D-70569 Stuttgart,
- Germany}
-
-\begin{abstract}
-In this tutorial we explore the ways to simulate self-propulsion in the
-simulation software package \es{}. We consider three examples that illustrate
-the properties of these systems. First, we study the concept of enhanced
-diffusion of a self-propelled particle. Second, we investigate rectification in
-an asymmetric geometry. Finally, we determine the flow field around a
-self-propelled particle using lattice-Boltzmann simulations (LB). These three
-subsections should give insight into the basics of simulating active matter
-with \es{}. This tutorial assumes basic knowledge of Python and \es{}, as well
-as the use of lattice-Boltzmann within \es{}. It is therefore recommended to go
-through the relevant tutorials first, before attempting this one.
-\end{abstract}
-
-\maketitle
-
-\section{\label{sec:active}Active Particles}
-
-Active matter is a term that describes a class of systems, in which energy is
-constantly consumed to perform work. These systems are therefore highly
-out-of-equilibrium (thermodynamically) and (can) thus defy description using
-the standard framework of statistical mechanics. Active systems are, however,
-ubiquitous. On our length scale, we encounter flocks of
-birds~\cite{Ballerini_08}, schools of fish~\cite{Katz_11}, and, of course,
-humans~\cite{Helbing_00,Zhang_13,Sliverberg_13}; on the mesoscopic level
-examples are found in bacteria~\cite{Sokolov_07,Schwarz-Linek_12,Reufer_14},
-sperm~\cite{Woolley_03,Riedel_05,Ma_14}, and algae~\cite{Polin_09,Geyer_13};
-and on the nanoscopic level, transport along the cytoskeleton is achieved by
-myosin motors~\cite{Mizuno07}. This exemplifies that range of length scales
-which the field of active matter encompasses, as well as its diversity. Recent
-years have seen a huge increase in studies into systems consisting of
-self-propelled particles, in particular artificial ones in the colloidal
-regime~\cite{ismagilov,Paxton_04,Wang_06,Brown,Ebbens,Ebbens_12,Howse_07,Valadares_10,simmchen,Yoshinaga,Baraban_13a,Buttinoni_12,Solovev_09,Mei_11}.
-These self-propelled colloids show promise as physical model systems for
-complex biological behavior (bacteria moving collectively) and could be used to
-answer fundamental questions concerning out-of-equilibrium statistical
-physics~\cite{Cates_12,Cates_14}. Simulations can also play an important role
-in this regard, as the parameters are more easily tunable and the results
-`cleaner' than in experiments. The above should give you some idea of the
-importance of the field of active matter and why you should be interested in
-performing simulations in it.
-
-\section{\label{sec:swimming}Active Particles in ESPResSo }
-
-The \code{ENGINE} feature offers intuitive syntax for adding self-propulsion to
-a particle. The propulsion will occur along the vector that defines the
-orientation of the particle (henceforth referred to as `director'). In \es{}
-the orientation of the particle is defined by a quaternion; this in turn
-defines a rotation matrix that acts on the particle's initial orientation
-(along the z-axis), which then defines the particles current orientation
-through the matrix-oriented vector~\cite{UG,Limbach_06,Arnold_13}. Within the
-\code{ENGINE} feature there are two ways of setting up a self-propelled
-particle, with and without hydrodynamic interactions. The particle without
-hydrodynamic interactions will be discussed first, as it is the simplest case.
-
-\subsection{\label{sub:langevin}Self-Propulsion without Hydrodynamics}
-
-For this type of self-propulsion the Langevin thermostat is exploited. The
-Langevin thermostat causes a particle to experience a velocity-dependent
-friction~\cite{UG}. When a constant force is applied along the director, the
-friction causes the particle to attain a terminal velocity, due to the balance
-of driving and friction force, see Fig.~\ref{fig:balance}. The exponent with
-which the particle's velocity relaxes towards this value, depends on the
-strength of the friction and the mass of the particle. The \code{ENGINE}
-feature implies that rotation of the particles (the \code{ROTATION} feature) is
-compiled into \es{}. The particle can thus reorient due to external torques or
-due to thermal fluctuations, whenever the rotational degrees of freedom are
-thermalized. Note that the rotation of the particles has to be enabled
-explicitly via their \code{ROTATION} property. This `engine' building block can
-be connected to other particles,~\textit{e.g.}, via the virtual sites (rigid
-body)~\cite{UG} to construct complex self-propelled objects\cite{ilse16a}.
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=1.0]{FIGURES/friction}
-\end{center}
-\caption{\label{fig:balance}A balance of the driving force in the direction defined by the `director' unit vector and the friction due to the Langevin thermostat results in a constant terminal velocity.}
-\end{figure}
-
-The configuration for the Langevin-based swimming is exposed as an attribute of
-the \codees{ParticleHandle} class of \es{}, which represents a particle in the
-simulation. You can either set up the self-propulsion during the creation of a
-particle or at a later stage. In the following example we set up a particle
-with ID 0 at the position $(1,1,1)$ and set its terminal velocity to $1.0$.
-\begin{espresso}
-system.part.add(pos=[1,1,1],swimming={'v_swim':1.0})
-\end{espresso}
-As you can see, the keyword for setting up the engine is \codees{swimming}. The
-code \codees{'v_swim':1.0} sets the terminal velocity to $1.0$ (in MD units).
-Setting the terminal velocity directly is possible, since the terminal velocity
-is simply the ratio of the applied driving force and Langevin friction
-coefficient. It is also possible to set the driving force directly, which
-requires you to calculate/compute the terminal velocity. This can be achieved
-by replacing \codees{v_swim} with \codees{f_swim}. Please note, that the
-options \codees{v_swim} and \codees{f_swim} are mutually exclusive. Also, one
-is limited to the force/velocity and time step that can be used by the
-stability criteria on the Langevin algorithm itself.
-
-To modify a passive particle (switch on self-propulsion) or deactivate
-activity, one can use the following commands: Suppose a passive particle with,
-say ID 1, has been set up, we can add self-propulsion to it by specifying
-\begin{espresso}
-system.part[1].swimming = {'f_swim':0.03}
-\end{espresso}
-Finally, a particle's activity can be switched off, by setting either \codees{v_swim} or \codees{f_swim} to zero
-\begin{espresso}
-system.part[0].swimming = {'f_swim':0.0}
-\end{espresso}
-on the particle with ID 0 in this case. The numerical values of \codees{v_swim}
-and \codees{f_swim} in these examples are completely arbitrary and crucially
-depend on all other parameters of your simulation, such as friction,
-temperature, interactions, etc. Please consult the User Guide~\cite{UG} for
-additional information.
-
-\subsection{\label{sub:lattice}Self-Propulsion with Hydrodynamics}
-
-In situations where hydrodynamic interactions between swimmers or swimmers and
-objects are of importance, we use the lattice-Boltzmann (LB) to propagate the
-fluid's momentum diffusion. We recommend the GPU-based variant of LB in \es{},
-since it is much faster. Moreover, the current implementation of the CPU
-self-propulsion is limited to one CPU. This is because the ghost-node structure
-of the \es{} cell-list code does not allow for straightforward MPI parallellization
-of the swimmer objects across several CPUs.
-
-Of particular importance for self-propulsion at low Reynolds number is the fact
-that active systems (bacteria, sperm, algae, but also artificial chemically
-powered swimmers) are force free. That is, the flow field around one of these
-objects does not contain a monopolar (Stokeslet) contribution. In the case of a
-sperm cell, see Fig.~\ref{fig:pusher-puller}(a), the reasoning is as follows.
-The whip-like tail pushes against the fluid and the fluid pushes against the
-tail, at the same time the head experiences drag, pushing against the fluid and
-being pushed back against by the fluid. This ensures that both the swimmer and
-the fluid experience no net force. However, due to the asymmetry of the
-distribution of forces around the swimmer, the fluid flow still causes net
-motion. When there is no net force on the fluid, the lowest-order multipole
-that can be present is a hydrodynamic dipole. Since a dipole has an
-orientation, there are two types of swimmer: pushers and pullers. The
-distinction is made by whether the particle pulls fluid in from the front and
-back, and pushes it out towards its side (puller), or vice versa (pusher), see
-Fig.~\ref{fig:pusher-puller}(c,d).
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=1.0]{FIGURES/pusher-puller}
-\end{center}
-\caption{\label{fig:pusher-puller}(a) Illustration of a sperm cell modeled
-using our two-point swimmer code. The head is represented by a solid particle,
-on which a force is acting (black arrow). In the fluid a counter force is
-applied (white arrow). This generates a pusher-type particle. (b) Illustration
-of the puller-type Chlamydomonas algae, also represented by our two-point
-swimmer. (c,d) Sketch of the flow-lines around the swimmers: (c) pusher and (d)
-puller.}
-\end{figure}
-
-In \es{} one can model both pushers and pullers using the following command.
-Say we want to set up a pusher with ID 0 at the position $(1,1,1)$ that has a
-dipolar strength of 0.1. Then we need to first set up the LB fluid (on the GPU)
-by invoking
-\begin{espresso}
-lbf = espressomd.lb.LBFluidGPU(agrid=1, dens=1.0, visc=1.0, tau=0.01)
-system.actors.add(lbf)
-system.thermostat.set_lb(LB_fluid=lbf, gamma=20.0, seed=42)
-\end{espresso}
-In this example we used parameters for which we know the LB reproduces
-Stokes-level hydrodynamic interactions well. Here, we simulate a
-quiescent unthermalized LB fluid (this is the default
-behavior). We next set up the pusher by imputing the following line
-\begin{espresso}
-system.part.add(pos=[1,1,1],swimming={'f_swim':0.1, 'dipole_length':1.0})
-\end{espresso}
-The \codees{v_swim} option exists, but it does not produce the right flow
-field. With \codees{v_swim} one has motion, but no dipolar flow field. This can
-be used to check whether the presence of a dipolar flow field is the dominant
-term in describing the interactions. The keys \codees{f_swim} and
-\codees{dipole_length} together determine what the dipole strength is. One
-should be careful, however, the \codees{dipole_length} should be at least one
-grid spacing, since use is made of the LB interpolation scheme. If the length
-is less than one grid spacing, you can easily run into discretization artifacts
-or cause the particle not to move. This dipole length together with the
-director and the keyword \codees{pusher/puller} determines where the counter
-force on the fluid is applied to make the system force free, see
-Fig.~\ref{fig:pusher-puller}(a) for an illustration of the setup. That is to
-say, a force of magnitude \codees{f_swim} is applied to the particle (leading
-to a Stokeslet in the fluid, due to friction) and a counter force is applied to
-compensate for this in the fluid (resulting in an extended dipole flow field,
-due to the second monopole). For a puller the counter force is applied in front
-of the particle and for a pusher it is in the back
-(Fig.~\ref{fig:pusher-puller}(b)).
-
-Finally, there are a few caveats to the swimming setup with hydrodynamic
-interactions. First, the stability of this algorithm is governed by the
-stability limitations of the LB method. Second, since the particle is
-essentially a point particle, there is no rotation caused by the fluid
-flow,~\textit{e.g.}, a swimmer in a Posseuille flow. If the thermostat is
-switched on, the rotational degrees of freedom will also be thermalized, but
-there is still no contribution of rotation due to `external' flow fields. A
-It is recommended to use an alternative means of obtaining rotations in your LB
-swimming simulations. For example, by constructing a raspberry
-particle~\cite{lobaskin04,chatterji05,fischer15,degraaf15,degraaf16b}.
-
-\section{\label{sec:enhanced}Enhanced Diffusion}
-
-Self-propelled particles behave differently from passive ones when it comes to
-their diffusivity. In particular, an active particle of a certain size violates
-the Stokes-Einstein relation~\cite{einstein06}, which states that the
-translational diffusion coefficient (of a sphere) is given by
-\begin{equation}
-\label{eq:SE} D = \frac{k_{\mathrm{B}}T}{6 \pi \eta R},
-\end{equation}
-where $k_{\mathrm{B}}$ is Boltzmann's constant, $T$ the temperature, $\eta$ is
-the viscosity, and $R$ is the radius. N.B. For a Langevin thermostat the
-friction $\zeta \equiv 6 \pi \eta R$ and the `temperature' is given in units of
-$k_{\mathrm{B}}$. If the self-propelled particle does not experience Brownian
-motion, it would move with a constant speed along a straight line. This means
-that its mean-squared displacement (MSD) is ballistic. Rotational reorientation
-due to Brownian collisions with the fluid, cause this self-propulsion-induced
-ballistic regime to transition into a diffusive regime, on a time governed by
-the rotational diffusion. Thus, when compared to its passive equivalent, the
-ballistic regime of the MSD is stretched considerably and the diffusivity is
-enhanced. Analysis of the equations of motion~\cite{Howse_07} shows that the
-MSD is given by
-\begin{equation}
-\label{eq:emsd} \langle r^{2}(t) \rangle = 6 D t + \frac{v^{2} \tau^{2}_{R}}{2} \left[ \frac{2 t}{\tau^{2}_{R}} + \exp\left( \frac{-2t}{\tau^{2}_{R}} \right) - 1 \right],
-\end{equation}
-where $\langle r^{2}(t) \rangle$ is the MSD from time $t=0$, $v$ is the
-propulsion velocity, $\tau^{2}_{R}$ is the rotational Brownian time, and $D$ is
-the translational diffusivity as in Eq.~\eqref{eq:SE}. For small times ($t \ll
-\tau_{R}$) the motion is ballistic
-\begin{equation}
-\label{eq:bal} \langle r^{2}(t) \rangle = 6 D t + v^{2} t^{2},
-\end{equation}
-while for long times ($t \gg \tau_{R}$) the motion is diffusive
-\begin{equation}
-\label{eq:diff} \langle r^{2}(t) \rangle = (6 D + v^{2}\tau_{R}) t,
-\end{equation}
-with enhanced diffusion coefficient $D_{\mathrm{eff}} = D + v^{2}\tau_{R}/6$.
-Note that no matter the strength of the activity, provided it is some finite
-value, the crossover between ballistic motion and enhanced diffusion is
-controlled by the rotational diffusion time. One can, of course, also connect
-this increased diffusion with an effective temperature, using
-Eq.~\eqref{eq:SE}. However, this apparent equivalence can lead to problems when
-one then attempts to apply statistical mechanics to such systems at the
-effective temperature. That is, there is typically more to being
-out-of-equilibrium than can be captured by a simple remapping of equilibrium
-parameters.
-
-\subsection{\label{sub:config}Configuring \es{} for Active Matter}
-
-To start, you will need the latest version of the \es master. This can be
-obtained as follows, provided that you have correctly configured git. First
-acquire \es{} from the online source
-\footnote{\protect\url{https://github.com/espressomd/espresso}} via
-\begin{bash}
-$ git clone https://github.com/espressomd/espresso.git
-\end{bash}
-
-Now you are ready to configure \es{} in the newly created \es{} directory.
-\begin{bash}
-$ mkdir build
-$ cd build
-$ cmake ..
-\end{bash}
-After this, you will need to copy the \code{myconfig-sample.hpp} file into
-\code{myconfig.hpp} and select the appropriate \code{FEATURES} in the latter.
-\begin{bash}
-$ cp myconfig-sample.hpp myconfig.hpp
-\end{bash}
-To run all the tutorials you need to uncomment the following \code{FEATURES}:
-\begin{bash}
-#define MASS
-#define ENGINE
-#define ROTATION
-#define ROTATIONAL_INERTIA
-#define CUDA
-#define LB_BOUNDARIES_GPU
-#define LENNARD_JONES
-\end{bash}
-Now you are ready to build \es{}. You have to run \code{cmake} again to process the modified \code{myconfig.hpp}.
-\begin{bash}
-$ cmake ..
-$ make -j 8
-\end{bash}
-Next you can find the tutorial files in the ``doc/tutorials/06-active\_mater/''
-directory. There are two folders, one called `EXERCISES' and one called
-`SOLUTIONS'. Copy the content of `EXERCISES' into your build directory.
-
-\subsection{\label{sub:edtut}The Enhanced-Diffusion Tutorial}
-
-In the folder EXERCISES you will find the \code{enhanced_diffusion.py} file.
-This tutorial demonstrates that our Langevin-based swimmer code captures
-enhanced diffusion. N.B. It is incomplete and needs your input to be evaluated
-in \es{} without errors. A fully functional file exists in the SOLUTIONS
-folder, but we recommend that you try solving the exercises on your own first.
-
-To start the exercises, go into the EXERCISES directory and invoke the Python variant of \es{} on the script
-\begin{bash}
-$ ./../pypresso enhanced_diffusion.py 0.0
-\end{bash}
-where the parameter 0.0 gives the magnitude of the self-propulsion velocity. At
-this stage, executing the above line will cause an error, as the exercise has
-not yet been completed. If you read through the script, you will find all the
-basic elements of a simple \es{} simulation, with two exceptions. First, you
-will see that a single swimmer is set up using the
-\codees|swimming={'v_swim':...}| combination, with a value of the velocity that
-is read in from the command prompt. Second, you find that around the
-integration loop there are commands related to the correlator. These have the
-form
-\begin{espresso}
-# Determine the MSD correlator
-
-pos_id = ParticlePositions(ids=[0])
-msd = Correlator(obs1=pos_id,
- corr_operation="square_distance_componentwise",
- delta_N=1,
- tau_max=tmax,
- tau_lin=16)
-system.auto_update_accumulators.add(msd)
-
-# Integrate
-
-for i in range(SAMP_STEPS):
- system.integrator.run(SAMP_LENGTH)
-
-# Finalize the correlator and write to disk
-
-system.auto_update_accumulators.remove(msd)
-msd.finalize()
-numpy.savetxt("output.dat",msd.result())
-\end{espresso}
-Here, the observable \codees{pos_id} is set to the particle positions of the
-only particle in the simulation (with ID 0). Then an MSD correlation is created
-on the next line. Since the MSD is an auto-correlation function, we only
-require one entry for the observables, see the User Guide for additional
-information~\cite{UG}. The command \codees{corr_operation} allows one to choose
-the type of correlation, in this case \codees{"square_distance_componentwise"},
-which gives the MSD for each component (x, y, and z). The time step \codees{dt}
-is set next, followed by the value of the maximum time (\codees{tmax}) over
-which the correlation is to be computed. This maximum can be set to the total
-integrated time. However, it is recommended --- as in the script --- not to do
-so, since this will give very limited sampling for the longest times (one or
-even zero samples). In the tutorial only a 1000th of the total run length is
-used for \codees{tmax}, which means at least 1000 samples are gathered for the
-longest time in the correlation function. You can play with this parameter to
-see the effect on the quality of the sampling. The command \codees{tau_lin=16}
-indicates that the intervals of sampling are chosen by the correlator according
-to an exponential distribution, see the User Guide~\cite{UG}. Next the command
-\begin{espresso}
-system.auto_update_accumulators.add(msd)
-\end{espresso}
-lets \es{} know to start measuring the correlation function and to do so
-automatically during integration. After integration, the commands
-\begin{espresso}
-system.auto_update_accumulators.remove(msd)
-msd.finalize()
-\end{espresso}
-ensure that the auto updating is terminated and that any available information
-used to create the auto correlation. That is, information that has not yet been
-used is processed. Finally, the correlation allows you to write output to disk
-in a format that depends on the specific choice of correlation.
-
-With the above knowledge it should be easy to understand the partially
-functional Python script. It is a straightforward simulation of a single
-particle, which uses the correlator functionality of \es{}~\cite{Arnold_13,UG}
-to determine the MSD and (angular) velocity auto-correlation function (A)VACF.
-The latter two are of interest, since we can infer that the swimming only
-affects the translational motion and not the rotational motion. They are given
-by
-\begin{eqnarray}
-\label{eq:vacf} \mathrm{VACF}(t) = \langle \mathbf{v}(t) \cdot \mathbf{v}(t + \tau) \rangle_{\tau}; \\
-\label{eq:avacf} \mathrm{AVACF}(t) = \langle \boldsymbol{\omega}(t) \cdot \boldsymbol{\omega}(t + \tau) \rangle_{\tau} ,
-\end{eqnarray}
-respectively. Here, $\mathbf{v}$ is the velocity and $\boldsymbol{\omega}$ is
-the angular velocity, and the brackets $\langle \rangle_{\tau}$ indicate time
-averaging over $\tau$. The first task is to get the script up and running. Once
-you have done this, you will find that you can output a single measurement of
-the MSD and (A)VACF for a passive system (\codees{vel=0.0}) or an active on
-(e.g., \codees{vel=5.0}). You can visualize these using
-\codees{matplotlib.pyplot}, for instance. To plot the total MSD,
-you need to sum up the contributions from the different components (x, y and z).
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=0.75]{FIGURES/enhanced}
-\end{center}
-\caption{\label{fig:enhanced}(a) Averaged MSD with standard error for the
-passive and active particle. The dependence of the MSD on time ($t$) has been
-indicated with guides to the eye. (b) The AVACF for the same system. Note that
-the activity does not influence the rotational behavior.}
-\end{figure}
-
-Despite the long run length, the quality of the MSD and (A)VACF can be lacking.
-It is therefore recommended that you output 5 uncorrelated data files. The
-Python script is designed to facilitate you doing this. Once you have obtained
-this data for a velocity of \codees{vel=0.0} (passive) and \codees{vel=5.0}
-active particle, you can average over these and obtain a mean and standard
-error for your data. You will be pleased to find that indeed, there is enhanced
-diffusion for the active system and that the ballistic regime is stretched
-compared to the passive case, see Fig.~\ref{fig:enhanced}(a). Contrasting the
-passive and active AVACFs shows that the rotational properties are unaffected
-(Fig.~\ref{fig:enhanced}(b)), as expected.
-
-\section{\label{sec:rectify}Rectification}
-
-In this tutorial you will consider the `rectifying' properties of certain
-geometries on active systems. Rectification can best be understood by
-considering a system of passive particles first. In an in-equilibrium system,
-for which the particles are confined to an asymmetric box, we know that the
-particle density is homogeneous throughout, provided that there are no external
-potentials acting on the particles. There are, of course, limitations involving
-the particle size and the size of the geometry, but for an ideal gas this is
-certainly true. However, in an out-of-equilibrium setting one can have a
-heterogeneous distribution of particles, which limits the applicability of an
-`effective' temperature description. For instance, self-propelled particles
-will move in a preferred direction a series of wedge-shaped
-obstacles~\cite{Berdakin13a}. If the obstacles are in a closed tube, then the
-self-propelled particles will accumulate on one end. Since the speed at which
-they accumulate depends on their self-motility, different bacteria can be
-separated in this way~\cite{Berdakin13b}.
-
-\subsection{\label{sub:rgtut}The Rectifying-Geometry Tutorial}
-
-Here, we will set up a rectifying geometry. In the folder EXERCISES you will
-find the \code{rectification_geometry.py} file. This will help you construct
-and visualize a rectifying geometry of a cylindrical chamber with a wedge-like
-obstacle in the center, see Fig.~\ref{fig:system}(a). You will first need to
-complete the exercises before the script evaluates properly. The wedge-like
-obstacle causes rectification when the particles are self-propelled. As you can
-see the LB is used and the rectifying geometry is built by adding instances of
-the \codees{LBBoundary} class to the system, see the User Guide for more
-information~\cite{UG}. The reason for the use of LB is to help visualize the
-geometry. An alternative is the OpenGL visualizer included with \es{}.
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=1.0]{FIGURES/geometry}
-\end{center}
-\caption{\label{fig:system}(a) Sketch of the rectifying geometry which we
-simulate for this tutorial. (b) The geometry of the \codees{HollowCone}
-constraint and \codees{LBBoundary}. The figure is cylindrically symmetric about
-the x-axis. The size of the pore opening is determined by $r_{i}$, the length
-of the cone by $r_{o}$ and the opening angle by $\alpha$. Finally, the pore is
-given a width using the parameter $w$.}
-\end{figure}
-
-The first block of the script sets up the basic simulation parameters, with
-which you should be familiar -- if you are struggling with this part, please
-consult the previous tutorials. The second block sets up the boundaries using
-instances of \codees{LBBoundary}, as was introduced in the LB tutorial. Here it
-is worth noting that the geometric parameters of the \codees{HollowCone}
-command are somewhat counterintuitive. They are illustrated in
-Fig.~\ref{fig:system}(b) for clarification. Finally, in the third block the
-code
-\begin{espresso}
-lbf.print_vtk_boundary("{}/boundary.vtk".format(outdir))
-\end{espresso}
-ensures that the boundary data is exported to a \codees{.vtk} file. This file
-can be read in and visualized using the program \code{ParaView}, which should
-have been introduced in the LB and Electrostatics tutorials. Here, we briefly
-comment on how the geometry can be visualized. In the command prompt type
-\begin{bash}
-$ paraview &
-\end{bash}
-to open ParaView. Open the relevant \code{.vtk} file (in our case
-\code{boundary.vtk}). Click the green \code{Apply} button. Now add a
-\code{Clip} from the ribbon just above the Pipeline Browser to the highlighted
-\code{boundary.vtk} entry. Within the \code{Clip} \code{Properties} tab, select
-\code{Scalar} in the \code{Clip Type} drop-down tab. Then set the value of the
-scalar to 0.1 with the slide (or by typing in the field) and tick the
-\code{Inside Out} box. Click \code{Apply}, next slide the \code{Opacity} slide
-to 0.25, to visualize the inside of the geometry that you have created, see
-Fig.~\ref{fig:rectify}(a).
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=0.75]{FIGURES/rectify}
-\end{center}
-\caption{\label{fig:rectify}(a) Snapshot of the rectifying geometry, as visualized with \code{ParaView}. (b) Final state for the system with 500 particles and \codees{vel=5.0}. Note that there are more particles in the left-hand chamber, due to the rectification.}
-\end{figure}
-
-\subsection{\label{sub:rstut}The Rectification Tutorial}
-
-Now we will study the effectiveness of our rectifying geometry. In the folder
-EXERCISES you will find the \code{rectification_simulation.py} file. This
-Python script will allow the user to appreciate the differences between a
-passive and an active `ideal gas' in the above geometry. Again, you will have
-to complete the exercises to obtain a functioning script. N.B. Once up and
-running, the simulation takes quite a while ($\sim20$ min) on a modern desktop.
-We recommend that you proceed with the final exercise while the simulation is
-running.
-
-The first block of the script introduces a procedure to convert a rotation
-given in spherical coordinates by the azimuthal and polar angle $\theta$ and
-$\phi$, respectively, to a quaternion. The code
-\begin{espresso}
-def a2quat(phi,theta):
-
- q1w = cos(theta/2.0)
- q1x = 0
- q1y = sin(theta/2.0)
- q1z = 0
-
- q2w = cos(phi/2.0)
- q2x = 0
- q2y = 0
- q2z = sin(phi/2.0)
-
- q3w = (q1w*q2w-q1x*q2x-q1y*q2y-q1z*q2z)
- q3x = (q1w*q2x+q1x*q2w-q1y*q2z+q1z*q2y)
- q3y = (q1w*q2y+q1x*q2z+q1y*q2w-q1z*q2x)
- q3z = (q1w*q2z-q1x*q2y+q1y*q2x+q1z*q2w)
-
- return [q3w,q3x,q3y,q3z]
-\end{espresso}
-essentially implements the geometric relation
-\begin{equation}
- \begin{pmatrix}
- w \\ x \\ y \\ z \\
- \end{pmatrix}
- =
- \begin{pmatrix}
- \cos(\alpha/2) \\
- \sin(\alpha/2)\ n_x \\
- \sin(\alpha/2)\ n_y \\
- \sin(\alpha/2)\ n_z \\
- \end{pmatrix}
-\end{equation}
-where $\alpha$ is the angle and $\mathbf{n} = (n_x,n_y,n_z)$ is the
-axis of rotation. This relation is used for both rotation axes and subsequently
-the two expressions are quaternion multiplied to obtain the full rotation. This
-procedure will be used later to draw (almost) random quaternions. The rest of
-the block deals with standard input and output and parameter/simulation
-definitions.
-
-The second block of the script uses the geometric parameters from the
-\code{rectification_geometry.py} script to establish the constraints that keep
-the particles inside of the confining geometry. The relevant \es{} command is
-\codees{system.constraints.add()} and has already been introduced in the basic
-tutorial. Next we set up interactions between the geometry and the particles
---- in this case the almost-hard WCA interaction --- to ensure that they are
-trapped. In the fourth block, the geometry is seeded with particles, two clouds
-of equal size in the respective chambers. This is done to ensure that the
-equilibration time for the system is limited. That is, if you had set up all
-particles in a single chamber, there would obviously be flow from the full
-chamber to the empty one, despite the system being passive (in equilibrium), as
-the density is homogenized.
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=1.0]{FIGURES/rectification}
-\end{center}
-\caption{\label{fig:rectification}The change in the position of the CMS for the
-rectifying geometry with particles. The passive system fluctuates around zero
-(mid-way in the box), while the active one shows an accumulation of particles
-in one of the chambers.}
-\end{figure}
-
-The final block is concerned with measuring the rectifying properties of this
-geometry. We do so with a convenient parameter, namely the center of mass (CMS)
-of the system. You can use the \es{} command
-\codees{system.galilei.system_CMS()} to determine it directly~\cite{UG}. If the
-system is passive, then the CMS should fluctuate around the center of the box.
-However, if there is rectification, this can be seen as a deviation of the CMS
-from this center. Figure~\ref{fig:rectification} shows the evolution of the CMS
-as a function of time for passive and active (a velocity of 5.0) particles in
-the system. The script also outputs a snapshot of the final coordinates of the
-particles using the line
-\begin{espresso}
-system.part.writevtk("{}/points_{}.vtk".format(outdir,vel),types=[0])
-\end{espresso}
-The \codees{writevtk} command outputs the coordinates of the particles of type
-0 to a file that is ParaView readable. You can now show how the particles are
-distributed in the geometry that you visualized in the previous section. To do
-so, choose the relevant \code{.vtk} file,~\textit{e.g.}, \code{points_5.0.vtk}
-and load it into ParaView. Now add a \code{Glyph} from the ribbon just above
-the Pipeline Browser to the highlighted \code{points_5.0.vtk} entry. Select
-\code{Sphere} from the \code{Glyph Type} drop down. Scroll down and select
-\code{off} in the \code{Scale Mode} drop down. Tick the \code{Edit} box and set
-the scale factor to 1.0, then select \code{All Points} from the
-\code{Glyph Mode} drop down. As you can see, there are clearly far more
-particles in the `front' chamber, than there are in the other, see
-Fig.~\ref{fig:rectify}(b). This can be explained by the fact that the activity
-makes it easier to take the barrier in one direction than in the other. Or in
-technical terms: the equivalence between thermodynamic pressure and mechanical
-pressure is lost.
-
-\section{\label{sec:flow}Flow Field around a Swimmer}
-
-As previously discussed, the flow field around an active particle should not
-contain a monopolar term. At least, not when there are no other forces acting
-on the particle. In this tutorial, we will examine the flow field around the
-two basic types of active swimmer: pushers and pullers. The nature of these
-flow fields ultimately determine how particles interact with their
-surroundings. That is, whether they are attracted to walls or repelled by
-them~\cite{Spagnolie_12}, how they stir tracer beads in the
-fluid~\cite{Morozov_14}, and how they move collectively~\cite{Zoettl_14}.
-However, it goes beyond the scope of this tutorial to discuss all of these
-points in detail.
-
-\subsection{\label{sub:fftut}The Flow-Field Tutorial}
-
-Now we will study the flow field around a simple pusher and puller particle in
-\es{}. In the folder EXERCISES you will find the \code{flow_field.py} file.
-Once again, you will have to complete the excercises to obtain a functioning
-script. The structure of the blocks and their content should by now be
-straightforward for you to understand on the basis of the previous tutorials
-and the information provided here. We will therefore focus on the use of this
-script.
-
-\begin{figure}[!htb]
-\begin{center}
-\includegraphics[scale=0.75]{FIGURES/flow_field}
-\end{center}
-\caption{\label{fig:flow_field}(a) Snapshot of the flow field around a pusher particle visualized with ParaView.}
-\end{figure}
-
-First run the simulation for a puller particle and a position of 0.0. This will
-generate output in the directory that you have set up. Examine the content of
-this folder and, in particular, the \code{trajectory.dat} file. From the final
-line of this file, you can determine the position of the swimmer at the end of
-the run. Now rerun the script with a modified position value, such that the
-particle ends up in the center of the box. This generates a second directory.
-Now go into this directory and open ParaView. Using the techniques you have
-learned in the above tutorial, you can visualize the particle, and using the
-methods you have picked up in the Electrokinetics tutorial, you can visualize
-the fluid flow around this particle using,~\textit{e.g.}, stream lines, a
-slice, or arrows. When you are done, the result could look like
-Fig.~\ref{fig:flow_field}.
-
-\section{\label{sec:end}Concluding Remarks}
-
-With that, you have come to the end of this tutorial. We hope you found it
-informative and that you have a sufficient understanding of the way to deal
-with active matter in \es{} to set up simulations on your own.
-
-\section*{\label{sec:bib}Bibliography}
-
-\bibliographystyle{unsrt}
-\bibliography{refs}
-
-\end{document}
-
-%%% Local Variables:
-%%% mode: latex
-%%% End:
diff --git a/doc/tutorials/06-active_matter/CMakeLists.txt b/doc/tutorials/06-active_matter/CMakeLists.txt
index 9c21b211704..7ab972d2911 100644
--- a/doc/tutorials/06-active_matter/CMakeLists.txt
+++ b/doc/tutorials/06-active_matter/CMakeLists.txt
@@ -1,15 +1,9 @@
file(COPY "EXERCISES" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
file(COPY "SOLUTIONS" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
+file(COPY "FIGURES" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
-get_filename_component(BASENAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+configure_file(06-active_matter.ipynb ${CMAKE_CURRENT_BINARY_DIR}/06-active_matter.ipynb COPYONLY)
-add_custom_command(
- OUTPUT ${BASENAME}.pdf
- COMMAND sh ../../latexit.sh
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${BASENAME}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${BASENAME}.tex
- ${CMAKE_CURRENT_SOURCE_DIR}
-)
+add_custom_target(tutorials_06)
-add_custom_target(tutorials_06 DEPENDS ${BASENAME}.pdf)
+nb_export(TUTORIAL tutorials_06 FILE "06-active_matter.ipynb" HTML_RUN)
diff --git a/doc/tutorials/06-active_matter/FIGURES/enhanced.svg b/doc/tutorials/06-active_matter/FIGURES/enhanced.svg
new file mode 100644
index 00000000000..280c9823afe
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/enhanced.svg
@@ -0,0 +1,3987 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/flow_field.svg b/doc/tutorials/06-active_matter/FIGURES/flow_field.svg
new file mode 100644
index 00000000000..b6e5bb8e527
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/flow_field.svg
@@ -0,0 +1,31 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/friction.svg b/doc/tutorials/06-active_matter/FIGURES/friction.svg
new file mode 100644
index 00000000000..c1cc98ff17d
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/friction.svg
@@ -0,0 +1,109 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/geometry.svg b/doc/tutorials/06-active_matter/FIGURES/geometry.svg
new file mode 100644
index 00000000000..e8dc3ac3699
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/geometry.svg
@@ -0,0 +1,285 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/pusher-puller.svg b/doc/tutorials/06-active_matter/FIGURES/pusher-puller.svg
new file mode 100644
index 00000000000..555ff4dacd7
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/pusher-puller.svg
@@ -0,0 +1,477 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/rectification.svg b/doc/tutorials/06-active_matter/FIGURES/rectification.svg
new file mode 100644
index 00000000000..f6239fb0ed8
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/rectification.svg
@@ -0,0 +1,220 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/FIGURES/rectify.svg b/doc/tutorials/06-active_matter/FIGURES/rectify.svg
new file mode 100644
index 00000000000..3e1610e78d3
--- /dev/null
+++ b/doc/tutorials/06-active_matter/FIGURES/rectify.svg
@@ -0,0 +1,43 @@
+
+
\ No newline at end of file
diff --git a/doc/tutorials/06-active_matter/refs.bib b/doc/tutorials/06-active_matter/refs.bib
deleted file mode 100644
index 27a7520fcec..00000000000
--- a/doc/tutorials/06-active_matter/refs.bib
+++ /dev/null
@@ -1,1683 +0,0 @@
-@article{Uspal_14,
- author = {Uspal, W.E. and Popescu, M. and Dietrich, S. and Tasinkevych, M.},
- title = {Self-propulsion of a catalytically active particle near a planar wall: from reflection to sliding and hovering},
- journal = {Soft Matter},
- year = {2014},
- volume = {-},
- pages = {-},
-}
-
-@Article{ilse16a,
- title = {Surface roughness stabilizes the clustering of self-propelled triangles},
- author = {Ilse, Sven Erik and Holm, Christian and de Graaf, Joost},
- journal = {The Journal of Chemical Physics},
- year = {2016},
- number = {13},
- pages = {134904},
- volume = {145},
- doi = {10.1063/1.4963804},
- file = {ilse16a.pdf:ilse16a.pdf:PDF},
- owner = {aweyman},
- publisher = {AIP Publishing}
-}
-
-@Article{degraaf16b,
- title = {Understanding the onset of oscillatory swimming in microchannels},
- author = {de Graaf, Joost and Mathijssen, Arnold JTM and Fabritius, Marc and Menke, Henri and Holm, Christian and Shendruk, Tyler N},
- journal = {Soft Matter},
- year = {2016},
- number = {21},
- pages = {4704--4708},
- volume = {12},
- doi = {10.1039/C6SM00939E},
- file = {degraaf16b.pdf:degraaf16b.pdf:PDF},
- owner = {aweyman},
- publisher = {Royal Society of Chemistry}
-}
-
-@article{Mood_13b,
- title = {Molecular Dynamics Simulation of the Motion of Colloidal Nanoparticles in a Solute Concentration Gradient and a Comparison to the Continuum Limit},
- author = {Sharifi-Mood, N. and Koplik, J. and Maldarelli, C.},
- journal = {Phys. Rev. Lett.},
- volume = {111},
- pages = {184501},
- year = {2013},
-}
-
-@article{Holz,
- author = {Holz, M. and Heil, S.R. and Sacco, A.},
- title = {Temperature-dependent self-diffusion coefficients of water and six selected molecular liquids for calibration in accurate 1H NMR PFG measurements},
- journal = {Phys. Chem. Chem. Phys.},
- year = {2000},
- volume = {2},
- pages = {4740},
-}
-
-@article{Lee_14,
- author = {Lee, T.-C. and Alarc\'{o}n-Correa, M. and Miksch, C. and Hahn, K. and Gibbs, J.G. and Fischer, P.},
- title = {Self-Propelling Nanomotors in the Presence of Strong Brownian Forces},
- journal = {Nano Lett.},
- volume = {14},
- pages = {2407},
- year = {2014},
-}
-
-@article{islam_14,
- author = {Khalil, I.S.M. and Magdanz, V. and Sanchez, S. and Schmidt, O.G. and Misra, S.},
- title = {Wireless Magnetic-Based Closed-Loop Control of Self-Propelled Microjets},
- journal = {PLoS ONE},
- volume = {9},
- pages = {e83053},
- year = {2014},
-}
-
-@article{ismagilov,
- author = {Ismagilov, R.F. and Schwartz, A. and Bowden, N. and Whitesides, G.M.},
- title = {Autonomous Movement and Self-Assembly},
- journal = {Angew. Chem. Int. Ed.},
- volume = {41},
- pages = {652},
- year = {2002},
-}
-
-@article{purcell,
- author = {Purcell, E.M.},
- title = {Life at low Reynolds number},
- journal = {Am. J. Phys.},
- year = {1977},
- volume = {45},
- pages = {3-11},
-}
-
-@article{Anderson,
- author = {Anderson, J.L.},
- title = {Colloid Transport by Interfacial Forces},
- journal = {Annu. Rev. Fluid Mech.},
- volume = {21},
- pages = {61},
- year = {1989},
-}
-
-@article{Mood_13,
- author = {Sharifi-Mood, N. and Koplik, J. and Maldarelli, C.},
- title = {Diffusiophoretic self-propulsion of colloids driven by a surface reaction: The sub-micron particle regime for exponential and van der Waals interactions},
- journal = {Phys. Fluids},
- year = {2013},
- volume = {25},
- pages = {-},
-}
-
-@book{Schumb,
- author = {Schumb, W.C. and Satterfield, C.N. and Wentworth, R.L.},
- title = {Hydrogen Peroxide -- ACS Monograph Series},
- publisher = {Reinhold (New York)},
- year = {1955},
- edition = {1st},
- pages = {-},
-}
-
-@book{Groot_Mazur,
- author = {de Groot, S.R. and Mazur, P.},
- title = {Non-Equilibrium Thermodynamics},
- publisher = {Dover Publications (New York)},
- year = {1984},
- edition = {1st},
- pages = {-},
-}
-
-@book{DeHoff_06,
- author = {DeHoff, R.},
- title = {Thermodynamics in Materials Science},
- publisher = {CRC Press (Boca Raton)},
- year = {2006},
- edition = {2nd},
- pages = {-},
-}
-
-@article{Lauga_14,
- author = {Michelin, S. and Lauga, E.},
- title = {Phoretic self-propulsion at finite Peclet number},
- journal = {J. Fluid Mech.},
- year = {2014},
- volume = {747},
- pages = {572},
-}
-
-@article{Lauga_12,
- author = {S.E. Spagnolie and E. Lauga},
- title = {Hydrodynamics of self-propulsion near a boundary: predictions and accuracy of far-field approximations},
- journal = {J. Fluid Mech.},
- year = {2012},
- volume = {700},
- pages = {105},
-}
-
-@article{Brady_14,
- author = {Shklyaev, S. and Brady, J.F. and Cordova-Figueroa, U.M.},
- title = {Non-spherical osmotic motor: chemical sailing},
- journal = {J. Fluid Mech.},
- year = {2014},
- volume = {748},
- pages = {488},
-}
-
-@article{Brady_13,
- author = {Cordova-Figueroa, U.M. and Brady, J.F. and Shklyaev, S.},
- title = {Osmotic propulsion of colloidal particles via constant surface flux},
- journal = {Soft Matter},
- year = {2013},
- volume = {9},
- pages = {638},
-}
-
-@article{Brady_08,
- title = {Osmotic Propulsion: The Osmotic Motor},
- author = {C\'{o}rdova-Figueroa, U.M. and Brady, J.F.},
- journal = {Phys. Rev. Lett.},
- volume = {100},
- pages = {158303},
- year = {2008},
-}
-
-
-@article{Brady_11,
- author = {J.F. Brady},
- title = {Particle motion driven by solute gradients with application to autonomous motion: continuum and colloidal perspectives},
- journal = {J. Fluid Mech.},
- volume = {667},
- pages = {216},
- year = {2011},
-}
-
-@article{Sridhar,
- author = {Sridhar, T. and Potter, O.E.},
- title = {DIFFUSION COEFFICIENT OF OXYGEN IN LIQUIDS},
- journal = {Chem. Eng. Commun.},
- volume = {21},
- pages = {47},
- year = {1983},
-}
-
-@article{Bartels,
- author = {Han, P. and Bartels, D.M.},
- title = {Temperature Dependence of Oxygen Diffusion in H2O and D2O},
- journal = {J. Phys. Chem.},
- volume = {100},
- pages = {5597},
- year = {1996},
-}
-
-@article{St-Denis,
- author = {St-Denis, C.E. and Fell, C.J.D.},
- title = {Diffusivity of oxygen in water},
- journal = {Can. J. Chem. Eng.},
- volume = {49},
- pages = {885},
- year = {1971},
-}
-
-@article {Stern,
- author = {Stern, K.G.},
- title = {\"{U}ber die Diffusion des Hydroperoxyds in verschiedenen L\"{o}sungsmitteln},
- journal = {Ber. Dtsch. Chem. Ges.},
- volume = {66},
- pages = {547},
- year = {1933},
-}
-
-@article{Brown,
- title = {Ionic effects in self-propelled Pt-coated Janus swimmers},
- author = {Brown, A. and Poon, W.},
- journal = {Soft Matter},
- volume = {10},
- pages = {4016-4027},
- year = {2014},
-}
-
-@article{simmchen,
- title = {Effect of surfactants on the performance of tubular and spherical micromotors -- a comparative study},
- author = {Simmchen, J. and Magdanz, V. and Sanchez, S. and Chokmaviroj, S. and Ruiz-Molina, D. and Baeza, A. and Schmidt, O.G.},
- journal = {RSC Adv.},
- year = {2014},
- volume = {4},
- pages = {20334},
-}
-
-@article{Bloomfield,
- author = {Bloomfield, V.A. and Dewan, R.K.},
- title = {Viscosity of liquid mixtures},
- journal = {J. Phys. Chem.},
- volume = {75},
- pages = {3113},
- year = {1971},
-}
-
-@article{Curtiss,
- author = {Curtiss, C.F. and Bird, R.B.},
- title = {Multicomponent Diffusion},
- journal = {Ind. Eng. Chem. Res.},
- volume = {38},
- pages = {2515},
- year = {1999},
-}
-
-@book{israel,
- author = {Israelachvili, J. N.},
- title = {Intermolecular and Surface Forces},
- publisher = {Academic Press (London)},
- year = {1992},
- edition = {2nd},
- pages = {-},
-}
-
-@book{Bird,
- author = {R.B. Bird and W.E. Steward and E.N. Lightfoot},
- title = {Transport Phenomena},
- publisher = {John Wiley \& Sons, Inc. (New York)},
- year = {2002},
- edition = {2nd},
- pages = {-},
-}
-
-@article{Hall1,
- title={Electrochemical oxidation of hydrogen peroxide at platinum electrodes. Part 1. An adsorption-controlled mechanism},
- author={S.B. Hall and E.A. Khudaish and A.L. Hart},
- journal={Electrochim. Acta},
- volume={43},
- pages={579},
- year={1997},
-}
-
-@article{Hall2,
- title={Electrochemical oxidation of hydrogen peroxide at platinum electrodes. Part II: effect of potential},
- author={S.B. Hall and E.A. Khudaish and A.L. Hart},
- journal={Electrochim. Acta},
- volume={43},
- pages={2015},
- year={1997},
-}
-
-@article{Bickel,
- title = {Flow pattern in the vicinity of self-propelling hot Janus particles},
- author = {Bickel, T. and Majee, A. and W\"{u}rger, A.},
- journal = {Phys. Rev. E},
- volume = {88},
- pages = {012301},
- year = {2013},
-}
-
-@article{Yoshinaga,
- title = {Active Motion of a Janus Particle by Self-Thermophoresis in a Defocused Laser Beam},
- author = {Jiang, H.-R. and Yoshinaga, N. and Sano, M.},
- journal = {Phys. Rev. Lett.},
- volume = {105},
- pages = {268302},
- year = {2010},
-}
-
-
-@article{Ebbens,
- title={Electrokinetic effects in catalytic platinum-insulator Janus swimmers},
- author={S. Ebbens and D.A. Gregory and G. Dunderdale and J.R. Howse and Y. Ibrahim and T.B. Liverpool and R. Golestanian},
- journal={Euro. Phys. Lett.},
- volume={106},
- pages={58003},
- year={2014},
-}
-
-@article{Zwanikken_08,
- title = {Stability of additive-free water-in-oil emulsions},
- author = {Zwanikken, J. and de Graaf, J. and Bier, M. and van Roij, R.},
- journal = {J. Phys.: Condens. Matter},
- volume = {20},
- pages = {494238},
- year = {2008},
-}
-
-@article{Zoettl_12,
- title = {Nonlinear Dynamics of a Microswimmer in Poiseuille Flow},
- author = {Z{\"o}ttl, A. and Stark, H.},
- journal = {Phys. Rev. Lett.},
- volume = {108},
- pages = {218104},
- year = {2012},
-}
-
-@article{Zheng_13,
- title = {Non-Gaussian statistics for the motion of self-propelled Janus particles: experiment versus theory},
- author = {Zheng, X. and ten Hagen, B. and Kaiser, A. and Wu, M. and Cui, H. and Silber-Li, Z. and L{\"o}wen, H.},
- journal = {Phys. Rev. E},
- volume = {88},
- pages = {032304},
- year = {2013},
-}
-
-@article{Cates_12,
- author={M.E. Cates},
- title={Diffusive transport without detailed balance in motile bacteria: does microbiology need statistical physics?},
- journal={Rep. Prog. Phys.},
- volume={75},
- pages={042601},
- year={2012},
-}
-
-@article{Zhao_12,
- title = {Micromotors with built-in compasses},
- author = {Zhao, G. and Sanchez, S. and Schmidt, O. G. and Pumera, M.},
- journal = {Chem. Commun.},
- volume = {48},
- pages = {10090},
- year = {2012},
-}
-
-@article{Yang_14,
- title = {Hydrodynamic simulations of self-phoretic microswimmers},
- author = {Yang, M. and Wysocki, A. and Ripoll, M.},
- journal = {Soft Matter},
- volume = {10},
- pages = {6280},
- year = {2014},
-}
-
-@article{Yang_11,
- title = {Simulations of thermophoretic nanoswimmers},
- author = {Yang, M. and Ripoll, M.},
- journal = {Phys. Rev. E},
- volume = {84},
- pages = {061401},
- year = {2011},
-}
-
-@article{Yan_12,
- title = {Linking synchronization to self-assembly using magnetic Janus colloids},
- author = {Yan, J. and Bloom, M. and Bae, S. C. and Luijten, E. and Granick, S.},
- journal = {Nature},
- volume = {491},
- pages = {578},
- year = {2012},
-}
-
-@article{Helbing_00,
- title = {Simulating dynamical features of escape panic},
- author = {Helbing, D. and Farkas, I. and Vicsek, T.},
- journal = {Nature},
- volume = {407},
- pages = {487},
- year = {2000},
-}
-
-@incollection{Zhang_13,
- year={2013},
- booktitle={Traffic and Granular Flow '11},
- editor={Kozlov, Valery V. and Buslaev, Alexander P. and Bugaev, Alexander S. and Yashina, Marina V. and Schadschneider, Andreas and Schreckenberg, Michael},
- title={Experimental Study of Pedestrian Flow Through a T-Junction},
- publisher={Springer (Berlin/Heidelberg)},
- author={Zhang, J. and Klingsch, W. and Schadschneider, A. and Seyfried, A.},
- pages={241},
-}
-
-@article{John_04,
- title = {Collective effects in traffic on bi-directional ant trails},
- journal = {J. Theor. Biol.},
- volume = {231},
- pages = {279},
- year = {2004},
- author = {A. John and A. Schadschneider and D. Chowdhury and K. Nishinari},
-}
-
-@article{Sokolov_07,
- title = {Concentration Dependence of the Collective Dynamics of Swimming Bacteria},
- author = {Sokolov, A. and Aranson, I.S. and Kessler, J.O. and Goldstein, R.E.},
- journal = {Phys. Rev. Lett.},
- volume = {98},
- pages = {158102},
- year = {2007},
-}
-
-@article{Ma_14,
- title = {Active Phase and Amplitude Fluctuations of Flagellar Beating},
- author = {Ma, R. and Klindt, G.S. and Riedel-Kruse, I.H. and J\"{u}licher, F. and Friedrich, B.M.},
- journal = {Phys. Rev. Lett.},
- volume = {113},
- pages = {048101},
- year = {2014},
-}
-
-
-@article{Polin_09,
- author = {Polin, M. and Tuval, I. and Drescher, K. and Gollub, J.P. and Goldstein, R.E.},
- title = {Chlamydomonas Swims with Two ``Gears'' in a Eukaryotic Version of Run-and-Tumble Locomotion},
- volume = {325},
- pages = {487},
- year = {2009},
- journal = {Science},
-}
-
-@article{Reufer_14,
- title = {Switching of Swimming Modes in Magnetospirillium gryphiswaldense},
- journal = {Biophys. J.},
- volume = {106},
- pages = {37},
- year = {2014},
- author = {M. Reufer and R. Besseling and J. Schwarz-Linek and V.A. Martinez and A.N. Morozov and J. Arlt and D. Trubitsyn and F.B. Ward and W.C.K. Poon},
-}
-
-@article{Geyer_13,
- author = {Geyer, V.F. and J\"{u}licher, F. and Howard, J. and Friedrich, B.M.},
- title = {Cell-body rocking is a dominant mechanism for flagellar synchronization in a swimming alga},
- volume = {110},
- pages = {18058},
- year = {2013},
- journal = {Proc. Nat. Acad. Sci.},
-}
-
-@article{Schwarz-Linek_12,
- author = {Schwarz-Linek, J. and Valeriani, C. and Cacciuto, A. and Cates, M. E. and Marenduzzo, D. and Morozov, A. N. and Poon, W. C. K.},
- title = {Phase separation and rotor self-assembly in active particle suspensions},
- volume = {109},
- pages = {4052},
- year = {2012},
- journal = {Proc. Nat. Acad. Sci.},
-}
-
-@article{Woolley_03,
- author = {Woolley, D.M.},
- title = {Motility of spermatozoa at surfaces},
- volume = {126},
- pages = {259},
- year = {2003},
- journal = {Reproduction},
-}
-
-@article{Riedel_05,
- author = {Riedel, I.H. and Kruse, K. and Howard, J.},
- title = {A Self-Organized Vortex Array of Hydrodynamically Entrained Sperm Cells},
- volume = {309},
- number = {5732},
- pages = {300},
- year = {2005},
- journal = {Science},
-}
-
-@article{Katz_11,
- author = {Katz, Y. and Tunstr{\o}m, K. and Ioannou, C.C. and Huepe, C. and Couzin, I.D.},
- title = {Inferring the structure and dynamics of interactions in schooling fish},
- volume = {108},
- number = {46},
- pages = {18720},
- year = {2011},
- journal = {Proc. Nat. Acad. Sci.},
-}
-
-@article{Buhl_06,
- author = {Buhl, J. and Sumpter, D. J. T. and Couzin, I. D. and Hale, J. J. and Despland, E. and Miller, E. R. and Simpson, S. J.},
- title = {From Disorder to Order in Marching Locusts},
- volume = {312},
- pages = {1402},
- year = {2006},
- journal = {Science},
-}
-
-@article{Perez_14,
- author = {Restrepo-Perez, L. and Soler, L. and Martinez-Cisneros, C. and Sanchez, S.l and Schmidt, O.G.},
- title = {Biofunctionalized self-propelled micromotors as an alternative on-chip concentrating system},
- journal = {Lab Chip},
- year = {2014},
- volume = {14},
- pages = {2914},
-}
-
-@article{Sliverberg_13,
- title = {Collective Motion of Humans in Mosh and Circle Pits at Heavy Metal Concerts},
- author = {Silverberg, J.L. and Bierbaum, M. and Sethna, J.P. and Cohen, I.},
- journal = {Phys. Rev. Lett.},
- volume = {110},
- pages = {228701},
- year = {2013},
-}
-
-@article{Wang_14,
- author = {Wang, W. and Li, S. and Mair, L. and Ahmed, S. and Huang, T.J. and Mallouk, T.E.},
- title = {Acoustic Propulsion of Nanorod Motors Inside Living Cells},
- journal = {Angew. Chem. Int. Ed.},
- volume = {53},
- pages = {3201},
- year = {2014},
-}
-
-@article{Cates_14,
- title = {Motility-Induced Phase Separation},
- author = {Cates, M.E. and Tailleur, J.},
- journal = {Annu. Rev. Condens. Matter Phys.},
- volume = {6},
- pages = {219},
- year = {2015},
-}
-
-@article{Wolff_13,
- title = {Sedimentation and orientational order of active bottom-heavy particles},
- author = {Wolff, K. and Hahn, A. M. and Stark, H.},
- journal = {Eur. Phys. J. E},
- volume = {36},
- pages = {43},
- year = {2013},
-}
-
-@article{Wilson_13b,
- title = {Fuel concentration dependent movement of supramolecular catalytic nanomotors},
- author = {Wilson, Daniela A. and de Nijs, Bart and van Blaaderen, Alfons and Nolte, Roeland J. M. and van Hest, Jan C. M.},
- journal = {Nanoscale},
- volume = {5},
- pages = {1315},
- year = {2013},
-}
-
-@article{Wilson_13a,
- title = {Autonomous movement of platinum-loaded stomatocytes},
- author = {Wilson, D. A. and Nolte, R. J. M. and van Hest, J. C. M.},
- journal = {Nat. Chem.},
- volume = {4},
- pages = {268},
- year = {2012},
-}
-
-@article{Wilson_12,
- title = {Entrapment of Metal Nanoparticles in Polymer Stomatocytes},
- author = {Wilson, D. A. and Nolte, R. J. M. and van Hest, J. C. M.},
- journal = {J. Am. Chem. Soc.},
- volume = {134},
- pages = {9894},
- year = {2012},
-}
-
-@article{Wensink_13,
- title = {Controlling active self-assembly through broken particle symmetries},
- author = {Wensink, H. H. and Kantsler, V. and Goldstein, R. E. and Dunkel, J.},
- journal = {Phys. Rev. E},
- volume = {89},
- pages = {010302(R)},
- year = {2014},
-}
-
-@article{Wensink_12,
- title = {Meso-scale turbulence in living fluids},
- author = {Wensink, H. H. and Dunkel, J. and Heidenreich, S. and Drescher, K. and Goldstein, R. E. and L{\"o}wen, H. and Yeomans, J. M.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {109},
- pages = {14308},
- year = {2012},
-}
-
-@article{Wang_06,
- title = {Bipolar Electrochemical Mechanism for the Propulsion of Catalytic Nanomotors in Hydrogen Peroxide Solutions},
- author = {Wang, Y. and Hernandez, R. M. and Bartlett, D. J. and Bingham, J. M. and Kline, T. R. and Sen, A. and Mallouk, T. E.},
- journal = {Langmuir},
- volume = {22},
- pages = {10451},
- year = {2006},
-}
-
-@article{Wan_13,
- title = {Directed motion of elongated active polymers},
- author = {Wan, M.-B. and Jho, Y. S.},
- journal = {Soft Matter},
- volume = {9},
- pages = {3255},
- year = {2013},
-}
-
-@article{Wan_09,
- title = {Rectification of Swimming Bacteria and Self-Driven Particle Systems by Arrays of Asymmetric Barriers},
- author = {Wan, M. B. and Olson Reichhardt, C. J. and Nussinov, Z. and Reichhardt, C.},
- journal = {Phys. Rev. Lett.},
- volume = {101},
- pages = {018102},
- year = {2008},
-}
-
-@article{Volpe_11,
- title = {Microswimmers in patterned environments},
- author = {Volpe, G. and Buttinoni, I. and Vogt, D. and Kummerer, H.-J. and Bechinger, C.},
- journal = {Soft Matter},
- volume = {7},
- pages = {8810},
- year = {2011},
-}
-
-@article{Vicsek_12,
- title = {Collective motion},
- author = {Vicsek, T. and Zafeiris, A.},
- journal = {Phys. Rep.},
- volume = {517},
- pages = {71},
- year = {2012},
-}
-
-@article{Vicsek_00,
- title = {Simulating dynamical features of escape panic},
- author = {Helbing, D. and Farkas, I. and Vicsek, T.},
- journal = {Nature},
- volume = {407},
- pages = {487},
- year = {2000},
-}
-
-@article{Vicsek_95,
- title = {Novel Type of Phase Transition in a System of Self-Driven Particles},
- author = {Vicsek, T. and Czir{\'o}k, A. and Ben-Jacob, E. and Cohen, I. and Shochet, O.},
- journal = {Phys. Rev. Lett.},
- volume = {75},
- pages = {1226},
- year = {1995},
-}
-
-@article {Valadares_10,
- title = {Catalytic Nanomotors: Self-Propelled Sphere Dimers},
- author = {Valadares, L. F. and Tao, Y.-G. and Zacharia, N. S. and Kitaev, V. and Galembeck, F. and Kapral, R. and Ozin, G. A.},
- journal = {Small},
- volume = {6},
- pages = {565},
- year = {2010},
-}
-
-@article{Thakur_12,
- title = {Collective dynamics of self-propelled sphere-dimer motors},
- author = {Thakur, S. and Kapral, R.},
- journal = {Phys. Rev. E},
- volume = {85},
- pages = {026121},
- year = {2012},
-}
-
-@article{Taktikos_12,
- title = {Collective dynamics of model microorganisms with chemotactic signaling},
- author = {Taktikos, J. and Zaburdaev, V. and Stark, H.},
- journal = {Phys. Rev. E},
- volume = {85},
- pages = {051901},
- year = {2012},
-}
-
-@article{Stenhammar_13,
- title = {A continuum theory of phase separation kinetics for active Brownian particles},
- author = {Stenhammar, J. and Tiribocchi, A. and Allen, R. J. and Marenduzzo, D. and Cates, M. E.},
- journal = {Phys. Rev. Lett.},
- volume = {111},
- pages = {145702},
- year = {2013},
-}
-
-@article{van_Teeffelen_09,
- title = {Clockwise-directional circle swimmer moves counter-clockwise in Petri dish- and ring-like confinements},
- author = {van Teeffelen, S. and Zimmermann, U. and L{\"o}wen, H.},
- journal = {Soft Matter},
- volume = {5},
- pages = {4510},
- year = {2009},
-}
-
-@article{Tao_09,
- title = {Dynamics of chemically powered nanodimer motors subject to an external force},
- author = {Tao, Y.-G. and Kapral, R.},
- year = {2009},
- journal = {J. Chem. Phys.},
- volume = {131},
- pages = {024113},
-}
-
-@article{Golestanian_07,
- author={R. Golestanian and T.B. Liverpool and A. Ajdari},
- title={Designing phoretic micro- and nano-swimmers},
- journal={New J. Phys.},
- volume={9},
- pages={126},
- year={2007},
-}
-
-@article{Tao_08,
- title = {Design of chemically propelled nanodimer motors},
- author = {Tao, Y.-G. and Kapral, R.},
- journal = {J. Chem. Phys.},
- volume = {128},
- pages = {164518},
- year = {2008},
-}
-
-@article{Tailleur_09,
- title = {Sedimentation, trapping, and rectification of dilute bacteria},
- author = {Tailleur, J. and Cates, M. E.},
- journal = {Europhys. Lett.},
- volume = {86},
- pages = {60002},
- year = {2009},
-}
-
-@article{Soto_13,
- title = {Self-Assembled Active Colloidal Molecules with Dynamic Function},
- author = {Soto, R. and Golestanian, R.},
- journal = {Phys. Rev. E},
- volume = {91},
- pages = {052304},
- year = {2015},
-}
-
-@article{Solovev_13,
- title = {Collective behaviour of self-propelled catalytic micromotors},
- author = {Solovev, A. A. and Sanchez, S. and Schmidt, O. G.},
- journal = {Nanoscale},
- year = {2013},
- volume = {5},
- pages = {1284},
-}
-
-@article{Solovev_11,
- title = {Tunable catalytic tubular micro-pumps operating at low concentrations of hydrogen peroxide},
- author = {Solovev, A. A. and Sanchez, S. and Mei, Y. and Schmidt, O. G.},
- journal = {Phys. Chem. Chem. Phys.},
- volume = {13},
- pages = {10131-10135},
- year = {2011},
-}
-
-@article{Solovev_10,
- title = {Magnetic Control of Tubular Catalytic Microbots for the Transport, Assembly, and Delivery of Micro-objects},
- author = {Solovev, A. A. and Sanchez, S. and Pumera, M. and Mei, Y. F. and Schmidt, O. G.},
- journal = {Adv. Funct. Mat.},
- volume = {20},
- pages = {2430},
- year = {2010},
-}
-
-@article{Solovev_09,
- title = {Catalytic Microtubular Jet Engines Self-Propelled by Accumulated Gas Bubbles},
- author = {Solovev, A. A. and Mei, Y. and Berm{\'u}dez Ure{\~n}a, E. and Huang, G. and Schmidt, O. G.},
- journal = {Small},
- volume = {5},
- pages = {1688},
- year = {2009},
-}
-
-@article{Sokolov_10,
- title = {Swimming bacteria power microscopic gears},
- author = {Sokolov, A. and Apodaca, M. M. and Grzybowski, B. A. and Aranson, I. S.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {107},
- pages = {969},
- year = {2010},
-}
-
-@article{Moran_10,
- title = {Locomotion of electrocatalytic nanomotors due to reaction induced charge autoelectrophoresis},
- author = {Moran, J.L. and Wheat, P.M. and Posner, J.D.},
- journal = {Phys. Rev. E},
- volume = {81},
- pages = {065302},
- year = {2010},
-}
-
-@article{Schwarz_12,
- title = {Phase separation and rotor self-assembly in active particle suspensions},
- author = {Schwarz-Linek, J. and Valeriani, C. and Cacciuto, A. and Cates, M. E. and Marenduzzo, D. and Morozov, A. N. and Poon, W. C. K.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {109},
- pages = {4052},
- year = {2012},
-}
-
-@article{Sabass_12b,
- title = {Nonlinear, electrocatalytic swimming in the presence of salt},
- author = {Sabass, B. and Seifert, U.},
- journal = {J. Chem. Phys.},
- volume = {136},
- pages = {214507},
- year = {2012},
-}
-
-@article{Sabass_12a,
- title = {Dynamics and efficiency of a self-propelled, diffusiophoretic swimmer},
- author = {Sabass, B. and Seifert, U.},
- journal = {J. Chem. Phys.},
- volume = {136},
- pages = {064508},
- year = {2012},
-}
-
-@article{Romanczuk_09,
- title = {Collective Motion due to Individual Escape and Pursuit Response},
- author = {Romanczuk, P. and Couzin, I. D. and Schimansky-Geier, L.},
- journal = {Phys. Rev. Lett.},
- volume = {102},
- pages = {010602},
- year = {2009},
-}
-
-@article{Roeckner_07,
- title = {Chemically Powered Nanodimers},
- author = {R{\"u}ckner, G. and Kapral, R.},
- journal = {Phys. Rev. Lett.},
- volume = {98},
- issue = {15},
- pages = {150603},
- year = {2007},
-}
-
-@article{Reufer_13,
- title = {Switching of swimming modes in Magnetospirillium gryphiswaldense},
- author = {Reufer, M. and Besseling, R. and Schwarz-Linek, J. and Martinez, V. A. and Morozov, A. N. and Arlt, J. and Trubitsyn, D. and Ward, B. and Poon, W. C. K.},
- journal = {Biophys. J.},
- volume = {106},
- pages = {37},
- year = {2013},
-}
-
-@article{Reinmueller_13,
- title = {Self-Organized Cooperative Swimming at Low Reynolds Numbers},
- author = {Reinm{\"u}ller, A. and Sch{\"o}pe, H. J. and Palberg, T.},
- journal = {Langmuir},
- volume = {29},
- pages = {1738},
- year = {2013},
-}
-
-@article{Redner_13,
- title = {Reentrant phase behavior in active colloids with attraction},
- author = {Redner, G. S. and Baskaran, A. and Hagan, M. F.},
- journal = {Phys. Rev. E},
- volume = {88},
- pages = {012305},
- year = {2013},
-}
-
-@article{Qi_13,
- title = {Phase diagram of octapod-shaped nanocrystals in a quasi-two-dimensional planar geometry},
- author = {Qi, W. and de Graaf, J. and Qiao, F. and Marras, S. and Manna, L. and Dijkstra, M.},
- journal = {J. Chem. Phys.},
- volume = {138},
- pages = {154504},
- year = {2013},
-}
-
-@article{Qi_12,
- title = {Ordered Two-Dimensional Superstructures of Colloidal Octapod-Shaped Nanocrystals on Flat Substrates},
- author = {Qi, W. and de Graaf, J. and Qiao, F. and Marras, S. and Manna, L. and Dijkstra, M.},
- journal = {Nano Lett.},
- volume = {12},
- pages = {5299},
- year = {2012},
-}
-
-@article{Pototsky_13,
- title = {Rectification of self-propelled particles by symmetric barriers},
- author = {Pototsky, A. and Hahn, A. M. and Stark, H.},
- journal = {Phys. Rev. E},
- volume = {87},
- pages = {042124},
- year = {2013},
-}
-
-@article{Popescu_11,
- title = {Pulling and pushing a cargo with a catalytically active carrier},
- author = {Popescu, M. N. and Tasinkevych, M. and Dietrich, S.},
- journal = {Europhys. Lett.},
- volume = {95},
- pages = {28004},
- year = {2011},
-}
-
-@article{Popescu_10,
- title = {Phoretic motion of spheroidal particles due to self-generated solute gradients},
- author = {Popescu, M.N. and Dietrich, S. and Tasinkevych, M. and Ralston, J.},
- journal = {Eur. Phys. J. E},
- volume = {31},
- pages = {351},
- year = {2010},
-}
-
-@article{Paxton_04,
- title = {Catalytic Nanomotors: Autonomous Movement of Striped Nanorods},
- author = {Paxton, W. F. and Kistler, K. C. and Olmeda, C. C. and Sen, A. and St. Angelo, S. K. and Cao, Y. and Mallouk, T. E. and Lammert, P. E. and Crespi, V. H.},
- journal = {J. Am. Chem. Soc.},
- volume = {126},
- pages = {13424},
- year = {2004},
-}
-
-@article{Palacci_13,
- title = {Living Crystals of Light-Activated Colloidal Surfers},
- author = {Palacci, J. and Sacanna, S. and Steinberg, A. P. and Pine, D. J. and Chaikin, P. M.},
- journal = {Science},
- volume = {339},
- pages = {936},
- year = {2013},
-}
-
-@article{Pagonabarraga_13,
- title = {The structure and rheology of sheared model swimmer suspensions},
- author = {Pagonabarraga, I. and Llopis, I.},
- journal = {Soft Matter},
- volume = {9},
- pages = {7174},
- year = {2013},
-}
-
-@article{Ni_12,
- title = {Phase diagram of colloidal hard superballs: from cubes via spheres to octahedra},
- author = {Ni, Ran and Gantapara, A. P. and de Graaf, J. and van Roij, R. and Dijkstra, M.},
- journal = {Soft Matter},
- volume = {8},
- pages = {8826},
- year = {2012},
-}
-
-@article{Miszta_11,
- title = {Hierarchical self-assembly of suspended branched colloidal nanocrystals into superlattice structures},
- author = {Miszta, K. and de Graaf, J. and Bertoni, G. and Dorfs, D. and Brescia, R. and Marras, S. and Ceseracciu, L. and Cingolani, R. and van Roij, R. and Dijkstra, M. and Manna, L.},
- journal = {Nature Mater.},
- volume = {10},
- pages = {872},
- year = {2011},
-}
-
-@article{Mirkovic_10,
- title = {Fuel for Thought: Chemically Powered Nanomotors Out-Swim Nature’s Flagellated Bacteria},
- author = {Mirkovic, T. and Zacharia, N. S. and Scholes, G. D. and Ozin, G. A.},
- journal = {ACS Nano},
- volume = {4},
- pages = {1782},
- year = {2010},
-}
-
-@article{Mino_11,
- title = {Enhanced Diffusion due to Active Swimmers at a Solid Surface},
- author = {Mi{\~n}o, G. and Mallouk, T. E. and Darnige, T. and Hoyos, M. and Dauchet, J. and Dunstan, J. and Soto, R. and Wang, Y. and Rousselet, A. and Clement, E.},
- journal = {Phys. Rev. Lett.},
- volume = {106},
- pages = {048102},
- year = {2011},
-}
-
-@article{Mijalkov_13,
- title = {Sorting of chiral microswimmers},
- author = {Mijalkov, M. and Volpe, G.},
- journal = {Soft Matter},
- volume = {9},
- pages = {6376},
- year = {2013},
-}
-
-@article{Mei_11,
- title = {{Rolled-up nanotech on polymers: from basic perception to self-propelled catalytic microengines}},
- author = {Mei, Y. and Solovev, A. A. and Sanchez, S. and Schmidt, O. G.},
- journal = {Chem. Soc. Rev.},
- volume = {40},
- pages = {2109},
- year = {2011},
-}
-
-@article{Mallouk_09,
- title = {Powering Nanorobots},
- author = {Mallouk, T. E. and Sen, A.},
- journal = {Sci. Am.},
- volume = {300},
- pages = {72},
- year = {2009},
-}
-
-@article{Lugli_11,
- title = {Shape Governs the Motion of Chemically Propelled Janus Swimmers},
- author = {Lugli, F. and Brini, E. and Zerbetto, F.},
- journal = {J. Phys. Chem. C},
- volume = {116},
- pages = {592},
- year = {2012},
-}
-
-@article{Llopis_06,
- title = {Dynamic regimes of hydrodynamically coupled self-propelling particles},
- author = {Llopis, I. and Pagonabarraga, I.},
- journal = {Europhys. Lett.},
- volume = {75},
- pages = {999},
- year = {2006},
-}
-
-@article{Lobaskin_13,
- title = {Collective dynamics in systems of active Brownian particles with dissipative interactions},
- author = {Lobaskin, V. and Romenskyy, M.},
- journal = {Phys. Rev. E},
- volume = {87},
- pages = {052135},
- year = {2013},
-}
-
-@article{Limbach_06,
- title = {{ESPResSo} -- An Extensible Simulation Package for Research on Soft Matter Systems},
- author = {Limbach, H. J. and Arnold, A. and Mann, B. A. and Holm, C.},
- journal = {Comp. Phys. Comm.},
- volume = {174},
- pages = {704},
- year = {2006},
-}
-
-@article{Di_Leonardo_10,
- title = {Bacterial ratchet motors},
- author = {Di Leonardo, R. and Angelani, L. and Dell'Arciprete, D. and Ruocco, G. and Iebba, V. and Schippa, S. and Conte, M. P. and Mecarini, F. and De Angelis, F. and Di Fabrizio, E.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {107},
- pages = {9541},
- year = {2010},
-}
-
-@article{Lambert_10,
- title = {Collective Escape of Chemotactic Swimmers through Microscopic Ratchets},
- author = {Lambert, G. and Liao, D. and Austin, R. H.},
- journal = {Phys. Rev. Lett.},
- volume = {104},
- pages = {168102},
- year = {2010},
-}
-
-@inproceedings{Ladd_89,
- title = {Cellular automata and modeling of complex physical systems},
- author = {Ladd, A. J. C. and Frenkel, D.},
- booktitle = {Proceedings of the Winter School, Les Houches, France, February 21–28},
- editor = {Manneville, P. and Boccara, N. and Vichniac, G. Y. and Bidaux, R.},
- volume = {46},
- series = {Springer Proceedings in Physics},
- pages = {242},
- publisher = {Springer (Berlin)},
- year = {1989},
-}
-
-@article{Koemmel_13,
- title = {Circular Motion of Asymmetric Self-Propelling Particles},
- author = {K{\"u}mmel, F. and ten Hagen, B. and Wittkowski, R.l and Buttinoni, I. and Eichhorn, R. and Volpe, G. and L{\"o}wen, H. and Bechinger, C.},
- journal = {Phys. Rev. Lett.},
- volume = {110},
- pages = {198302},
- year = {2013},
-}
-
-@article{Klinkigt_13,
- title = {Cluster formation in systems of shifted-dipole particles},
- author = {Klinkigt, M. and Weeber, R. and Kantorovich, S. and Holm, C.},
- journal = {Soft Matter},
- volume = {9},
- pages = {3535-3546},
- year = {2013},
-}
-
-@article{Kantsler_13,
- title = {Ciliary contact interactions dominate surface scattering of swimming eukaryotes},
- author = {Kantsler, V. and Dunkel, J. and Polin, M. and Goldstein, R. E.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {110},
- pages = {1187},
- year = {2013},
-}
-
-@article{Kantorovich_11,
- title = {Magnetic particles with shifted dipoles},
- author = {Kantorovich, S. and Weeber, R. and Cerd{\`a}, J. J. and Holm, C.},
- journal = {J. Magn. Magn. Mater.},
- volume = {323},
- pages = {1269},
- year = {2011},
-}
-
-@article{Kaiser_13,
- title = {Capturing self-propelled particles in a moving microwedge},
- author = {Kaiser, A. and Popowa, K. and Wensink, H. H. and L{\"o}wen, H.},
- journal = {Phys. Rev. E},
- volume = {88},
- pages = {022311},
- year = {2013},
-}
-
-@article{Kaiser_12,
- title = {How to Capture Active Particles},
- author = {Kaiser, A. and Wensink, H. H. and L{\"o}wen, H.},
- journal = {Phys. Rev. Lett.},
- volume = {108},
- pages = {268307},
- year = {2012},
-}
-
-@article{Jepson_13,
- title = {Enhanced diffusion of non-swimmers in a 3D bath of motile bacteria},
- author = {Jepson, A. and Martinez, V. A. and Schwarz-Linek, J. and Morozov, A. N. and Poon, W. C. K.},
- journal = {Phys. Rev. E},
- volume = {88},
- pages = {041002(R)},
- year = {2013},
-}
-
-@article{Ishikawa_11,
- title = {Energy Transport in a Concentrated Suspension of Bacteria},
- author = {Ishikawa, T. and Yoshida, N. and Ueno, H. and Wiedeman, M. and Imai, Y. and Yamaguchi, T.},
- journal = {Phys. Rev. Lett.},
- volume = {107},
- pages = {028102},
- year = {2011},
-}
-
-@article{Howse_07,
- title = {Self-Motile Colloidal Particles: From Directed Propulsion to Random Walk},
- author = {Howse, J. R. and Jones, R. A. L. and Ryan, A. J. and Gough, T. and Vafabakhsh, R. and Golestanian, R.},
- journal = {Phys. Rev. Lett.},
- volume = {99},
- pages = {048102},
- year = {2007},
-}
-
-@article{Harazim_12,
- title = {Fabrication and applications of large arrays of multifunctional rolled-up SiO/SiO2 microtubes},
- author = {Harazim, S. M. and Xi, W. and Schmidt, C. K. and Sanchez, S. and Schmidt, O. G.},
- journal = {J. Mater. Chem.},
- volume = {22},
- pages = {2878-2884},
- year = {2012},
-}
-
-@article{Gregoire_04,
- title = {Onset of Collective and Cohesive Motion},
- author = {Gr{\'e}goire, G. and Chat{\'e}, H.},
- journal = {Phys. Rev. Lett.},
- volume = {92},
- pages = {025702},
- year = {2004},
-}
-
-@article{de_Graaf_12c,
- title = {A Roadmap for the Assembly of Polyhedral Particles},
- author = {de Graaf, J. and Manna, L.},
- journal = {Science},
- volume = {337},
- pages = {417},
- year = {2012},
-}
-
-@article{de_Graaf_12b,
- title = {Electrostatic interactions between Janus particles},
- author = {de Graaf, J. and Boon, N. and Dijkstra, M. and van Roij, R.},
- journal = {J. Chem. Phys.},
- volume = {137},
- pages = {104910},
- year = {2012},
-}
-
-@article{de_Graaf_12a,
- title = {Crystal-structure prediction via the Floppy-Box Monte Carlo algorithm: Method and application to hard (non)convex particles},
- author = {de Graaf, J. and Filion, L. and Marechal, M. and van Roij, R. and Dijkstra, M.},
- journal = {J. Chem. Phys.},
- volume = {137},
- pages = {214101},
- year = {2012},
-}
-
-@article{de_Graaf_11,
- title = {Dense Regular Packings of Irregular Nonconvex Particles},
- author = {de Graaf, J. and van Roij, R. and Dijkstra, M.},
- journal = {Phys. Rev. Lett.},
- volume = {107},
- pages = {155501},
- year = {2011},
-}
-
-@article{de_Graaf_10,
- author = {de Graaf, J. and Dijkstra, M. and van Roij, R.},
- title = {Adsorption trajectories and free-energy separatrices for colloidal particles in contact with a liquid-liquid interface},
- journal = {J. Chem. Phys.},
- volume = {132},
- pages = {164902},
- year = {2010},
-}
-
-@article{de_Graaf_09,
- author = {de Graaf, J. and Dijkstra, M. and van Roij, R.},
- title = {Triangular tessellation scheme for the adsorption free energy at the liquid-liquid interface: Towards nonconvex patterned colloids},
- journal = {Phys. Rev. E},
- volume = {80},
- pages = {051405},
- year = {2009},
-}
-
-@article{de_Graaf_08,
- title = {Spontaneous charging and crystallization of water droplets in oil},
- author = {de Graaf, J. and Zwanikken, J. and Bier, M. and Baarsma, A. and Oloumi, Y. and Spelt, M. and van Roij, R.},
- journal = {J. Chem. Phys.},
- volume = {129},
- pages = {194701},
- year = {2008},
-}
-
-@article{Goldstein_11,
- title = {Emergence of Synchronized Beating during the Regrowth of Eukaryotic Flagella},
- author = {Goldstein, R. E. and Polin, M. and Tuval, I.},
- journal = {Phys. Rev. Lett.},
- volume = {107},
- pages = {148103},
- year = {2011},
-}
-
-@article{Goldstein_09,
- title = {Noise and Synchronization in Pairs of Beating Eukaryotic Flagella},
- author = {Goldstein, R. E. and Polin, M. and Tuval, I.},
- journal = {Phys. Rev. Lett.},
- volume = {103},
- pages = {168103},
- year = {2009},
-}
-
-@article{Gantapara_13,
- title = {Phase Diagram and Structural Diversity of a Family of Truncated Cubes: Degenerate Close-Packed Structures and Vacancy-Rich States},
- author = {Gantapara, A. P. and de Graaf, J. and van Roij, R. and Dijkstra, M.},
- journal = {Phys. Rev. Lett.},
- volume = {111},
- pages = {015501},
- year = {2013},
-}
-
-@article{Galajda_07,
- title = {A Wall of Funnels Concentrates Swimming Bacteria},
- author = {Galajda, P. and Keymer, J. and Chaikin, P. and Austin, R.},
- journal = {J. Bacteriol.},
- volume = {189},
- pages = {8704},
- year = {2007},
-}
-
-@article{Fournier_05,
- title = {Synthetic self-propelled nanorotors},
- author = {Fournier-Bidoz, S. and Arsenault, A. C. and Manners, I. and Ozin, G. A.},
- journal = {Chem. Commun.},
- volume = {NA},
- pages = {441},
- year = {2005},
-}
-
-@article{Evers_13,
- title = {Low-Dimensional Semiconductor Superlattices Formed by Geometric Control over Nanocrystal Attachment},
- author = {Evers, W. H. and Goris, B. and Bals, S. and Casavola, M. and de Graaf, J. and Roij, R. van and Dijkstra, M. and Vanmaekelbergh, D.},
- journal = {Nano Lett.},
- volume = {13},
- pages = {2317},
- year = {2013},
-}
-
-@article{Elgeti_10,
- title = {Hydrodynamics of Sperm Cells near Surfaces},
- author = {Elgeti, J. and Kaupp, U. B. and Gompper, G.},
- journal = {Biophys. J.},
- volume = {99},
- pages = {1018},
- year = {2010},
-}
-
-@article{Ebbens_12,
- author = {Ebbens, S. and Tu, M.-H. and Howse, J. R. and Golestanian, R.},
- title = {Size dependence of the propulsion velocity for catalytic Janus-sphere swimmers},
- journal = {Phys. Rev. E},
- volume = {85},
- pages = {020401},
- year = {2012},
-}
-
-@article{Dunkel_13,
- title = {Fluid Dynamics of Bacterial Turbulence},
- author = {Dunkel, J. and Heidenreich, S. and Drescher, K. and Wensink, H. H. and B{\"a}r, M. and Goldstein, R. E.},
- journal = {Phys. Rev. Lett.},
- volume = {110},
- pages = {228102},
- year = {2013},
-}
-
-@article{Drocco_12,
- title = {Bidirectional sorting of flocking particles in the presence of asymmetric barriers},
- author = {Drocco, J. A. and Olson Reichhardt, C. J. and Reichhardt, C.},
- journal = {Phys. Rev. E},
- volume = {85},
- pages = {056102},
- year = {2012},
-}
-
-@article{Dombrowski_04,
- title = {Self-Concentration and Large-Scale Coherence in Bacterial Dynamics},
- author = {Dombrowski, C. and Cisneros, L. and Chatkaew, S. and Goldstein, R. E. and Kessler, J. O.},
- journal = {Phys. Rev. Lett.},
- volume = {93},
- pages = {098103},
- year = {2004},
-}
-
-@incollection{Doenweg_09,
- title = {Lattice Boltzmann Simulations of Soft Matter Systems},
- author = {D{\"u}nweg, B. and Ladd, A. J. C.},
- booktitle = {Advanced Computer Simulation Approaches for Soft Matter Sciences III},
- editor = {Holm, C. and Kremer, K.},
- volume = {221},
- series = {Advances in Polymer Science},
- pages = {89},
- publisher = {Springer (Berlin/Heidelberg)},
- year = {2009},
-}
-
-@article{Dhar_06,
- title = {Autonomously Moving Nanorods at a Viscous Interface},
- author = {Dhar, P. and Fischer, Th. M. and Wang, Y. and Mallouk, T. E. and Paxton, W. F. and Sen, A.},
- journal = {Nano Lett.},
- volume = {6},
- pages = {66},
- year = {2006},
-}
-
-@article{Crenshaw_96,
- title = {A New Look at Locomotion in Microorganisms: Rotating and Translating},
- author = {Crenshaw, H. C.},
- journal = {Am. Zool.},
- volume = {36},
- pages = {608},
- year = {1996},
-}
-
-@article{Chen_12,
- title = {Scale-Invariant Correlations in Dynamic Bacterial Clusters},
- author = {Chen, X. and Dong, X. and Be'er, A. and Swinney, H. L. and Zhang, H. P.},
- journal = {Phys. Rev. Lett.},
- volume = {108},
- pages = {148101},
- year = {2012},
-}
-
-@article{Cavagna_10,
- title = {Scale-free correlations in starling flocks},
- author = {Cavagna, A. and Cimarelli, A. and Giardina, I. and Parisi, G. and Santagati, R. and Stefanini, F. and Viale, M.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {107},
- pages = {11865},
- year = {2010},
-}
-
-@article{Buttinoni_12,
- author = {Buttinoni, I. and Volpe, G. and K{\"u}mmel, F. and Volpe, G. and Bechinger, C.},
- title = {Active Brownian motion tunable by light},
- journal = {J. Phys.: Condens. Matter},
- volume = {24},
- pages = {284129},
- year = {2012},
-}
-
-@article{Bier_09,
- title = {Curvature dependence of the electrolytic liquid-liquid interfacial tension},
- author = {Bier, M. and de Graaf, J. and Zwanikken, J and van Roij, R.},
- journal = {J. Chem. Phys.},
- volume = {130},
- pages = {024703},
- year = {2009},
-}
-
-@article{Bialke_13,
- title = {Microscopic theory for the phase separation of self-propelled repulsive disks},
- author = {Bialk{\'e}, J. and L{\"o}wen, H. and Speck, T.},
- journal = {Euro. Phys. Lett.},
- volume = {103},
- pages = {30008},
- year = {2013},
-}
-
-@article{Bialke_12,
- title = {Crystallization in a Dense Suspension of Self-Propelled Particles},
- author = {Bialk{\'e}, J. and Speck, T. and L{\"o}wen, H.},
- journal = {Phys. Rev. Lett.},
- volume = {108},
- pages = {168301},
- year = {2012},
-}
-
-@article{Berdakin_13b,
- title = {Quantifying the sorting efficiency of self-propelled run-and-tumble swimmers by geometrical ratchets},
- author = {Berdakin, I. and Silhanek, A. V. and Moyano, H. N. and Marconi, V. I. and Condat, C. A.},
- journal = {Cent. Eur. J. Phys. },
- volume = {11},
- pages = {1653},
- year = {2013},
-}
-
-@article{Berdakin_13a,
- title = {Influence of swimming strategy on microorganism separation by asymmetric obstacles},
- author = {Berdakin, I. and Jeyaram, Y. and Moshchalkov, V. V. and Venken, L. and Dierckx, S. and Vanderleyden, S. J. and Silhanek, A. V. and Condat, C. A. and Marconi, V. I.},
- journal = {Phys. Rev. E},
- volume = {87},
- pages = {052702},
- year = {2013},
-}
-
-@article{Bayly_11,
- title = {Propulsive Forces on the Flagellum during Locomotion of Chlamydomonas reinhardtii},
- author = {Bayly, P. V. and Lewis, B. L. and Ranz, E. C. and Okamoto, R. J. and Pless, R. B. and Dutcher, S. K.},
- journal = {Biophys. J.},
- volume = {100},
- pages = {2716},
- year = {2011},
-}
-
-@article {Baraban_13c,
- title = {Chemotactic Behavior of Catalytic Motors in Microfluidic Channels},
- author = {Baraban, L. and Harazim, S. M. and Sanchez, S. and Schmidt, O. G.},
- journal = {Angew. Chem. Int. Ed.},
- volume = {52},
- pages = {5552},
- year = {2013},
-}
-
-@article{Baraban_13b,
- title = {Control over Janus micromotors by the strength of a magnetic field},
- author = {Baraban, L. and Makarov, D. and Schmidt, O. G. and Cuniberti, G. and Leiderer, P. and Erbe, A.},
- journal = {Nanoscale},
- volume = {5},
- pages = {1332},
- year = {2013},
-}
-
-@article{Baraban_13a,
- title = {Fuel-Free Locomotion of Janus Motors: Magnetically Induced Thermophoresis},
- author = {Baraban, L. and Streubel, R. and Makarov, D. and Han, L. and Karnaushenko, D. and Schmidt, O. G. and Cuniberti, G.},
- journal = {ACS Nano},
- volume = {7},
- pages = {1360},
- year = {2013},
-}
-
-@article{Baraban_12a,
- title = {Transport of cargo by catalytic Janus micro-motors},
- author = {Baraban, L. and Tasinkevych, M. and Popescu, M. N. and Sanchez, S. and Dietrich, S. and Schmidt, O. G.},
- journal = {Soft Matter},
- year = {2012},
- volume = {8},
- pages = {48},
-}
-
-@article{Baraban_12b,
- title = {Catalytic Janus Motors on Microfluidic Chip: Deterministic Motion for Targeted Cargo Delivery},
- author = {Baraban, L. and Makarov, D. and Streubel, R. and M\"{o}nch, I. and Grimm, D. and Sanchez, S. and Schmidt, O. G.},
- journal = {ACS Nano},
- volume = {6},
- pages = {3383},
- year = {2012},
-}
-
-@article{Baraban_08,
- title = {Frustration-induced magic number clusters of colloidal magnetic particles},
- author = {Baraban, L. and Makarov, D. and Albrecht, M. and Rivier, N. and Leiderer, P. and Erbe, A.},
- journal = {Phys. Rev. E},
- volume = {77},
- pages = {031407},
- year = {2008},
-}
-
-@article{Ballerini_08,
- title = {Interaction ruling animal collective behavior depends on topological rather than metric distance: Evidence from a field study},
- author = {Ballerini, M. and Cabibbo, N. and Candelier, R. and Cavagna, A. and Cisbani, E. and Giardina, I. and Lecomte, V. and Orlandi, A. and Parisi, G. and Procaccini, A. and Viale, M. and Zdravkovic, V.},
- journal = {Proc. Natl. Acad. Sci.},
- volume = {105},
- pages = {1232},
- year = {2008},
-}
-
-@inproceedings{Arnold_13,
- title = {{ESPResSo 3.1 --- Molecular Dynamics Software for Coarse-Grained Models}},
- author = {Arnold, A. and Lenz, O. and Kesselheim, S. and Weeber, R. and Fahrenberger, F. and Roehm, D. and Ko\v{s}ovan, P. and Holm, C.},
- booktitle = {Meshfree Methods for Partial Differential Equations {VI}},
- editor = {Griebel, M. and Schweitzer, M. A.},
- volume = {89},
- series = {Lecture Notes in Computational Science and Engineering},
- pages = {1},
- publisher = {Springer},
- year = {2013},
-}
-
-@article{Angelani_11,
- title = {Active ratchets},
- author = {Angelani, L. and Costanzo, A. and Di Leonardo, R.},
- journal = {Europhys. Lett.},
- volume = {96},
- pages = {68002},
- year = {2011},
-}
-
-@article{Angelani_09,
- title = {Self-Starting Micromotors in a Bacterial Bath},
- author = {Angelani, L. and Di Leonardo, R. and Ruocco, G.},
- journal = {Phys. Rev. Lett.},
- volume = {102},
- pages = {048104},
- year = {2009},
-}
-
-@article{Abrikosov_13,
- title = {Self-assembly of spherical colloidal particles with off-centered magnetic dipoles},
- author = {Abrikosov, A. I. and Sacanna, S. and Philipse, A. P. and Linse, P.},
- journal = {Soft Matter},
- volume = {NA},
- pages = {0},
- year = {2013},
-}
-
-@article{UG,
- author = {Arnold et al., A.},
- title = {ESPResSo User Guide},
- journal = {User Guide: ESPResSo git repository},
- year = {2015},
- volume = {3.4-dev-1404-g32d3874},
- pages = {1},
-}
-
-@article{fischer15,
- title = {The Raspberry Model for Hydrodynamic Interactions Revisited. I. Periodic Arrays of Spheres and Dumbbells},
- journal = {J. Chem. Phys.},
- volume = {143},
- pages = {084107},
- year = {2015},
- author = {L.P. Fischer and T. Peter and C. Holm and J. de Graaf},
-}
-
-@article{degraaf15,
- title = {The Raspberry Model for Hydrodynamic Interactions Revisited. II. The Effect of Confinement},
- journal = {J. Chem. Phys.},
- volume = {143},
- pages = {084108},
- year = {2015},
- author = {J. de Graaf and T. Peter and L.P. Fischer and C. Holm},
-}
-
-@article{lobaskin04,
- author = {V. Lobaskin and B. D\"unweg},
- title = {A new model of simulating colloidal dynamics},
- journal = {New J. Phys.},
- volume = {6},
- year = {2004},
- pages = {54},
-}
-
-@article{chatterji05,
- author = {A. Chatterji and J. Horbach},
- title = {Combining molecular dynamics with Lattice Boltzmann: A hybrid method for the simulation of (charged) colloidal systems},
- journal = {J. Chem. Phys.},
- volume = {122},
- year = {2005},
- pages = {184903},
-}
-
-@article{einstein06,
- author = {A. Einstein},
- title = {Eine neue Bestimmung der Molek{\"u}ldimension},
- journal = {Ann. Phys.},
- volume = {19},
- year = {1906},
- pages = {289},
-}
-
-@article{roehm12,
- author = {D. Roehm and A. Arnold},
- title = {Lattice Boltzmann simulations on {GPU}s with {ESPResSo}},
- journal = {Eur. Phys. J. ST},
- year = {2012},
- volume = {210},
- pages = {73}
-}
-
-@article{Mizuno07,
- author = {Mizuno, D. and Tardin, C. and Schmidt, C.F. and MacKintosh, F.C.},
- title = {Nonequilibrium Mechanics of Active Cytoskeletal Networks},
- volume = {315},
- pages = {370},
- year = {2007},
- journal = {Science}
-}
-
-@article{Berdakin13a,
- title = {Influence of swimming strategy on microorganism separation by asymmetric obstacles},
- author = {Berdakin, I. and Jeyaram, Y. and Moshchalkov, V.V. and Venken, L. and Dierckx, S. and Vanderleyden, S.J. and Silhanek, A.V. and Condat, C.A. and Marconi, V.I.},
- journal = {Phys. Rev. E},
- volume = {87},
- pages = {052702},
- year = {2013},
-}
-
-
-@article{Berdakin13b,
- title = {Quantifying the sorting efficiency of self-propelled run-and-tumble swimmers by geometrical ratchets},
- author = {Berdakin, I. and Silhanek, A.V. and Moyano, H.N. and Marconi, V.I. and Condat, C.A.},
- journal = {Central Euro. J. Phys.},
- volume = {12},
- pages = {1653},
- year = {2013},
-}
-
-@article{Spagnolie_12,
- author = {Spagnolie, S.E. and Lauga, E.},
- title = {Hydrodynamics of self-propulsion near a boundary: predictions and accuracy of far-field approximations},
- journal = {J. Fluid Mech.},
- volume = {700},
- year = {2012},
- pages = {105},
-}
-
-@article{Morozov_14,
- author = {A. Morozov and D. Marenduzzo},
- title = {Enhanced diffusion of tracer particles in dilute bacterial suspensions},
- journal = {Soft Matter},
- volume = {10},
- year = {2014},
- pages = {2748},
-}
-
-@article{Zoettl_14,
- title = {Hydrodynamics Determines Collective Motion and Phase Behavior of Active Colloids in Quasi-Two-Dimensional Confinement},
- author = {Z\"ottl, Andreas and Stark, Holger},
- journal = {Phys. Rev. Lett.},
- volume = {112},
- pages = {118101},
- year = {2014},
-}
-
diff --git a/doc/tutorials/CMakeLists.txt b/doc/tutorials/CMakeLists.txt
index 8c0af9d594e..43ac3299e6d 100644
--- a/doc/tutorials/CMakeLists.txt
+++ b/doc/tutorials/CMakeLists.txt
@@ -103,6 +103,7 @@ add_custom_target(tutorials_html DEPENDS
tutorials_04_3_html
tutorials_04_4_html
tutorials_05_html
+ tutorials_06_html
tutorials_07_html
tutorials_08_html
tutorials_11_1_html
diff --git a/doc/tutorials/Readme.rst b/doc/tutorials/Readme.rst
index 801e6ec26ed..3dcf4265d97 100644
--- a/doc/tutorials/Readme.rst
+++ b/doc/tutorials/Readme.rst
@@ -4,7 +4,6 @@ Tutorials for ESPResSo
Overview
--------
-
This folder contains tutorials that introduce the use of ESPResSo for different
physical systems. Currently, the following tutorials are available:
@@ -20,22 +19,20 @@ physical systems. Currently, the following tutorials are available:
Using the tutorials
-------------------
+
For using the tutorials, you need ESPResSo running. For installation
instructions, please see: http://espressomd.org/html/doc/installation.html
-Tutorials 1, 2, 4, 5, 8 and 12 are available as IPython notebooks, i.e.
-they consist of a `.ipynb` file which contains both the source code
-and the corresponding explanations.
+Tutorials are available as IPython notebooks, i.e. they consist of a `.ipynb`
+file which contains both the source code and the corresponding explanations.
They can be viewed, changed and run interactively.
-
-The remaining tutorials consist of a `.pdf`-file containing the explanations and separate `.py`-scripts containing the simulation scripts.
-
All tutorials can be viewed and the corresponding simulation scripts downloaded
from http://espressomd.org/wordpress/documentation
Using the Jupyter tutorials interactively
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
To view the tutorials, either IPython or Jupyter needs to be installed.
To check whether one of them is installed, run: