espressomd-users
[Top][All Lists]
Advanced

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

Re: [ESPResSo-users] Implementation of boundaries, lb_boundaries.cpp


From: Wink, Markus
Subject: Re: [ESPResSo-users] Implementation of boundaries, lb_boundaries.cpp
Date: Tue, 4 Feb 2014 13:23:15 +0000

Hi all,

that helps a lot. So we are looking for the shortest distance of the node to 
any lbboundary. That makes sense. Just to be clear: The variable 
"n_lb_boundaries" describes the total number of lbboundaries. So if I had two 
walls, and one rhomboid, the index n would run from 0 to 2. And "dist" would 
finally be the minimum distance of the node to any of the three lbboundaries. 
If that is the case, I think I understood it.

What do you mean by " and the number is the index of the lbboundary+1"? Does 
that mean, that the first boundary gets the number 2, the second number 3 and 
so on (that actually happened, when I used "lbboundary print boundary")? Is 
there any particular reason, why that is done that way? Wouldn't it be 
sufficient just to give boundaries the flag 1, and fluid nodes the flag 0? Or 
is there any other part in the code, where one needs that additional 
information?

Greetings 

Markus 

-----Ursprüngliche Nachricht-----
Von: address@hidden [mailto:address@hidden Im Auftrag von Stefan Kesselheim
Gesendet: Dienstag, 4. Februar 2014 13:45
An: address@hidden List
Betreff: Re: [ESPResSo-users] Implementation of boundaries, lb_boundaries.cpp

Hi Markus, 
thanks for reading my beautiful code :-).

On Feb 4, 2014, at 1:30 PM, "Wink, Markus" <address@hidden> wrote:

> Dear all,
>  
> I have got a question concerning the implementation of boundaries in the 
> Lattice-Boltzmann source code (lb-boundaries.cpp). For that, a flag (stored 
> in the structure "lbfields[k].boundary") is set to decide, whether the node 
> is a fluid of boundary node.
>  
> As far as I understood the code, the function "calculate_wall_dist" in line 
> 281 calculates the distance of the node to the wall. The if-clause in line 
> 309 compares that distance to the distance dist=1e99 and gives out the 
> minimum. Line 315 ff. finally sets the flag to the structure 
> lbfields.boundary.
>  
> Here are my questions:
> 1)    A flag of 0 means fluid node, doesn't it? All boundary-nodes are 1 or 
> bigger.

True. Values > 1 mean "this is a wall node" and the number is the index of the 
lbboundary+1.

> 2)    Why do you initialize the variable "dist" with 1e99. I expected 
> something like: compare the distances origin-node to origin-wall; if the 
> first one is smaller, one gets a boundary node, otherwise a fluid-node. Where 
> does that number come from?

We search for the lbboundary with the lowest distance to a particular node. 
1e99 is larger than any other floating number, that we would expect there and 
could also be a constant like LARGEST_FLOAT (I don't think such a thing is 
defined in espresso).
We want to know the minimum distance to any boundary, and a negative value 
indicates that a node is "in" the wall. 1e99 is just a simple coding trick to 
avoid a bit of code. Probably unnecessary.

Did that help?
Cheers
Stefan



reply via email to

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