espressomd-users
[Top][All Lists]
Advanced

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

Re: [ESPResSo] Self-avoiding random walk SAW


From: Mikheil Azatov
Subject: Re: [ESPResSo] Self-avoiding random walk SAW
Date: Mon, 2 Aug 2010 13:15:47 -0400

Thanks, this explains a lot! I was doing it that way because i wanted all my polymers to stay inside the simulation box and couldn't figure out another way to do that beside putting each separately closer to the center of the box. When I do the way you suggested some of the polymers are close to the borders of the simulation box immediately leave after i start simulation which makes it hard to watch them in vmd. 

I tried using constraints to solve this but i couldn't figure out how they work. There are no samples with them and there's not much i the manual.


I set up the constraints like this on the borders of the simulation box. Then I define LJ interaction between particles and constrains and then I set the polymers. 
constraint wall normal 0 0 1 dist 0 type 3
constraint wall normal 0 0 -1 dist 100 type 3
constraint wall normal 0 1 0 dist 0 type 3
constraint wall normal 0 -1 0 dist 100 type 3
constraint wall normal 1 0 0 dist 0 type 3
constraint wall normal -1 0 0 dist 100 type 3

set sig [expr 8/1.12246]; set cut 9
set eps 0.412; set shift -1 

inter 0 0 lennard-jones $eps $sig $cut $shift 0
inter 0 3 lennard-jones $eps $sig $cut $shift 0

t_random seed [pid]


polymer $npol $npart 8 start 0 mode SAW 8 bond 1 angle [expr 0.9*[PI]] constraints 3


After I run the simulation I get errors like this : 
background_errors 0 {061 wall constraint 1 violated by particle 4} {061 wall constraint 3 violated by particle 4}...
What am I doing wrong ?

Also if the constraints are set up correctly can I use them to put all the polymers inside a smaller simulation box. I mean for example my box_l is 100. And I want to put all the particles inside the small box of size 50 in the middle of the actual simulation box. Could I use constraints for that ?

Thanks for your help,
Mikheil Azatov
University of Maryland



On Mon, Aug 2, 2010 at 9:01 AM, Axel Arnold <address@hidden> wrote:
On Friday 30 July 2010 19:18:14 Mikheil Azatov wrote:
> Hi,
>
> Here is a sample of the code.
>
>
> In the beginning there are some variables that I use,  so just skip that
> part because I removed parts of the code and some of the variables are not
> even used ( and some setmd commands are the ones that i added myself). I
> just wanted to send still compiling version. But basically I put 50
> polymers each having 10 monomers with parameter SAW set to 8. Then I
> calculate mindist and it's around 2.

> for {set i 0 } {$i < $npol} {incr i} {
> puts "i=$i"
> polymer 1 $npart 8 start [expr $i*$npart] pos [expr 100*[t_random]+200]
> [expr 100*[t_random]+200] [expr 100*[t_random]+200] mode SAW 8 bond 1 angle
> [expr 0.9*[PI]]

Hi!

You manually fix the first position of each polymer you add. Therefore, that
one can overlap with the already added polymers - since you force its
position, Espresso cannot remove overlaps with existing particles. Just don't
specify the start position, or just from the very beginning call

polymer $npol $npart 8 mode SAW 8 bond 1 angle [expr 0.9*[PI]]

Note that depending on how dense your system is, that can take _quite_ long.
An alternative way of generating your setup would be to use random walks, and
slowly turning on all the interactions so that beads remove overlap by
themselves. For the LJ potential, that is done via "setmd ljforcecap $cap",
for the bond potentials, you can simply very slowly increase the force
constant. This requires a bit  of tuning until it reliably works, but is
faster than waiting for a dense melt being setup as SAWs.

Many regards,
Axel

--
JP Dr. Axel Arnold Tel: +49 711 685 67609
ICP, Universität Stuttgart      Email: address@hidden
Pfaffenwaldring 27
70569 Stuttgart, Germany


_______________________________________________
ESPResSo mailing list
address@hidden
https://fias.uni-frankfurt.de/mailman/listinfo/espresso


reply via email to

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