espressomd-devel
[Top][All Lists]
Advanced

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

Re: [ESPResSo-devel] [ESPResSo-users] Basic Question about using LB


From: Ulf Schiller
Subject: Re: [ESPResSo-devel] [ESPResSo-users] Basic Question about using LB
Date: Tue, 24 Apr 2012 07:56:18 +0200
User-agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0) Gecko/20120129 Thunderbird/10.0

On 04/23/2012 09:00 PM, Stefan Kesselheim wrote:
Hi Salvador, hi Espresso-users,

Am 23.04.2012 um 20:26 schrieb Salvador H-V:

Hi,

I am trying to simulate a quasi-two dimensional mixture suspension composed by 
rigid dumbbells and spheres.

This brings up immediately the question how you want to model the dumbbells and spheres. You can 
make the dumbbells out of several particles connected by bonds that are stiffened with a bond angle 
potential and spheres just by single particle. This if course limits the accuracy as the 
"point coupling" scheme only coarsely represents the corresponding particles. Other 
possiblities would be the raspberry model (Lobaskin et al) or the "wall" model as used in 
most of the LB community (first by Ladd ...).


I am planning to use LB fluid and LB as a thermostat. However just to be on the 
safe side, I would like to ask you the following:

a) It is possible to use LB fluid for a no-cubic box. I want to use a box with 
different length in z-direction. I just want/need a layer of fluid in 
z-direction to cover the particles.

Yes. Noncubic is fine.

b) Because of the periodicity of the system, I was wondering if LB fluid can 
handle partial periodicities (1 1 0)

What would be the boundary condition in z direction, if not periodic? A wall 
can be created with the lbboundary command. Other BCs are not implemented, as 
pressure BCs for example are nontrivial in LB.

Hi Salvador,

If you need pressure boundary conditions, you can try to adapt the code below. It implements node based pressure conditions at an inlet/outlet in x direction. The formulas for y and z direction have a similar structure. The macros PFI and FI have to be adjusted to the data structures for the fluid populations.

Cheers,
Ulf

/***********************************************************************/

INLINE static void lb_inlet_x(double *PFI, int x, int y, int z) {
  double rho, f, m0, my, mz, jx, jy, jz, nxy, nxz;

  int xc, yc;
  xc = x%3;
  yc = y+1;

  rho = 3.*lbpar.pressure;

  f = FI( 0, xc, yc)[z]; m0  = f;
  f = FI( 2, xc, yc)[z]; m0 += 2*f;
  f = FI( 3, xc, yc)[z]; m0 += f;   my  = f;
  f = FI( 4, xc, yc)[z]; m0 += f;   my -= f;
  f = FI( 5, xc, yc)[z]; m0 += f;            mz  = f;
  f = FI( 6, xc, yc)[z]; m0 += f;            mz -= f;
  f = FI( 8, xc, yc)[z]; m0 += 2*f;
  f = FI(10, xc, yc)[z]; m0 += 2*f;
  f = FI(12, xc, yc)[z]; m0 += 2*f;
  f = FI(14, xc, yc)[z]; m0 += 2*f;
  f = FI(15, xc, yc)[z]; m0 += f;   my += f; mz += f;
  f = FI(16, xc, yc)[z]; m0 += f;   my -= f; mz -= f;
  f = FI(17, xc, yc)[z]; m0 += f;   my += f; mz -= f;
  f = FI(18, xc, yc)[z]; m0 += f;   my -= f; mz += f;

  jx = (rho - m0)/6.;
  jy = 0.0;
  jz = 0.0;

  nxy = 3.*jy - 0.5*my;
  nxz = 3.*jz - 0.5*mz;

  FI( 1, xc, yc)[z] = FI( 2, xc, yc)[z] + 2.*jx;
  FI( 7, xc, yc)[z] = FI( 8, xc, yc)[z] + jx + nxy;
  FI( 9, xc, yc)[z] = FI(10, xc, yc)[z] + jx - nxy;
  FI(11, xc, yc)[z] = FI(12, xc, yc)[z] + jx + nxz;
  FI(13, xc, yc)[z] = FI(14, xc, yc)[z] + jx - nxz;

}

/***********************************************************************/

INLINE static void lb_outlet_x(double *PFI, int x, int y, int z) {
  double rho, f, m0, my, mz, jx, jy, jz, nxy, nxz;

  int xc, yc;
  xc = x%3;
  yc = y+1;

  rho = 0.0;

  f = FI( 0, xc, yc)[z]; m0  = f;
  f = FI( 1, xc, yc)[z]; m0 += 2*f;
  f = FI( 3, xc, yc)[z]; m0 += f;   my  = f;
  f = FI( 4, xc, yc)[z]; m0 += f;   my -= f;
  f = FI( 5, xc, yc)[z]; m0 += f;            mz  = f;
  f = FI( 6, xc, yc)[z]; m0 += f;            mz -= f;
  f = FI( 7, xc, yc)[z]; m0 += 2*f;
  f = FI( 9, xc, yc)[z]; m0 += 2*f;
  f = FI(11, xc, yc)[z]; m0 += 2*f;
  f = FI(13, xc, yc)[z]; m0 += 2*f;
  f = FI(15, xc, yc)[z]; m0 += f;   my += f; mz += f;
  f = FI(16, xc, yc)[z]; m0 += f;   my -= f; mz -= f;
  f = FI(17, xc, yc)[z]; m0 += f;   my += f; mz -= f;
  f = FI(18, xc, yc)[z]; m0 += f;   my -= f; mz += f;

  jx = (m0 - rho)/6.;
  jy = 0.0;
  jz = 0.0;

  nxy = 3.*jy - 0.5*my;
  nxz = 3.*jz - 0.5*mz;

  FI( 2, xc, yc)[z] = FI( 1, xc, yc)[z] - 2.*jx;
  FI( 8, xc, yc)[z] = FI( 7, xc, yc)[z] - jx - nxy;
  FI(10, xc, yc)[z] = FI( 9, xc, yc)[z] - jx + nxy;
  FI(12, xc, yc)[z] = FI(11, xc, yc)[z] - jx - nxz;
  FI(14, xc, yc)[z] = FI(13, xc, yc)[z] - jx + nxz;

}

/***********************************************************************/

--
Dr. Ulf D. Schiller                        Building 04.16, Room 3006
Institute of Complex Systems (ICS-2)       Phone:   +49 2461 61-6144
Forschungszentrum Jülich, Germany          Fax:     +49 2461 61-3180

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


reply via email to

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