Moved pressure BC out of lb2_Color_wia_mpi.cpp and into libraries
This commit is contained in:
parent
28e145a9bc
commit
8f466a37b5
@ -207,6 +207,92 @@ extern "C" void dvc_ComputePressureD3Q19(char *ID, double *disteven, double *dis
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ColorBC_inlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
N = Nx*Ny*Nz;
|
||||
// Fill the inlet with component a
|
||||
for (k=0; k<1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (k=1; k<3; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = 1.0;
|
||||
Den[n] = 1.0;
|
||||
Den[N+n] = 0.0;
|
||||
|
||||
A_even[n] = 0.3333333333333333;
|
||||
A_odd[n] = 0.1111111111111111;
|
||||
A_even[N+n] = 0.1111111111111111;
|
||||
A_odd[N+n] = 0.1111111111111111;
|
||||
A_even[2*N+n] = 0.1111111111111111;
|
||||
A_odd[2*N+n] = 0.1111111111111111;
|
||||
A_even[3*N+n] = 0.1111111111111111;
|
||||
|
||||
B_even[n] = 0.0;
|
||||
B_odd[n] = 0.0;
|
||||
B_even[N+n] = 0.0;
|
||||
B_odd[N+n] = 0.0;
|
||||
B_even[2*N+n] = 0.0;
|
||||
B_odd[2*N+n] = 0.0;
|
||||
B_even[3*N+n] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_ColorBC_outlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S)
|
||||
{
|
||||
int i,j,k,n,N;
|
||||
N = Nx*Ny*Nz;
|
||||
// Fill the outlet with component b
|
||||
for (k=Nz-3; k<Nz-1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = -1.0;
|
||||
Den[n] = 0.0;
|
||||
Den[N+n] = 1.0;
|
||||
|
||||
A_even[n] = 0.0;
|
||||
A_odd[n] = 0.0;
|
||||
A_even[N+n] = 0.0;
|
||||
A_odd[N+n] = 0.0;
|
||||
A_even[2*N+n] = 0.0;
|
||||
A_odd[2*N+n] = 0.0;
|
||||
A_even[3*N+n] = 0.0;
|
||||
|
||||
B_even[n] = 0.3333333333333333;
|
||||
B_odd[n] = 0.1111111111111111;
|
||||
B_even[N+n] = 0.1111111111111111;
|
||||
B_odd[N+n] = 0.1111111111111111;
|
||||
B_even[2*N+n] = 0.1111111111111111;
|
||||
B_odd[2*N+n] = 0.1111111111111111;
|
||||
B_even[3*N+n] = 0.1111111111111111;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
for (k=Nz-1; k<Nz; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = -1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//*************************************************************************
|
||||
extern "C" void dvc_PressureBC_inlet(double *disteven, double *distodd, double din,
|
||||
int Nx, int Ny, int Nz, int S)
|
||||
|
@ -22,3 +22,7 @@ extern "C" void dvc_DensityStreamD3Q7(char *ID, double *Den, double *Copy, doubl
|
||||
extern "C" void dvc_ComputePhi(char *ID, double *Phi, double *Den, int N, int S);
|
||||
extern "C" void dvc_MassColorCollideD3Q7(char *ID, double *A_even, double *A_odd, double *B_even, double *B_odd,
|
||||
double *Den, double *Phi, double *ColorGrad, double *Velocity, double beta, int N, bool pBC, int S);
|
||||
extern "C" void dvc_ColorBC_inlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S);
|
||||
extern "C" void dvc_ColorBC_outlet(double *Phi, double *Den, double *A_even, double *A_odd,
|
||||
double *B_even, double *B_odd, int Nx, int Ny, int Nz, int S);
|
||||
|
@ -1272,35 +1272,14 @@ int main(int argc, char **argv)
|
||||
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the inlet with component a
|
||||
for (k=0; k<4; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = 1.0;
|
||||
Den[n] = 1.0;
|
||||
Den[N+n] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
|
||||
// Fill the outlet with component b
|
||||
for (k=Nz-4; k<Nz; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = -1.0;
|
||||
Den[n] = 0.0;
|
||||
Den[N+n] = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
}
|
||||
|
||||
//...........................................................................
|
||||
// Copy the phase indicator field for the earlier timestep
|
||||
dvc_Barrier();
|
||||
@ -1743,9 +1722,10 @@ int main(int argc, char **argv)
|
||||
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the inlet with component a
|
||||
for (k=0; k<1; k++){
|
||||
/* for (k=0; k<1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
@ -1780,12 +1760,14 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the outlet with component b
|
||||
/* // Fill the outlet with component b
|
||||
for (k=Nz-3; k<Nz-1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
@ -1822,6 +1804,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//...................................................................................
|
||||
|
@ -1272,35 +1272,14 @@ int main(int argc, char **argv)
|
||||
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the inlet with component a
|
||||
for (k=0; k<4; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = 1.0;
|
||||
Den[n] = 1.0;
|
||||
Den[N+n] = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
|
||||
// Fill the outlet with component b
|
||||
for (k=Nz-4; k<Nz; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
Phi[n] = -1.0;
|
||||
Den[n] = 0.0;
|
||||
Den[N+n] = 1.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
}
|
||||
|
||||
//...........................................................................
|
||||
// Copy the phase indicator field for the earlier timestep
|
||||
dvc_Barrier();
|
||||
@ -1743,9 +1722,10 @@ int main(int argc, char **argv)
|
||||
|
||||
if (pBC && kproc == 0) {
|
||||
dvc_PressureBC_inlet(f_even,f_odd,din,Nx,Ny,Nz,S);
|
||||
dvc_ColorBC_inlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the inlet with component a
|
||||
for (k=0; k<1; k++){
|
||||
/* for (k=0; k<1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
n = k*Nx*Ny+j*Nx+i;
|
||||
@ -1780,12 +1760,14 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
if (pBC && kproc == nprocz-1){
|
||||
dvc_PressureBC_outlet(f_even,f_odd,dout,Nx,Ny,Nz,S,Nx*Ny*(Nz-2));
|
||||
dvc_ColorBC_outlet(Phi,Den,A_even,A_odd,B_even,B_odd,Nx,Ny,Nz,S);
|
||||
|
||||
// Fill the outlet with component b
|
||||
/* // Fill the outlet with component b
|
||||
for (k=Nz-3; k<Nz-1; k++){
|
||||
for (j=0;j<Ny;j++){
|
||||
for (i=0;i<Nx;i++){
|
||||
@ -1822,6 +1804,7 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//...................................................................................
|
||||
|
Loading…
Reference in New Issue
Block a user