Viewing 6 posts - 1 through 6 (of 6 total)
• Author
Posts
• #5059
duldul
Participant

Hello,
As far as I know there is implicit compressibility in the method. If I use flow with ~0.3 Mach No. (U/Cs = U*root(3)) Will there be significant effect on density? Can this density change be more than 5% ?

Best regards
Duldul

#5065
stephan
Moderator

Hi Duldul,

In general, for the incompressible NSE the error of LBM introduced by the Mach number is computable as O(Ma^2) and vanishes in the diffusion limit.

For a discussion of the density error in particular, please have a look at Krüger et al. 2017 “The Lattice Boltzmann Method: Principles and Practice” (Section 4.3.2 Incompressible Flow).

BR
Stephan

#5069
duldul
Participant

Hello Stephan.
Thank you again for your response!
I will soon have a look on this.

Regards
Duldul

#5070
duldul
Participant

I have one more doubt I want to implement outflow boundary conditions in plane-Poiseuille flow. For this I am using below conditions at the outlet (right boundary). nx is no of nodes in x-direction and j will vary from zero to ny.
f[nx-1][j][3] = f[nx-2][j][3]
f[nx-1][j][6] = f[nx-2][j][6]
f[nx-1][j][7] = f[nx-2][j][7]
Am I correct in doing this.
Numbering in D2Q9 is as follows:
625
301
748

Regards
Duldul

#5071
mathias
Keymaster

Dear Duldul,

that works only partly. Have a look at Junk’s nice paper on that topic and references therein: https://www.researchgate.net/publication/40536594_Outflow_boundary_conditions_for_the_lattice_Boltzmann_method

Best
Mathias

#5072
duldul
Participant

Hello Mathias.
Thank you for your kind suggestion. This papers is really nice, even I was trying to understand this paper when I saw your reply.
Recently I tried to simulate plane-Poiseuille flow and used tau = 0.53, u0 = 0.05
Boundary conditions that I used are as follows:
void boundary(int count) {
double ftemp[9],fq[9],temp;
int jj;
double t1, t2;

//Right hand Boundary (Outflow)
for ( int j = 1; j < ny-1; j++ ) {
f[nx-1][j][2] = 2.0*f[nx-2][j][2]-f[nx-3][j][2];
f[nx-1][j][5] = 2.0*f[nx-2][j][5]-f[nx-3][j][5];
f[nx-1][j][6] = 2.0*f[nx-2][j][6]-f[nx-3][j][6];
}//Right hand Boundary ends

//Bottom & top boundary -> bounce back
//double temp1[nx];
for ( int i = 1; i < nx-1; i++ ) {
f[i][0][1] = f[i][0][3];
f[i][0][4] = f[i][0][6];
f[i][0][5] = f[i][0][7];
//for y = ny – 1;
f[i][ny-1][3] = f[i][ny-1][1];
f[i][ny-1][6] = f[i][ny-1][4];
f[i][ny-1][7] = f[i][ny-1][5];
}//Bottom and top bounce back ends

//left hand boundary condition (inlet)
for ( int j = 1; j < ny-1; j++ ) {
u[0][j]=u0;v[0][j]=0.0;rho[0][j]=1.0;
t1 = u[0][j] * u[0][j] + v[0][j] * v[0][j];
for ( int k = 0; k < 9; k++ ) {
t2 = u[0][j] * cx[k] + v[0][j] * cy[k];
fq[k]= w[k] * rho[0][j]*(1. + 3. * t2 + 4.5 * t2 * t2 – 1.5 * t1);
}
f[0][j][0]=f[0][j][2]-fq[2]+fq[0];
f[0][j][4]=0.5*(rho[0][j]*u[0][j]+rho[0][j]*v[0][j]-f[0][j][0]-f[0][j][1]+f[0][j][2]+f[0][j][3]+2.0*f[0][j][6]);
f[0][j][7]=0.5*(rho[0][j]*u[0][j]-rho[0][j]*v[0][j]-f[0][j][0]+f[0][j][1]+f[0][j][2]-f[0][j][3]+2.0*f[0][j][5]);
}
f[0][0][0]=f[0][0][2];
f[0][0][1]=f[0][0][3];
f[0][0][4]=f[0][0][6];

f[0][ny-1][0]=f[0][ny-1][2];
f[0][ny-1][3]=f[0][ny-1][1];
f[0][ny-1][7]=f[0][ny-1][5];

f[nx-1][0][2]=f[nx-1][0][0];
f[nx-1][0][5]=f[nx-1][0][7];
f[nx-1][0][1]=f[nx-1][0][3];

f[nx-1][ny-1][2]=f[nx-1][ny-1][0];
f[nx-1][ny-1][6]=f[nx-1][ny-1][4];
f[nx-1][ny-1][3]=f[nx-1][ny-1][1];
}//boundary ends
numbering used for D2Q9 is:
514
280
637

When I run my code with the above boundary conditions after sometime velocity (or total flow rate) starts decreasing and then keeps on decreasing. Can you please guess something where I may be wrong with the conditions?

Regards
Duldul

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