[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ESPResSo-users] pressure boundary condition
From: |
Ulf Schiller |
Subject: |
Re: [ESPResSo-users] pressure boundary condition |
Date: |
Tue, 16 Jun 2015 17:40:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
On 16/06/15 17:14, Wink, Markus wrote:
> Hi everybody,
>
> I have just checked older posts on the mailing-list and found the post of
> Markus and Ulf from the beginning of this year.
> I think it would be interesting to have different boundary conditions like
> pressure/velocity for in- and outlet. Especially having a more complex
> geometry, it is likely that the periodic boundary condition is not sufficient
> to describe the system (Never checked, but can one switch off the PBC in the
> LB scheme?)
>
> Reading once more the User guide, I realized that one can set the 19
> populations of the D3Q19 LB-scheme manually. An idea could be to implement
> the pressure-boundary conditions proposed by Zou and He (for instance) on the
> TCL Level. Nevertheless, I have some concerns about it, and would like to ask
> you about your opinion on that:
>
> 1) Is it in principal possible to implement the pressure-boundary condition
> of Zou/He (http://dx.doi.org/10.1063/1.869307) on the TCL level? As far as I
> know, the inlet and outlet conditions are set before the collision step (in a
> collision-streaming algorithm). So would it work to set the distribution
> functions of the boundary nodes (inlet/outlet) before the integrate step? Of
> course one must turn off the PBC then. If not, I guess one has to implement
> it on the C-Level.
It depends a bit on how one writes things down, but in principle any
boundary condition should specify the unkown populations prior to the
streaming step. While it may be possible to implement pressure
boundaries at the script level, it should be rather straightforward to
do it in C - see e.g.
https://gist.github.com/uschille/8f65dd40572b2d943409 for inlet/outlets
in x-direction.
> 2) Assuming this boundary condition is in principal working, I am not sure,
> if it really helps to simulate "real" systems (with real I mean for instance
> systems in microfluidics). As far as I know, the pressure boundary condition
> is only valid for a pressure gradient over the channel which is very small.
> This is probably not the case in most "realistic" setups. Any comments on
> that?
>
> 3) Another idea that came up to my mind is to give a certain velocity profile
> to the inlet nodes and letting the flow profile develop and repeatedly feed
> the inlet with new particles (in every integration step). At the outlet, one
> has to delete the particles leaving the simulation box. I guess this approach
> is very poor when it comes to computation time. Nevertheless, would that
> approach work in principal?
If I remember correctly, these things are addressed in Rupert's paper:
http://dx.doi.org/10.1103/PhysRevE.89.023303 We have implemented a range
of boundary conditions in LB3D and HemeLB both of which are open source...
Hope this helps,
Ulf
> P.S.: Concerning the question of Markus (maybe outdated already, if so, I am
> really sorry):
>> Another important point would be the definition of more complex
>> boundary shapes. Is it possible to set single lattice nodes as
>> boundaries? We would like to use voxel data to set the boundary nodes.
>> Again, where would be the best starting point for the implementation?
>
> Concerning the user guide, the command "boundary" in the LB implementation
> does not support "set". So I guess it is not possible (I remember asking a
> similar question Georg at the last Espresso-summerschool. He told me, that
> for every new geometry you have to define a distance function for the
> geometry in the file constraint.cpp. This distance vector is not normalized
> and is the vector from the surface to the particle. The geometry has to be
> furthermore added to interaction_data.hpp. I am not sure, if I remember
> everything correctly or if I forgot something.)
>
>
> -----Ursprüngliche Nachricht-----
> Von: address@hidden [mailto:address@hidden Im Auftrag von Ulf Schiller
> Gesendet: Montag, 12. Januar 2015 11:46
> An: address@hidden
> Betreff: Re: [ESPResSo-users] pressure boundary condition
>
> Hi Markus,
>
> have a look at the functions lb_outlet_x and lb_inlet_x in my gist code:
> https://gist.github.com/uschille/8f65dd40572b2d943409
>
> They implement pressure boundary conditions for in/outlets in the
> x-direction. They can be easily modified for the other cartesian directions.
> For inclined in/outlets it's a bit more complicated though.
> The basic idea is to solve an equation system for the unkown populations that
> satisfies the conservation laws plus appropriate conditions for the
> non-equilibrium parts. For the latter, I don't think there is a universal
> rule so it will depend on the specific application what works best.
>
> Best wishes,
> Ulf
>
> On 12/01/15 10:39, Markus Gusenbauer wrote:
>> Dear users and developers,
>>
>> we would like to implement pressure boundary conditions in order to
>> simulate Poiseuille flow. The example poiseuille.tcl is quite limited
>> as we would like to have more complex flow geometries with different
>> in-/outflow directions.
>>
>> What would be the best starting point to implement the boundary
>> condition? Is there any appropriate literature that would fit for
>> ESPResSo? Maybe someone has already started writing the code? Any
>> experiences, ideas or suggestions?
>>
>> Another important point would be the definition of more complex
>> boundary shapes. Is it possible to set single lattice nodes as
>> boundaries? We would like to use voxel data to set the boundary nodes.
>> Again, where would be the best starting point for the implementation?
>>
>> Any help would be appreciated!
>>
>> Thanks,
>> Markus
>>
>
>
> --
> Dr Ulf D Schiller
> Centre for Computational Science
> University College London
> 20 Gordon Street
> London WC1H 0AJ
> United Kingdom
>
> Phone: +44 (0)20 7679 5300
>
--
Dr Ulf D Schiller
Centre for Computational Science
University College London
20 Gordon Street
London WC1H 0AJ
United Kingdom
Phone: +44 (0)20 7679 5300