<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>LBMethod.org forums</title>
        <description>If forum threads have insufficient typesetting abilities for your purpose, you may also present topics on &lt;a href=&quot;http://www.lbmethod.org/community:main&quot;&gt;the Wiki&lt;/a&gt; and reference the page from the forum. In this way you can, for example, typeset mathematical formulas with a LaTeX-style syntax, or upload pictures and source code. Read &lt;a href=&quot;http://www.lbmethod.org/community_wiki_intro&quot;&gt;the intro&lt;/a&gt; to learn how to use the Wiki.
&lt;br/&gt;&lt;br/&gt;
Use the following links to find further information and materials on lattice Boltzmann:
&lt;ul&gt;
&lt;li&gt; The &lt;a href=&quot;http://www.lbmethod.org/&quot;&gt;LBMethod.org&lt;/a&gt; documentation project documents certain aspects of lattice Boltzmann and provides links to literature.&lt;/li&gt;
&lt;li&gt; Many &lt;a href=&quot;http://www.lbmethod.org/literature:theses&quot;&gt;theses on lattice Boltzmann&lt;/a&gt; are available online and provide a good starting point for newcomers.&lt;/li&gt;
&lt;li&gt; The free &lt;a href=&quot;http://www.lbmethod.org/palabos/&quot;&gt;Palabos library&lt;/a&gt; offers a framework for the implementation of lattice Boltzmann programs.&lt;/li&gt;
&lt;/ul&gt;

&lt;script type=&quot;text/javascript&quot;&gt;
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src='&quot; + gaJsHost + &quot;google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E&quot;));
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
try {
var pageTracker = _gat._getTracker(&quot;UA-3642466-4&quot;);
pageTracker._trackPageview();
} catch(err) {}&lt;/script&gt;</description>
        <link>http://www.lbmethod.org/forum/index.php</link>
        <lastBuildDate>Thu, 09 Sep 2010 05:40:13 +0200</lastBuildDate>
        <generator>Phorum 5.2.6a</generator>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?3,792,2942#msg-2942</guid>
            <title>Re: D3Q15 vs D3Q19 vs D3Q27</title>
            <link>http://www.lbmethod.org/forum/read.php?3,792,2942#msg-2942</link>
            <description><![CDATA[ Hi everyone,<br />
<br />
Do you suggest any article about comparison of 3D lattice links? <br />
<br />
Thank you<br />
<br />
Daralcan]]></description>
            <dc:creator>daralcan</dc:creator>
            <category>LBM: Theory</category>
            <pubDate>Wed, 08 Sep 2010 18:04:37 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2922,2941#msg-2941</guid>
            <title>Re: Compiling Error on defineDynamics</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2922,2941#msg-2941</link>
            <description><![CDATA[ Hi, <br />
<br />
Thanks for the examples.<br />
<br />
In the Martys and Chen model, there are two potential terms for fluid-fluid and fluid-solid. Since we can assign a density value to the bounce back node, to have the Martys and Chen model, we just need to use two potential fns for fluid nodes without contact with bounceback node and fluid nodes with contact with bounceback nodes in lattice, respectively.  I need to study the data process to understand the code structure better.  <br />
<br />
Hong]]></description>
            <dc:creator>hyoon</dc:creator>
            <category>General</category>
            <pubDate>Tue, 07 Sep 2010 16:03:03 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2940,2940#msg-2940</guid>
            <title>boussinesqThermal2d</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2940,2940#msg-2940</link>
            <description><![CDATA[ Dear All.<br />
<br />
Someone know how to change the boussinesqThermal2d solver to simulate the Natural convection in a square cavity (pag338, [<a rel="nofollow"  href="https://rcpt.yousendit.com/941917729/89c0962530b39c907ead5f52a221c95a">rcpt.yousendit.com</a>])?<br />
<br />
Thanks in advance.<br />
Stefano]]></description>
            <dc:creator>giordy75</dc:creator>
            <category>General</category>
            <pubDate>Mon, 06 Sep 2010 18:09:24 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?3,2939,2939#msg-2939</guid>
            <title>Bed Elevation?</title>
            <link>http://www.lbmethod.org/forum/read.php?3,2939,2939#msg-2939</link>
            <description><![CDATA[ I am trying to apply LBE to shallow water flow and I want to test it for a case where there is a small bump in a channel for the subcritical flow. Does anyone know how should I introduce the bed elevation in the model? I am using the sample FORTRAN code provided by Zhou at the end of his book.]]></description>
            <dc:creator>mathloverboy</dc:creator>
            <category>LBM: Theory</category>
            <pubDate>Mon, 06 Sep 2010 08:55:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?9,2938,2938#msg-2938</guid>
            <title>Bounca back</title>
            <link>http://www.lbmethod.org/forum/read.php?9,2938,2938#msg-2938</link>
            <description><![CDATA[ Hi dear all<br />
I decided to simulate heat and fluid flow in a 2-d channel with a single square obstacle placed in it. at the first stage of my simulation I simulated the hydrodynamic using d2q9 with mid-plane bounce back but I have velocity on solid boundaries surely, this non-zero velocities can affect the heat transfer problem in the second stage of my simulation so i have 2 questions:<br />
1- how much it will be accurate if we force the velocities on the solid boundaries to be zero right after simulation ?<br />
2- are the half-way bounce back is significantly accurate than mid-plane bounce back?  <br />
<br />
<br />
thanks in advance]]></description>
            <dc:creator>r.imani</dc:creator>
            <category>LBM: Algorithms</category>
            <pubDate>Sat, 04 Sep 2010 13:47:29 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2936,2937#msg-2937</guid>
            <title>Re: About integrateProcessingFunctional</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2936,2937#msg-2937</link>
            <description><![CDATA[ Hi,<br />
<br />
The effect of the Shan/Chen data processors (both the single- and the multi-component version) is to compute the density and the momentum for every component, and assign it to the lattice. In your example, the results of the single-component model will simply be overwritten by the results of the multi-component version, which is probably not what you want.]]></description>
            <dc:creator>jlatt</dc:creator>
            <category>General</category>
            <pubDate>Fri, 03 Sep 2010 17:20:45 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2936,2936#msg-2936</guid>
            <title>About integrateProcessingFunctional</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2936,2936#msg-2936</link>
            <description><![CDATA[ Hi,<br />
<br />
I would like to do some modify in the multicomponent2d.cpp code. I want to add the interparticle force for each component except the ShanChen Multicomponent interaction, which is already in the code. Thus I did it like below. Am I right? Can I use three interfrateProcessingFunctional in the same time? Thank you.<br /><pre class="bbcode">
integrateProcessingFunctional (
            new ShanChenSingleComponentProcessor2D&lt;T,DESCRIPTOR&gt; (
                G11, new interparticlePotential::PsiShanChen93&lt;T&gt;(rho0) ), lattice.getBoundingBox(), latticeOne, processorLevel );

integrateProcessingFunctional (
            new ShanChenSingleComponentProcessor2D&lt;T,DESCRIPTOR&gt; (
                G22, new interparticlePotential::PsiShanChen93&lt;T&gt;(rho0) ),lattice.getBoundingBox(), latticeTwo, processorLevel );

integrateProcessingFunctional (new ShanChenMultiComponentProcessor2D&lt;T,DESCRIPTOR&gt;(G12,constOmegaValues), Box2D(1,nx-2,0,ny-1),
            blockLattices, processorLevel );</pre>]]></description>
            <dc:creator>Glary</dc:creator>
            <category>General</category>
            <pubDate>Fri, 03 Sep 2010 17:11:43 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2921,2935#msg-2935</guid>
            <title>Re: Few simple questions</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2921,2935#msg-2935</link>
            <description><![CDATA[ 1) What do you mean by height of fluid. I guess that you implemented a shallow water equation or something similar. Otherwise you do not have any &quot;height of watter &quot; out of the box. If I am not mistaken in the shallow water equation the height of water is &quot;equivalent&quot; with the density in palabos. So initializing the density at the height you want is as simple as initializing the density.<br />
<br />
2) You can use BoxProcessingFunctional2D instead. And then use integrateProcessingFunctional. But be aware that the DataProcessors integrate to the lattice with integrateProcessingFunctional are executed after the collision and streaming steps. This does not seem to be what you want since your DataProcessor is executed after collision.<br />
<br />
3) You cannot extract dx and dt directly from the lattice since it contains no information about the &quot;physical&quot; parameters of your flow. But if you want to use these parameters in a DataProcessor you can just pass them as members of the DataProcessor and initialize them with the constructor.<br />
<br />
4) There is no way to disable stream . The only way to do it is as you mention to enable it only on certain parts of the domain.<br />
<br />
5) On the boundaries of the domain, if the periodicity is &quot;off&quot; then by default the distribution functions that are incoming into the domain are doing a &quot;half-way&quot; bounceback. If periodicity is &quot;on&quot; then the f_i are juste streamed periodically.<br />
<br />
I hope it helps.]]></description>
            <dc:creator>malaspin</dc:creator>
            <category>General</category>
            <pubDate>Fri, 03 Sep 2010 13:52:08 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2922,2934#msg-2934</guid>
            <title>Re: Compiling Error on defineDynamics</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2922,2934#msg-2934</link>
            <description><![CDATA[ Hi,<br />
<br />
Are you referring to the single-component multi-phase Shan/Chen model in which the interaction potential is psi(rho)=rho? In this case it is already implemented in Palabos. Have a look at the example program codesByTopic/shanChenMultiPhase/segregation2D.cpp (the example is 2D, but the same works in 3D). This example uses the ShanChenSingleComponentProcessor, which takes as one of the arguments a function for the interaction potential. In the example, the chosen potential is interparticlePotential::PsiShanChen94&lt;T&gt;(psi0,rho0). You can replace this by interparticlePotential::PsiIsRho() to have the Martys and Chen model.<br />
<br />
Have a look at the file multiPhysics/interparticlePotential.h to get a list of implemented potentials, and to see how to implement new potentials.<br />
<br />
Yes, please do share your thoughts and results with us, we are looking forward to gathering more knowledge about these models.]]></description>
            <dc:creator>jlatt</dc:creator>
            <category>General</category>
            <pubDate>Fri, 03 Sep 2010 11:25:17 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?3,2881,2933#msg-2933</guid>
            <title>Re: about relaxation time and kinematic viscosity</title>
            <link>http://www.lbmethod.org/forum/read.php?3,2881,2933#msg-2933</link>
            <description><![CDATA[ So far I have only used the simple BGK-dynamics model with only one component, so it may be not exactly the same in your case.<br />
But the principle idea should be the same, so If you take a look at tau:<br />
<br />
tau = nu_lb / c  + 1/2<br />
<br />
with nu_lb = dt/dx^2 * nu_d    and  nu_d = 1/Re<br />
<br />
tau = 3 * dt/dx^2 * 1/Re + 1/2<br />
<br />
Now if you fix the values for tau (=1), and Re (or nu_d which comes from nu_ph), choose a value for dx (or the number of cells N, with dx=1/N), you are left with picking the right timestep dt, and nu_ph has still the value you wanted it to have.<br />
Of course this usually means longer calculation time, but with the values you need.<br />
<br />
nu_lb ... viscosity in LB-units<br />
nu_d.... dimensionless viscosity<br />
nu_ph... physical visc.<br />
Re...     Reynoldsnumber<br />
dt.... timestep LB<br />
dx... grid spacing LB<br />
<br />
hope that helps a bit^^]]></description>
            <dc:creator>Holzdolph</dc:creator>
            <category>LBM: Theory</category>
            <pubDate>Thu, 02 Sep 2010 16:24:48 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2776,2932#msg-2932</guid>
            <title>Re: Simulating a canal with sliding gate</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2776,2932#msg-2932</link>
            <description><![CDATA[ Ah sorry, I didn't update the information. I don't get the segmentation fault anymore. I had it when I tried to use one gate may times, or tried to delete it. I think palabos is taking care of all the pointers that I pass as arguments, so it's ok.<br />
I already switched from dynamics to data processors though.<br />
<br />
I'm trying to write a data processor that'd connect two separate lattices, but with no success. Don't know how to turn off boundary condition completely, it always gets bounced back.<br />
I decided this topic is way too messy and created another - [<a rel="nofollow"  href="http://www.lbmethod.org/forum/read.php?4,2921">www.lbmethod.org</a>]]]></description>
            <dc:creator>makhan</dc:creator>
            <category>General</category>
            <pubDate>Thu, 02 Sep 2010 13:12:39 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2776,2931#msg-2931</guid>
            <title>Re: Simulating a canal with sliding gate</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2776,2931#msg-2931</link>
            <description><![CDATA[ Hello,<br />
<br />
You never delete your gleft and gright pointers which may be a problem. A you sure it is not related with your segmentation fault?]]></description>
            <dc:creator>malaspin</dc:creator>
            <category>General</category>
            <pubDate>Thu, 02 Sep 2010 12:14:41 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2922,2930#msg-2930</guid>
            <title>Re: Compiling Error on defineDynamics</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2922,2930#msg-2930</link>
            <description><![CDATA[ Hi Jonas,<br />
<br />
Thanks for correcting the problem. &lt;int&gt;Type works and you're right -- no reason for double type of geometry.<br />
<br />
I have one more question related to my current work.<br />
In coming weeks, I plan to update Shan-Chen model by adding fluid-surface forces developed by Martys and Chen (1996).<br />
This method has been already used for many cases and demonstrated well in Sukop and Thorne's textbook.<br />
<br />
I plan to dig out how the current Shan-Chen model is coded and follow the current data processing.<br />
I wonder if you have a good example or some tips for this.<br />
<br />
Hopefully I can share my work here later.<br />
<br />
Hong]]></description>
            <dc:creator>hyoon</dc:creator>
            <category>General</category>
            <pubDate>Thu, 02 Sep 2010 05:51:46 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2901,2929#msg-2929</guid>
            <title>Re: stuck with own data processor</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2901,2929#msg-2929</link>
            <description><![CDATA[ Yes I´ve started with that tutorial to write my functional. And I think the functional i wrote is OK, the only problem that remains is to get my data :)<br />
<br />
That parallel programming is still something I´ve to get used to:<br />
In the example with the average energy, you use some BlockStatistics class to calculate the energy (for each process) and then somehow sum it up.....<br />
and since i only use one simple variable inside my class to store the value i want, of course it only works for a single process, since it gets split up in parallel mode....<br />
<br />
edit:<br />
So, I cant say that I completely understand how that BlockStatistics class is working, but it´s doing what I want right now.<br />
Here´s the final code:<br />
<br /><pre class="bbcode">
class MyFunctional :
    public ReductiveBoxProcessingFunctional3D_S&lt;bool&gt;
{
public:
    MyFunctional();
    virtual void process(Box3D domain, ScalarField3D&lt;bool&gt;&amp; matrix);
    virtual MyFunctional* clone() const;
    plint getArea() const;
private:
    plint sumEnergyId;
    plint area;
};

MyFunctional::MyFunctional() : area(this-&gt;getStatistics().subscribeSum()) { 

}

void MyFunctional::process (Box3D domain, ScalarField3D&lt;bool&gt;&amp; matrix )

{
  plint subarea=0;
  BlockStatistics&amp; statistics = this-&gt;getStatistics();
    for (plint iX=domain.x0; iX&lt;=domain.x1; ++iX) {
        for (plint iY=domain.y0; iY&lt;=domain.y1; ++iY) {
            for (plint iZ=domain.z0; iZ&lt;=domain.z1; ++iZ) {
                if (matrix.get(iX, iY, iZ)) subarea++;
            }
	}
    }
statistics.gatherSum(area, subarea);
}

MyFunctional* MyFunctional::clone() const
{
    return new MyFunctional(*this);
}

plint MyFunctional::getArea() const {
  return this-&gt;getStatistics().getSum(area);
  
}


plint computeArea(MultiScalarField3D&lt;bool&gt;&amp; matrix, Box3D&amp; domain)  {
  MyFunctional*  functional;
  functional = new MyFunctional();
  applyProcessingFunctional(*functional, domain, matrix);
  return functional-&gt;getArea();
}</pre>]]></description>
            <dc:creator>Holzdolph</dc:creator>
            <category>General</category>
            <pubDate>Wed, 01 Sep 2010 12:14:31 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2922,2928#msg-2928</guid>
            <title>Re: Compiling Error on defineDynamics</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2922,2928#msg-2928</link>
            <description><![CDATA[ Hello,<br />
<br />
Yes, we made a little change it the user's interface, sorry for that (the change made sense, though, as you will see in the following). As of version 0.7, the geometry argument should no longer be of type MultiScalarField2D&lt;double&gt;, but of type MultiScalarField2D&lt;int&gt;.<br />
<br />
Of course, &quot;int&quot; makes more sense than &quot;double,&quot; because &quot;geometry&quot; is a flag matrix. In old versions of Palabos, it was unfortunately not possible to mix data types, which means, it was not possible to bring a MultiBlockLattice2D&lt;T1,Descriptor&gt; in contact with a MultiScalarField2D&lt;T2&gt; if T1 is different from T2. The workaround was to have the flag matrix to be of type &quot;double&quot;. This was a bit awkward and has been fixed: from now on flag matrices are simply of type int.]]></description>
            <dc:creator>jlatt</dc:creator>
            <category>General</category>
            <pubDate>Wed, 01 Sep 2010 11:28:02 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2901,2926#msg-2926</guid>
            <title>Re: stuck with own data processor</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2901,2926#msg-2926</link>
            <description><![CDATA[ Hi,<br />
<br />
The philosophy of Palabos is that, while the end-user works with MultiBlocks, the data-processors are applied individually to each AtomicBlock inside the MultiBlock. That's how parallelism works in Palabos, and it is explained in the user's guide. There is even a tutorial that investigates this point in detail.]]></description>
            <dc:creator>jlatt</dc:creator>
            <category>General</category>
            <pubDate>Wed, 01 Sep 2010 11:16:51 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2901,2925#msg-2925</guid>
            <title>Re: stuck with own data processor</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2901,2925#msg-2925</link>
            <description><![CDATA[ Hi,<br />
<br />
you were right, taking the existing code of a functional and changing it is the best way, I finally got it to work :)<br />
<br />
Although, two problems still remain (were one of them I´m sure I´ll solve on my own), about the other one I´m not so sure:<br />
<br />
The thing is, the <i class="bbcode">ReductiveBoxProcessingFunctional3D_S</i>´s virtual process function requires a ScalarField, and not a MultiScalarField. And I didnt find any other ProcessingFunctional which has a MultiScalarField in its process function.<br />
<br />
So if I use a ScalarField, the code compiles and works - but not in parallel mode. Which is the point of the DataProcessor in the first place, to work in mpi-mode :(<br />
<br />
Thats my Functional:<br />
<br /><pre class="bbcode">
class MyFunctional :
    public ReductiveBoxProcessingFunctional3D_S&lt;bool&gt;
{
public:
    MyFunctional();
    virtual void process(Box3D domain, ScalarField3D&lt;bool&gt;&amp; matrix);
    virtual MyFunctional* clone() const;
    plint getArea() const;
private:
    plint sumEnergyId;
    plint area;
};

MyFunctional::MyFunctional() { 
area = 0;
}

void MyFunctional::process (Box3D domain, ScalarField3D&lt;bool&gt;&amp; matrix )

{
    for (plint iX=domain.x0; iX&lt;=domain.x1; ++iX) {
        for (plint iY=domain.y0; iY&lt;=domain.y1; ++iY) {
            for (plint iZ=domain.z0; iZ&lt;=domain.z1; ++iZ) {
                if (matrix.get(iX, iY, iZ)) area++;
                pcout &lt;&lt; matrix.get(iX, iY, iZ);
            }
	}
    pcout &lt;&lt; endl;
    }
pcout &lt;&lt; area &lt;&lt; endl;
}

MyFunctional* MyFunctional::clone() const
{
    return new MyFunctional(*this);
}

plint MyFunctional::getArea() const {
  return area;
}

plint computeArea(MultiScalarField3D&lt;bool&gt;&amp; matrix, Box3D&amp; domain)  {
  MyFunctional  functional;
  applyProcessingFunctional(functional, domain, matrix);
  return functional.getArea();
}</pre>
(note: those pcouts are just for testing)<br />
<br />
the ReductiveBoxProcessingFunctional3D_S in reductiveDataProcessingFunctional3D.h looks like:<br />
<br />
/<pre class="bbcode">
// Easy instantiation of boxed data processor for a single scalar field
template&lt;typename T&gt;
struct ReductiveBoxProcessingFunctional3D_S : public PlainReductiveBoxProcessingFunctional3D {
    virtual void process(Box3D domain, ScalarField3D&lt;T&gt;&amp; field) =0;
    /// Invoke parent-method &quot;processGenericBlocks&quot; through a type-cast
    virtual void processGenericBlocks(Box3D domain, std::vector&lt;AtomicBlock3D*&gt; atomicBlocks);
};</pre>
<br />
Can I just make another one, with a MultiScalarField (and does it work with an AtomicBlock or shouldn´t it be a MultiBlock). Well thats the question, and I´ll try it, but I think it´s not going to be that simple ?]]></description>
            <dc:creator>Holzdolph</dc:creator>
            <category>General</category>
            <pubDate>Wed, 01 Sep 2010 10:33:20 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2921,2924#msg-2924</guid>
            <title>Re: Few simple questions</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2921,2924#msg-2924</link>
            <description><![CDATA[ 5) As I define boundary condition using data processor, what's the proper way to disable any bounce back that occurs? Right now, I'm running the processor after collision phase and then apply streaming, but judging by the results, some default boundary condition is applied to these cells anyway (I defined BounceBack dynamics at the top and bottom wall, but I can see the water being bounced back also at inlet and outlet).]]></description>
            <dc:creator>makhan</dc:creator>
            <category>General</category>
            <pubDate>Wed, 01 Sep 2010 10:22:09 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2922,2922#msg-2922</guid>
            <title>Compiling Error on defineDynamics</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2922,2922#msg-2922</link>
            <description><![CDATA[ Hello,<br />
<br />
I tried to use ShanChen model to simulate single component liquid-vapor flow.<br />
I modifed the sample code - segregation2D and tutorial code - permeability.<br />
I defined lattice and geometry as in permeability.<br />
I compiled the code using version 6 and the latest version.<br />
With version 6, it was ok, but with the latest version (I complied on Cygwin),<br />
I've got the error message as below:<br />
<br />
error: no matching function for call to 'defineDynamics(plb::MultiBlockLattice2D&lt;double, plb::descriptor::ShanChenD2Q9Descriptor&gt;&amp;, <br />
    plb::MultiScalarField2D&lt;double&gt;&amp;, plb::BounceBack&lt;double, plb::descriptor::ShanChenD2D9Descriptor&gt;*, int)<br />
<br />
Here is my code:<br />
defineDynamics(lattice, geometry, new BounceBack&lt;T, DESCRIPTOR&gt;(65.), 1);<br />
<br />
the same error on         defineDynamics(lattice, geometry, new NoDynamics&lt;T, DESCRIPTOR&gt;(), 2);<br />
<br />
It was complied correctly with permeability.cpp where similar call was used.<br />
<br />
Any help will be appreciated.<br />
<br />
Thanks,<br />
<br />
Hong]]></description>
            <dc:creator>hyoon</dc:creator>
            <category>General</category>
            <pubDate>Tue, 31 Aug 2010 20:03:35 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2921,2921#msg-2921</guid>
            <title>Few simple questions</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2921,2921#msg-2921</link>
            <description><![CDATA[ My other topic grew too large already so I'll start fresh here. Especially since I switched from dynamics to data processors.<br />
Will number my questions to make it easier to answer.<br />
<br />
1) What's the proper way to initialize the height of fluid? InitializeAtEquilibrium with rho parameter seems like initializing the density and I want the density throughout the whole lattice to be constant. Want to initialize and monitor the water level.<br />
<br />
2) I'm using OneCellIndexedFunctional2D. What's the proper way to run it in each iteration between collision and streaming phase? Now I'm using lattice.collide(), applyIndexed(lattice, box, new Functional()), lattice.stream(). Is there a way to reach the same result with single function call? Avoid creating new instance in each loop?<br />
<br />
3) I can get dx and dt using parameters.getDeltaX() and parameters.getDeltaT(), where parameters are of type IncomprFlowParam. Can I (how) extract parameters from lattice (Multi)BlockLattice2D?<br />
<br />
4) Is there a way to permanently disable streaming between two columns? Or do I have to use stream with Box2D parameter defining the domain?]]></description>
            <dc:creator>makhan</dc:creator>
            <category>General</category>
            <pubDate>Tue, 31 Aug 2010 11:46:38 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?9,2919,2920#msg-2920</guid>
            <title>Re: Non newtonian flow</title>
            <link>http://www.lbmethod.org/forum/read.php?9,2919,2920#msg-2920</link>
            <description><![CDATA[ Hello,<br />
<br />
there are a few references. I think that some of them are also discussed here. Otherwise you should search for 'lattice boltzmann non-newtonian' in Google Scholar. You will find plenty of literature.<br />
<br />
Timm]]></description>
            <dc:creator>Timm</dc:creator>
            <category>LBM: Algorithms</category>
            <pubDate>Tue, 31 Aug 2010 10:47:09 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?9,2919,2919#msg-2919</guid>
            <title>Non newtonian flow</title>
            <link>http://www.lbmethod.org/forum/read.php?9,2919,2919#msg-2919</link>
            <description><![CDATA[ Hi<br />
I'm a ChemE undergrad, final year. As a project I'm modifying a D3Q19 LBM implementation to include the modellng of non newtonian fluids, power law to start with.<br />
As I understand it, what I'd essentially need to change is the collision function, which currently implements the standard BGK model.<br />
Is there a well known formulation of such a thing? Some references would be great..<br />
<br />
Thanks<br />
Piyush]]></description>
            <dc:creator>piyush</dc:creator>
            <category>LBM: Algorithms</category>
            <pubDate>Tue, 31 Aug 2010 09:52:45 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2914,2918#msg-2918</guid>
            <title>Re: time dependent external force</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2914,2918#msg-2918</link>
            <description><![CDATA[ Hi jlatt,<br />
<br />
Thank you for your quick reply and advise. I will upgrade to the new version. If I find further questions in the new version, I will come back. Thank you very much for your help.]]></description>
            <dc:creator>Glary</dc:creator>
            <category>General</category>
            <pubDate>Mon, 30 Aug 2010 13:49:30 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2914,2917#msg-2917</guid>
            <title>Re: time dependent external force</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2914,2917#msg-2917</link>
            <description><![CDATA[ Hi,<br />
<br />
In the version 0.6 you are using, there exists unfortunately no convenient way of changing the external force in a given domain. The only solution in this version is to write your own data processor. This is not difficult, as you can take example on other data processors in the multi-component code, but it is definitely not convenient.<br />
<br />
I much more recommend that you upgrade to version 0.7. While this upgrade may require a few minor adaptations in your end-user application, this should be quick, especially if you get inspiration from the example programs.<br />
<br />
In version 0.7, you can change the exernal force at any time by calling something like<br />
<br /><pre class="bbcode">
Array&lt;T,2&gt; externalForce(0.,0.001);
setExternalVector(lattice,lattice.getBoundingBox(),DESCRIPTOR&lt;T&gt;::ExternalField::forceBeginsAt,force);</pre>]]></description>
            <dc:creator>jlatt</dc:creator>
            <category>General</category>
            <pubDate>Mon, 30 Aug 2010 13:43:52 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2776,2916#msg-2916</guid>
            <title>Re: Simulating a canal with sliding gate</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2776,2916#msg-2916</link>
            <description><![CDATA[ Ok, I learned that I can't access coordinates from boundary condition dynamics, so I switched to data processors.<br />
<br />
I wrote a simple OneCellIndexed functional that does nothing and am trying to run it with each iteration, but I keep getting segmentation fault. Is there any method that allows me to define an indexed functional that'd be run with each iteration? (something like integrateProcessingFunctional?) Or should I create a new functional object for each iteration?<br />
<br />
Another thing I'd like to do is to disable streaming between 2 columns (in this case nx/2 and nx/2+1). Can it be done? Or should I define 2 separate lattices and apply functional to the end of one and beginning of another?<br />
<br /><pre class="bbcode">
#include &quot;palabos2D.h&quot;
#include &quot;palabos2D.hh&quot;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace plb;
using namespace std;

typedef double T;

#define DESCRIPTOR descriptors::D2Q9Descriptor

template&lt;typename T, template&lt;typename U&gt; class Descriptor&gt;
class Gate : public OneCellIndexedFunctional2D&lt;T,Descriptor&gt; {
public:
    Gate(plint ny_, bool left_)
        : ny(ny_),
          left(left_)
    { }
    Gate&lt;T,Descriptor&gt;* clone() const {
        return new Gate&lt;T,Descriptor&gt;(*this);
    }
    virtual void execute(plint iX, plint iY, Cell&lt;T,Descriptor&gt;&amp; cell) const {
//	T h = 0.;
//	for (plint i=0; i&lt;9; i++)
//		h += cell[i];
//	cout &lt;&lt; &quot;Height in (&quot; &lt;&lt; iX &lt;&lt; &quot;,&quot; &lt;&lt; iY &lt;&lt; &quot;) = &quot; &lt;&lt; h &lt;&lt; endl;
    }
private:
    plint ny;
    bool left;
};

Gate&lt;T, DESCRIPTOR&gt; *gleft, *gright;


void canalSetup( MultiBlockLattice2D&lt;T, DESCRIPTOR&gt;&amp; water,
                          T rho0,
                          T force )
{
    int nx = water.getNx();
    int ny = water.getNy();
    
    // Bounce-back on bottom wall
    defineDynamics(water, Box2D(0,nx-1, 0,0), new BounceBack&lt;T, DESCRIPTOR&gt;(rho0) );
    // Bounce-back on top wall
    defineDynamics(water, Box2D(0,nx-1, ny-1,ny-1), new BounceBack&lt;T, DESCRIPTOR&gt;(rho0) );



	
    // External force
//    setExternalVector(water, water.getBoundingBox(),DESCRIPTOR&lt;T&gt;::ExternalField::forceBeginsAt, Array&lt;T,2&gt;(0.,-force));

    water.initialize();
}

int main(int argc, char *argv[])
{
    plbInit(&amp;argc, &amp;argv);
    global::directories().setOutputDir(&quot;./tmp/&quot;);
    
    const T omega = 1.0;
    const int nx   = 1200;
    const int ny   = 400;
    T force        = 0.15/(T)ny;
    T rho0 = 0.;
    const int maxIter  = 16000;
    const int saveIter = 100;

    MultiBlockLattice2D&lt;T, DESCRIPTOR&gt; water (nx,ny, new BGKdynamics&lt;T, DESCRIPTOR&gt;(omega) );

    water.periodicity().toggleAll(false);

    canalSetup(water, rho0, force);
	
    pcout &lt;&lt; &quot;Starting simulation&quot; &lt;&lt; endl;
    for (int iT=0; iT&lt;maxIter; ++iT) {
        if (iT%saveIter==0) {
    		ImageWriter&lt;T&gt; imageWriter(&quot;leeloo&quot;);
			imageWriter.writeScaledGif(createFileName(&quot;u&quot;, iT, 6), *computeVelocityNorm(water));
        }

        water.collide();
        gleft = new Gate&lt;T, DESCRIPTOR&gt;(ny,true);
        gright = new Gate&lt;T, DESCRIPTOR&gt;(ny,false);
	applyIndexed(water, Box2D(nx/2, nx/2, 0, ny-1), gleft);
	applyIndexed(water, Box2D(nx/2+1, nx/2+1, 0, ny-1), gright);
        water.stream();
    }
}
</pre>]]></description>
            <dc:creator>makhan</dc:creator>
            <category>General</category>
            <pubDate>Mon, 30 Aug 2010 12:37:40 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2914,2914#msg-2914</guid>
            <title>time dependent external force</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2914,2914#msg-2914</link>
            <description><![CDATA[ Hi,<br />
<br />
<br />
I would like to add a time dependent ExternalForce in the multicomponent code in palabos-0.6r2. (I know there is a new version, but I am sorry what I used is the old version.) I found an opption about set External Force in the core/dynamic.hh file. But I didnot used it successfully. Please give me a help. The command I used to set the time-dependent external force is as below<br /><pre class="bbcode">
int main(int argc, char *argv[])
{
    plbInit(&amp;argc, &amp;argv);
    global::directories().setOutputDir(&quot;./tmp/&quot;);
.........

     // Main loop over time iterations.
    for (int iT=0; iT&lt;maxIter; ++iT) {

     if (iT &gt; 20){
       Array&lt;T,2&gt; externalforce (0.,0.001);
       setExternalField (insideFluid, Box2D(0, nx-1, 0, ny-1), 1, &amp;externalforce[0]);
     }</pre>
the error message is <br />
<u class="bbcode">rayleighTaylor2D.cpp:322: error: `setExternalField' undeclared (first use this function)</u><br />
<br />
<br />
How to deal with this problem? I really appreciate for your help! By the way what is the meaning of size in<pre class="bbcode">
void Dynamics&lt;T,Descriptor&gt;::setExternalField (
        Cell&lt;T,Descriptor&gt;&amp; cell, plint pos, plint size, const T* ext)</pre>
<br />
 Thank you in advance.]]></description>
            <dc:creator>Glary</dc:creator>
            <category>General</category>
            <pubDate>Sat, 28 Aug 2010 16:30:04 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2842,2913#msg-2913</guid>
            <title>Re: constant density at inlet</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2842,2913#msg-2913</link>
            <description><![CDATA[ Hi Cotrf,<br />
<br />
I wonder if you figured out what problem was.  I will try to work on wetting porous media this weekend.<br />
<br />
Please let me know if you have any progress. I will update mine after the weekend if I will get any meaningful resutls.<br />
<br />
Thanks,<br />
<br />
Hong]]></description>
            <dc:creator>hyoon</dc:creator>
            <category>General</category>
            <pubDate>Fri, 27 Aug 2010 19:39:00 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?3,2854,2912#msg-2912</guid>
            <title>Re: scaling in CUDA !!</title>
            <link>http://www.lbmethod.org/forum/read.php?3,2854,2912#msg-2912</link>
            <description><![CDATA[ Hi Alex,<br />
<br />
I am trying to implement an efficient LBM simulation in OpenCL for ATI GPUs. Can you please send the code to me too?<br />
My mail ID - <a rel="nofollow"  href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#112;&#114;&#105;&#121;&#97;&#100;&#97;&#114;&#115;&#104;&#105;&#64;&#100;&#97;&#114;&#115;&#104;&#97;&#110;&#51;&#100;&#46;&#99;&#111;&#109;">&#112;&#114;&#105;&#121;&#97;&#100;&#97;&#114;&#115;&#104;&#105;&#64;&#100;&#97;&#114;&#115;&#104;&#97;&#110;&#51;&#100;&#46;&#99;&#111;&#109;</a><br />
<br />
Thanks<br />
Priyadarshi]]></description>
            <dc:creator>n0thing</dc:creator>
            <category>LBM: Theory</category>
            <pubDate>Thu, 26 Aug 2010 14:36:34 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2776,2911#msg-2911</guid>
            <title>Re: Simulating a canal with sliding gate</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2776,2911#msg-2911</link>
            <description><![CDATA[ I copied ZouHe* files, changed the names, classes and added necessary includes, but to avoid confusion, lets just assume I'm editing ZouHe classes.<br />
<br />
How can I pass an argument to the ZouHeVelocityDynamics constructor? In the program, I create OnLatticeBoundaryCondition2D object using createZouHeBoundaryCondition2D function.<br />
createZouHeBoundaryCondition2D is defined in zouHeBoundary2D.hh file as &quot;return new BoundaryConditionInstantiator2D&quot;<br />
that's where I get lost, because BoundaryConditionInstantiator2D class is defined in boundaryInstantiator2D.h and it doesn't contain any constructor.<br />
And the only predecessor is OnLatticeBoundaryCondition2D defined in file boundaryCondition2D.h which doesn't have any constructor either.<br />
<br />
Obviously I missed something, cause the program works and constructor body is evaluated. Could you help me find out what?<br />
<br />
I'll look into the global definitions for now, but I'll need to pass some arguments to the constructor anyway.<br />
<br />
---edit---<br />
I just encountered another problem. To calculate new f values, I need to know the height difference on both sides of the gate. The easiest way would be to store all these values in the VelocityDynamics class, but completePopulations function is constant, so the access is read-only. <br />
Even if I used the global variable, I would need to know the exact coordinates of the cell. Can I access these informations?<br />
<br />
Because both sides of the gate are on different lattices, the best way would be to store pointer to the other side of the gate in each of them, get information on the actual cell position and access appropriate cell in the other lattice to read the distribution values. Is it possible?<br />
<br />
Or is it not possible and I should use data processor instead?]]></description>
            <dc:creator>makhan</dc:creator>
            <category>General</category>
            <pubDate>Thu, 26 Aug 2010 14:13:13 +0200</pubDate>
        </item>
        <item>
            <guid>http://www.lbmethod.org/forum/read.php?4,2879,2910#msg-2910</guid>
            <title>Re: how to modify multiComponent3d</title>
            <link>http://www.lbmethod.org/forum/read.php?4,2879,2910#msg-2910</link>
            <description><![CDATA[ Hi all,<br />
<br />
I found the Units.h in the directory CORE.<br />
and I changed the LatticeNu with changing LatticeU,Re,resolution.<br />
and Run the code. then the sphpere was going to get smaller and Vanishing at last.<br />
it happens both low latticeNu and High latticeNu.so,<br />
I'd like to control the behavior.<br />
and one more things G Variable is what?<br />
give me any idea.<br />
<br />
cheers]]></description>
            <dc:creator>motti</dc:creator>
            <category>General</category>
            <pubDate>Thu, 26 Aug 2010 11:56:59 +0200</pubDate>
        </item>
    </channel>
</rss>
