OCFD_boundary.cpp 2.87 KB
Newer Older
ccfd's avatar
ccfd committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "hip/hip_runtime.h"
//-------Boundary condition --------------------------------------------------------
#include "stdlib.h"
#include "stdio.h"
#include "parameters.h"
#include "utility.h"
#include "OCFD_boundary_Liftbody3D.h"
#include "OCFD_boundary_compression_conner.h"

#include "cuda_commen.h"
#include "cuda_utility.h"
#include "commen_kernel.h"
#include "parameters_d.h"

#ifdef __cplusplus
extern "C"{
#endif

void OCFD_bc()
{
	
	//---------------------------------------------------
    switch(IBC_USER){
        case 124:
		if(Init_stat == 0){
    		bc_user_Liftbody3d_simple();
    	}else{
    		bc_user_Liftbody3d();
    	}
		break;

		case 108:
		bc_user_Compression_conner();
		break;

		default:
		break;
	}

	//--------------------------------------------
	if (npx == 0)
	{	
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(0 , 0 , 0) , dim3(1 , ny , nz) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , 1 , ny , nz);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}
	if (npx == NPX0 - 1)
	{
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(nx-1 , 0 , 0) , dim3(nx , ny , nz) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , 1 , ny , nz);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}
	//------------------------------
	if (npy == 0)
	{
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(0 , 0 , 0) , dim3(nx , 1 , nz) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , nx , 1 , nz);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}

	if (npy == NPY0 - 1)
	{
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(0 , ny-1 , 0) , dim3(nx , ny , nz) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , nx , 1 , nz);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}
	//--------------------------
	if (npz == 0)
	{
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(0 , 0 , 0) , dim3(nx , ny , 1) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , nx , ny , 1);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}

	if (npz == NPZ0 - 1)
	{
		dim3 griddim , blockdim;
		cudaJobPackage job( dim3(0 , 0 , nz-1) , dim3(nx , ny , nz) );

		cal_grid_block_dim(&griddim , &blockdim , BlockDimX , BlockDimY , BlockDimZ , nx , ny , 1);
		hipLaunchKernelGGL(pri_to_cons_kernel, dim3(griddim ), dim3(blockdim), 0, 0, *pf_d , *pd_d , *pu_d , *pv_d , *pw_d , *pT_d , job);
	}
}


#ifdef __cplusplus
}
#endif