espressomd-devel
[Top][All Lists]
Advanced

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

Re: [ESPResSo-devel] A bug in Espresso


From: Stefan Kesselheim
Subject: Re: [ESPResSo-devel] A bug in Espresso
Date: Tue, 03 Jul 2012 16:35:34 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120421 Thunderbird/12.0


Hi Ivan,
lbnode 0 0 0 corresponds to 0.5 0.5 0.5. Good question :-).

Then due to the properties of the bounce back boundaries they are sitting at integer positions in usual md space. Thus the command

constraint wall dist 0.5 normal 0 0 1

should be replaced by

constraint wall dist 1.0 normal 0 0 1

Then it is clear that the row of lbnodes sitting at 0.5 is "inside" and the row at 1.5 is 
"outside".

constraint wall dist 0.0 normal 0 0 1

probably works also because then the halo nodes at z=-0.5 should act as bounce 
back walls, but please test it.
I have not explicitly checked that.

One more mail, one more answer to go :-).
Cheers
Stefan



On 06/29/2012 04:28 PM, Ivan Cimrak wrote:
That could be the reason. Thanks very much for the explanation!

Just to be sure, you have shifted the lb lattice by a half grid point.
Does that mean that if I set the fluid velocity by
lbnode 0 0 0
that it is set in the spatial point 0.5 0.5 0.5? Or at -0.5 -0.5 -0.5?

Also, if I set a wall constraint by
constraint wall dist 0.5 normal 0 0 1
should I set the lbboundary shifted? Do I need to set
lbboundary wall dist 1.0 normal 0 0 1
or
lbboundary wall dist 0.0 normal 0 0 1
?

Thanks,
Ivan


On Fri, Jun 29, 2012 at 3:57 PM, Axel Arnold
<address@hidden>  wrote:
Hi!

There was a small change in Espresso 3.0.2->  3.1.0. In the older version,
lattice grid points were located at integer positions, now they are shifted by
half a grid spacing. This has big advantages with the parallelization, e.g.
the "cellsystem domain_decomposition -no_verlet_list" no longer required.
However, because of this, your imposed flow is now half a lattice spacing off
compared to the old code.

Unfortunately, we forgot to put that into the NEWS /CHANGES file.

Axel


On Friday 29 June 2012 15:25:03 Ulf Schiller wrote:
Hi Ivan,

On 06/29/2012 01:37 PM, Ivan Cimrak wrote:
Hello,

I have been using Espresso quite some time. Together with Markus
Gusenbauer from FH Sankt Poelten we have done some extensions. During
my tests I found out that the version 3.0.2 does not compute the same
results as the 3.1.0 does.

I did the following test:
2 particles bonded with harmonic interaction. I put them in the
lbfluid, I set the velocity of the fluid on the left side of the
channel  and I look at the positions of both particles and their
distance. I compiled two versions from your sources available at
http://espressomd.org/wordpress/download/. In both cases I compiled
only the LB and LB_BOUNDARIES in. With these two versions I obtained
different results.

I attach two output files.

Do you have any idea why is it so?
I had a quick look at your data and at first glance it seems there is
only a numerical difference. Do you think the results are physically
incorrect? The difference seems to be that the coupling between
particles and fluid sets in at different time steps (i=11 in 310.dat and
i=12 in 302.dat). This could be due to round-off differences in the two
versions of ESPResSo. The results should converge for dt->0.

Hope this helps,
Ulf

TCL code:
set vmd "n"
setmd time_step 0.1;
setmd skin 0.2;
thermostat off;

set pipeX 50; set pipeY 20; set pipeZ 20;
setmd box_l $pipeX $pipeY $pipeZ;

part 0 pos 10 10 10 type 1;
part 1 pos 15 10 10 type 1;
inter 0 harmonic 0.1 5.0;
part 0 bond 0 1;

cellsystem domain_decomposition -no_verlet_list
lbfluid grid 1.0 dens 1.0 visc 1.0 tau 0.1 friction 1.0

set upscale 5.;
if { $vmd == "y" } { prepare_vmd_connection simEspresso 3000 1
$upscale; exec sleep 1; imd positions $upscale; }

set fp [open "output.dat" "w"]
set i 0
while { $i<    500 } {

     puts "$i";

      if { $vmd == "y"} { imd positions $upscale; }

     for { set ii 0 } { $ii<    1} { incr ii } { for { set j 0 } { $j<

$pipeY } { incr j } { for { set k 0 } { $k<    $pipeZ } { incr k } {

                                     lbnode $ii $j $k set u 0.5 0.0 0.0;     } 
} }

     set aa [part 0 print pos]; set coraa [expr [lindex $aa 0]];
     set bb [part 1 print pos]; set corbb [expr [lindex $bb 0]];

     puts $fp "$i:   $coraa, $corbb, [expr $corbb - $coraa]";

      integrate 1;
      incr i

}
close $fp;


-------------------------
Dr. Ivan Cimrak
Dep. Software Technologies, University of Zilina, Slovakia
web: www.kst.fri.uniza.sk/~icimrak
--
JP Dr. Axel Arnold
ICP, Universität Stuttgart
Pfaffenwaldring 27
70569 Stuttgart, Germany
Email: address@hidden
Tel: +49 711 685 67609




reply via email to

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