Commit 28823e6c authored by ccfd's avatar ccfd
Browse files

Modified non_ref boundary

parent 5eefe8fc
......@@ -889,3 +889,11 @@ Mesh(Nx,Ny,Nz): (25,240,20)
3D Partation: 1*1*1 Total procs=1
Re=5581.400000 , Ma=2.900000 , Gamma=1.400000 , dt=0.010000
Start Computing ......
##################################################################################################
OpenCFD-SCU-V1.00 CopyRight by Li-Xinliang, LHD, Institute of Mechanics, CAS (lixl@imech.ac.cn)
Coded by Liu-Shiwei, ICMSEC, Academy of Mathematics and Systems Science, CAS (liusw@lsec.cc.ac.cn)
Coded by Dang-Guanlin, LHD, Institute of Mechanics, CAS (dangguanlin@imech.ac.cn) 2020-01
Mesh(Nx,Ny,Nz): (25,240,20)
3D Partation: 1*1*1 Total procs=1
Re=5581.400000 , Ma=2.900000 , Gamma=1.400000 , dt=0.010000
Start Computing ......
......@@ -15,6 +15,8 @@ void OCFD_Dz0_bound(cudaField pf , cudaField pfx , cudaJobPackage job_in , dim3
void OCFD_bound(dim3 *flagxyzb, int boundp, int boundm, cudaJobPackage job);
void OCFD_bound_non_ref(dim3 *flagxyzb, int Non_ref, cudaJobPackage job);
__device__ int OCFD_D0bound_scheme_kernel(REAL* tmp, dim3 flagxyzb, dim3 coords, REAL *stencil, int ka1, cudaJobPackage job);
__device__ int OCFD_bound_scheme_kernel_p(REAL* flag, dim3 flagxyzb, dim3 coords, REAL *stencil, int ka1, int kb1, cudaJobPackage job);
......
......@@ -15,6 +15,8 @@ void OCFD_Dz0_bound(cudaField pf , cudaField pfx , cudaJobPackage job_in , dim3
void OCFD_bound(dim3 *flagxyzb, int boundp, int boundm, cudaJobPackage job);
void OCFD_bound_non_ref(dim3 *flagxyzb, int Non_ref, cudaJobPackage job);
__device__ int OCFD_D0bound_scheme_kernel(REAL* tmp, dim3 flagxyzb, dim3 coords, REAL *stencil, int ka1, cudaJobPackage job);
__device__ int OCFD_bound_scheme_kernel_p(REAL* flag, dim3 flagxyzb, dim3 coords, REAL *stencil, int ka1, int kb1, cudaJobPackage job);
......
......@@ -591,7 +591,6 @@ __device__ REAL OCFD_weno7_SYMBO_kernel_M(int WENO_LMT_FLAG, REAL *stencil){
__global__ void OCFD_weno7_SYMBO_M_kernel(int i, int WENO_LMT_FLAG, dim3 flagxyzb, cudaSoA f, cudaSoA du, cudaField Ajac, cudaJobPackage job){
extern __shared__ REAL sort[];
__syncthreads();
dim3 coords;
REAL stencil[8];
......
......@@ -94,6 +94,7 @@ void OCFD_dx1(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, blockdim_in.x-1, blockdim_in.y, blockdim_in.z, size.x, size.y, size.z );
dim3 flagxyzb(1, 0, Non_ref[0]);//.x正向边界;.y负向边界;.z无反射边界
OCFD_bound_non_ref(&flagxyzb, Non_ref[0], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.start.x -= 1;
......@@ -207,6 +208,7 @@ void OCFD_dy1(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, 8, 7, 4, size.x, size.y, size.z);
dim3 flagxyzb(2, 0, Non_ref[2]);
OCFD_bound_non_ref(&flagxyzb, Non_ref[2], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.start.y -= 1;
......@@ -319,6 +321,7 @@ void OCFD_dz1(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, 8, 7, 4, size.x, size.z, size.y);
dim3 flagxyzb(3, 0, Non_ref[4]);
OCFD_bound_non_ref(&flagxyzb, Non_ref[4], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.start.z -= 1;
......@@ -432,6 +435,7 @@ void OCFD_dx2(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, blockdim_in.x-1, blockdim_in.y, blockdim_in.z, size.x, size.y, size.z );
dim3 flagxyzb(4, 0, Non_ref[1]);
OCFD_bound_non_ref(&flagxyzb, Non_ref[1], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.end.x += 1;
......@@ -544,6 +548,7 @@ void OCFD_dy2(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, 8, 7, 4, size.x, size.y, size.z);
dim3 flagxyzb(5, 0, Non_ref[3]);
OCFD_bound_non_ref(&flagxyzb, Non_ref[3], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.end.y += 1;
......@@ -655,6 +660,7 @@ void OCFD_dz2(cudaSoA pf, cudaSoA pdu, cudaField Ajac, cudaField u, cudaField v,
cal_grid_block_dim(&griddim, &blockdim, 8, 7, 4, size.x, size.z, size.y);
dim3 flagxyzb(6, 0, Non_ref[5]);
OCFD_bound_non_ref(&flagxyzb, Non_ref[5], job_in);
OCFD_bound(&flagxyzb, boundl, boundr, job_in);
job_in.end.z += 1;
......
......@@ -349,6 +349,75 @@ void OCFD_Dz0_bound(cudaField f , cudaField fx , cudaJobPackage job_in , dim3 bl
}
void OCFD_bound_non_ref(dim3 *flagxyzb, int Non_ref, cudaJobPackage job){
// eyes on field WITH LAPs
dim3 size;
int flag = 0;
jobsize(&job, &size);
switch(flagxyzb->x){
case 1:
{
if(npx == 0 && job.start.x == LAP){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
case 2:
{
if(npy == 0 && job.start.y == LAP){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
case 3:
{
if(npz == 0 && job.start.z == LAP){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
case 4:
{
if(npx == NPX0-1 && job.end.x == nx_lap){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
case 5:
{
if(npy == NPY0-1 && job.end.y == ny_lap){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
case 6:
{
if(npz == NPZ0-1 && job.end.z == nz_lap){
flagxyzb->z = Non_ref;
}else{
flagxyzb->z = 0;
}
}
break;
}
}
void OCFD_bound(dim3 *flagxyzb, int boundp, int boundm, cudaJobPackage job){
// eyes on field WITH LAPs
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment