espressomd-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ESPResSo] Coalescing Particles/Droplets


From: Olaf Lenz
Subject: Re: [ESPResSo] Coalescing Particles/Droplets
Date: Mon, 15 Sep 2008 09:19:44 +0200
User-agent: Thunderbird 2.0.0.16 (X11/20080724)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Lorenzo!

Lorenzo Isella wrote:
> I wonder if Espresso can be used to model the interaction of perfectly
> coalescing particles (you may think of them as water droplets).
> For doing so, I would need to be able to define particle radia r_1 and
> r_2 and say that when two particles collide, then the resulting
> particle is again a sphere with radius R=(r_1^3+r_2^3)^{1/3}.
> I think I can use several potentials to define a particle radius, but
> I cannot think of any way to achieve what I want using Espresso (it
> may not be doable).

Indeed, ESPResSo is not ideally suited for this problem. Just as an
outlook, which probably doesn't help you very much at the moment: the
reimplementation of ESPResSo (dubbed "ESPResSo++") that is currently
under way will be able to handle your problem elegantly. Unfortunately,
a first version will be released probably about one year from now.

Indeed, your example seems to be a very good application scenario for
our new program. If you want to help us, we would be very happy if you
could fill in the file "ScenarioTemplate.tex" that I have attached, and
send it back to me.
If you want to know about the progress of the project, you can have a
look at the home page http://www.espresso-pp.de . So far, the page is
still very incomplete and maybe somehow confusing, but this will change.
Probably the most interesting item on the page is the requirements
document of the program:

http://www.espresso-pp.de/docman/view.php/7/2/espresso_requirements_all.pdf

I guess, however, that for now you are more interested in whether your
problem can be solved with the "old" ESPResSo. There are the following
problems connected with it:

1. ES can not easily handle cases, where the interactions of each pair
of particles are different. The reason for this is, that the
interactions are typically defined via particle types, and have fixed
parameters. In your case this would mean that each particle would have
its own type, and the interactions to all other particle would have to
be adapted when the radius changes.
Alternatively, it should be possible to add a new particle property
"radius" and to define a new interaction that uses this property.
However, this would require some C programming in the ESPReSSo kernel.

The radius would have to be introduced in the "Particle" struct in
particle_data.h. As an example for an interaction that depends on a
particle property, you can refer to the Debye-Hückel potential
(debye_hueckel.h). Based on that, you should be able to implement a
radius-depending potential.
If you would implement it, I think that we would be happy if you could
share the code with us, so that we can probably put it into the
ESPResSo-distribution.

2. A further complication comes from the collisions. In principle, it is
no problem to create and delete particles in a Tcl script, and in that
way to handle collisions and merging of particles. However, I guess that
this test would have to be done in each MD step, so that you can only
use "integrate 1". And this will definitely be a problem, as the
performance would drop extremely - switching between Tcl and the
C-kernel is a very expensive operation. So, you would either be able to
check for collisions only occasionally, or you would have to implement
the operation in C. Doing that would require quite some involved
programming in the ESPResSo C source. I think it should be doable, but
it is probably not at all trivial.


Best regards

        Olaf
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIzgyPtQ3riQ3oo/oRAsoNAJ976mdIakfkNarfrJXe6dXJ6uvHKgCfecKL
5D2UZdXaaIkXUV8BuMGILuk=
=aJUh
-----END PGP SIGNATURE-----
\documentclass{scrartcl}

\begin{document}
%% This is a template for a use case for ESPResSo++.
%% General hints:
%% * Try to be as specific as you can.
%% * If you do specify magnitudes without any units, reduced units are
%%   assumed.
%% * If a section/subsection/minisec does not apply to your use case,
%%   skip it and/or remove it.

% Give the use case a name.
\section{Use Case: Ion distribution around a charged rod}

\minisec{Short description}
% Please provide a short description of the simulated system and the
% purpose of the simulation.
Simulation of a charged cylinder in a salt solution to determine the
distribution of the ions around the cylinder.

\minisec{Reporter}
% Please provide your name.
Olaf Lenz

\minisec{Publications}
% If available, can you provide references to articles where the
% system is used?
\begin{itemize}
\item M.~Deserno. {\em Counterion condensation for rigid linear
    polyelectrolytes}.  PhD thesis, Universit{\"a}t Mainz, February
  2000.
\end{itemize}

\subsection*{Description of the physical system}
% In this subsection, the physical system of the use case should be
% specified.

\minisec{Statistical Ensemble}
% In what physical ensemble does the system live?  
% Examples: NVT, NVE, NpT, \mu pT
NVT

\minisec{Periodic directions}
% In which directions is the system periodic?
% Examples: all, none, x and y
all

\minisec{Unit cell geometry}
% If any of the directions is periodic, please specify the geometry
% and size of the unit cell
% Examples: cubic ($L=100$), rectangular ($L_x=L_y=100$, $L_z=50$)
cubic ($L=100$)

\minisec{Fixed objects and external fields}
% Are there any fixed objects in the system ("constraints" in
% ESPResSo)? Please specify all properties of the object (position,
% direction, charge, ...)!
% Are there any external fields actig in the system?
% Examples: cylinder in z-direction, cylindrical pore in z
% direction, electric field ($E=0.1$) in z-direction
1 charged cylinder (charge: -300), parallel to the z-axis in the
center of the unit cell in x and y, that stretches the whole box

\minisec{Number and types of particles}
% What types of particles do exist in the system?
% How many particles of each type exist?
% Example: 100 ions, 1000 dipoles, 10000 ellipsoids
400 counterions, 100 coions

\minisec{Constant properties of the particles} 
% What properties do the different types of particles have, that do
% not change during the simulation? Please specify their values, if
% possible.  
% Example: dipoles: dipole moment $\mu=1.0$
counterions: charge $q=+1$; coions: charge $q=-1$

\minisec{Variable properties of the particles}
% What properties of the different particle types are variable?
% By default, we assume that the 3D position is variable, please
% specify, if the particles are fixed in any direction.
% Example: direction of the dipole moment, particles are fixed in z

\minisec{Interactions}
% What interactions act between the different objects (particles and
% fixed objects) in the system? Please give the type and the
% parameters of the interactions!
% Please specify explicitly, if there is no interaction between some
% particle types. If the system contains bonds with a fixed length (as
% implemented by Rattle/Shake/LINC), specify them here.
\begin{itemize}
\item purely repulsive core of a LJ interaction ($\sigma=2.0$,
  $\epsilon=1.0$, $r_\mathrm{cut}=1.0$) between all particles and
  between the cylinder and the particles
\item electrostatic interactions between all particles and between
  the cylinder and the particles 
\end{itemize}

\minisec{Non-equilibrium process}
% In the case of an out-of-equilibrium simulation, please describe the
% underlying physical process, i.e. which changes are expected in the
% system.

\minisec{Other comments}
% Are there any additional comments on the physical system?

\subsection*{Description of the simulation}
% In this subsection, the simulation process should be described.
% If you do not feel it is necessary to specify some of the items,
% just skip the section. For example, the setup of some systems might
% be trivial, or the type of analysis is not important.
% Any MD, any thermostat, any barostat, MC single particle moves

\minisec{Molecular dynamics or Monte-Carlo}
% Please specify whether a molecular dynamics (MD) or a Monte-Carlo
% (MC) type of simulation is to be performed.  
% Examples: MD, MC, hybrid (MD plus MC volume moves for contant pressure)
MD

\minisec{System setup and warming up}
% Specify, how the system can can be set up (including "warming up"),
% i.e. how an initial configuration of the system can be created.
% If necessary, specify in which geometry the particles should be
% located initially.
% Example: 
\begin{itemize}
\item Randomly place the ions in the whole system.
\item Warm up by doing a simulation without electrostatic interactions
  and with capped LJ interactions.
\end{itemize}

\minisec{Required simulation algorithms}
% If any specific algorithms are required for the simulation, please
% specify them here.  
% Examples: Lattice-Boltzmann for hydrodynamic interactions

\minisec{Suggested simulation algorithms}
% If you want to suggest algorithms that can be effectively used in
% the simulation, please specify them here. These can encompass:
% thermostats, barostats, algorithms for long-ranged algorithms, etc.
\begin{itemize}
\item P3M for electrostatic interactions
\item Verlet lists for the short-ranged interactions
\end{itemize}

\minisec{Analysis}
% Describe, what analysis are to be done in the system, and, if
% possible, the expected values. If you do averages, specify exactly
% what you average over (e.g. time average, ensemble average, ...). Also,
% specify the statistical methods you use (e.g. histograms).
Compute the radial distribution function of the ion types with respect to
the cylinder:
\begin{itemize}
\item In each timestep, compute density histograms of the ion types
  over the distance to the cylinder.
\item At the end, average the histograms.
\item Compute the radial distribution function by normalising the
  histograms.
\end{itemize}

\subsection*{Further information}

\minisec{Did the use case work with the old ESPResSo program?}
% If this use case did not work with the old ESPResSo code, or only
% insatisfactorily, please specify why it did not work!
yes

\minisec{Bottlenecks and expected problems}
% If you do know of specific problems connected to this use case
% (extensive memory consumption, performance bottlenecks) or things
% that require special attention, please list them here.

\minisec{Expected hardware requirements}
% How many processors do you expect should typically suffice to
% perform a simulation?
One processor.

\end{document}



%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]