Skip to content

How to Change Fluid Properties

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB General Topics How to Change Fluid Properties

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #1837
    ivan
    Member

    Hello, everybody,rnrnI am working with the example “”Cylinder2d”” and I would like to change the properties of the fluid for the same ones as (liquid) water. rnrnAs far as I understood, the Density is set in line 156, as shown:rnrn

    Code:
    AnalyticalConst2D<T,T> rhoF(1);

    rnrnThen, I would just have to edit it to rnrn

    Code:
    AnalyticalConst2D<T,T> rhoF(1000);

    rnrnConcerning the Viscosity, it seems like it is given in function of the cylinder diameter, reynolds number and velocity, in line 303, as shown:rnrn

    Code:
    (T) 0.2*2.*radiusCylinder/Re, // charNu_

    rnrnIn this case, I would have to change these parameters in oder to reach the viscosity I want.rnrnNow let’s go to the questions:rnrn1. Why do I get very messed up images when I simply change rhoF from 1 to 1000?rn2. How can I change the velocity uF in order to set the viscosity as 0,001?rn3. Is the archive “”Cylinder.dat”” supposed to edit itself once I change the cpp file?rnrnBest regards,rnrnIvan

    #2382

    Hi Ivan,rnrnWhat do you mean by “”messed up images””?rnrnYou should remember that the characteristical density of the model is 1 kg/m³ from the default parameter of the class LBconverter<T>. I know that the documentation says that the unit of this parameter is kg/m^d, but at the end it is 1 kg/m³.rnrnThe characteristical shear viscosity could be defined by the user in the class LBconverter<T>. So you can set up this variable.rnrnThe velocity “”uF”” is a initial condition for the problem. Thus it will not change the shear viscosity.rnrnI suppose that the file “”Cylinder.dat”” should be modified if you modify the parameter of the class LBconverter<T>. Otherwise, I do not see how it could be modified.rnrnBest Regards,rnrnAlejandro

    #2384
    ivan
    Member

    Hello, Alejandro,rnrnFirst of all, thank you for the fast reply.rnrnBasically, what I meant with “”messed up images”” is this:rnrnCaptura_de_Tela_2016_06_16_a_s_18_44_27.pngrnrnWhich is what happens when I simply switch rho(1) to rho(1000), as previously explained.rnrnAnd, as Im still a beginner, can you make it a little clearer? How do I set the class LBconverter<T>? I mean, the line 303 I mentioned is right here:rnrn

    Code:
    LBconverter<T> converter(rn (int) 2, // dimrn (T) L, // latticeL_rn (T) 0.02/M, // latticeU_rn (T) 0.2*2.*radiusCylinder/Re, // charNu_rn (T) 2*radiusCylinder, // charL_ = 1rn (T) 0.2 // charU_ = 1rn );rn converter.print();

    rnrnIs that what you’re talking about? If so, the doubts remain.rnrnAtt.rnrn

    #2385

    Hi Ivan,rnrnIf you see the class LBconverter<T>, the constructor could be seen here: http://optilb.com/DoxyGen/html/d1/d25/classolb_1_1LBconverter.html rnI will suppose you will use the cylinder2d example. The Reynolds number is a constant that you will impose to the model. The characteristical kinematic viscosity (CharNu) depends of the fluid, if it is water at 20°C then its value is 0.000001 m²/s. The characteristical length (CharL) of the problem is the diameter (2*radiusCylinder). The density of the water (CharRho) at the same temperature could be approximated by 1 kg/m³. rnrnThus, the charactersitical velocity (CharU) could be defined as: Re*CharNu/CharL = CharU.rnrnThe latticeL and LatticeU are the discretization parameter of the model that you use (I suppose you know theirs meaning).rnrnThe converter objet will be:rn

    Code:
    LBconverter<T> converter(rn (int) 2, // dimrn (T) L, // latticeL_rn (T) 0.02/M, // latticeU_rn (T) 0.000001, // charNu_rn (T) 2*radiusCylinder, // charL_ = 1rn (T) Re*0.000001/(2*radiusCylinder), // charU_ = 1rn (T) 1000. // charRho : characteristical density of the waterrn );rn

    rnrnHope this post is more clear.rnrnBest,rnrnAlejandro

    #2386
    ivan
    Member

    Hello, Alejandro,rnrnThank you one more time for the reply.rnrnJust let me ask you, did you mean the density of the water (CharRho) to be 1000kg/m³? We’re talking about liquid, right? I this case, would the converter object be this one?rnrn

    Code:
    LBconverter<T> converter(rn (int) 2, // dimrn (T) L, // latticeL_rn (T) 0.02/M, // latticeU_rn (T) 0.000001, // charNu_rn (T) 2*radiusCylinder, // charL_ = 1rn (T) Re*0.000001/(2*radiusCylinder), // charU_ = 1rn (T) 1000. // charRho : characteristical density of the waterrn );

    rnrnrnIf so, how does the cpp recognize the “”(T) 1000.”” line as related to the density? Still, would I have to do the same alterations in the line 156 as explained in the very first post?rnrnBest,rnrnIvan

    #2387

    Hi Ivan,rnrnYou are right, the density of the water that I posted was not correct (I modified my post). rnrnYou should see the link I send you where it is presented the function/method definition for the class LBconverter<T>. The next term of “”CharU”” has been defined as CharRho.rnrnYes, you should change the lien of code 156 in order to define the density of the water as the initial condition.rnrnBest,rnrnAlejandro

    #2388
    ivan
    Member

    Hello, Alejandro,rnrnSo, basically I’ve changed line 156 fromrnrn

    Code:
    AnalyticalConst2D<T,T> rhoF(1);

    to

    Code:
    AnalyticalConst2D<T,T> rhoF(1000);

    rnrnAnd the converter object fromrnrn

    Code:
    LBconverter<T> converter(rn (int) 2, // dimrn (T) L, // latticeL_rn (T) 0.02/M, // latticeU_rn (T) 0.2*2.*radiusCylinder/Re, // charNu_rn (T) 2*radiusCylinder, // charL_ = 1rn (T) 0.2 // charU_ = 1rn );rn converter.print();

    rnrntornrn

    Code:
    LBconverter<T> converter(rn (int) 2, // dimrn (T) L, // latticeL_rn (T) 0.02/M, // latticeU_rn (T) 0.000001, // charNu_rn (T) 2*radiusCylinder, // charL_ = 1rn (T) Re*0.000001/(2*radiusCylinder), // charU_ = 1rn (T) 1000. // charRhorn );rn converter.print();

    rnrnAnd the images are not being generated.rnrnAtt.rnrn

    #2389
    ivan
    Member

    edited

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.