Krishna Kumar, kks32@cam.ac.uk
University of Cambridge
Smagorinsky model (LES):
$\nu_{s}(x,t)=(C_s \Delta)^2\sqrt{S_{ij}S_{ij}} \mbox{ ; } S_{ij}=\frac{1}{2}(\frac{\partial u_i}{\partial x_j}+\frac{\partial u_j}{\partial x_i})$
// Assign to each OpenMP a different GPU
int n_gpus = acc_get_num_devices( acc_device_nvidia );
if( n_gpus )
acc_set_device_num( tid % n_gpus, acc_device_nvidia );
else
acc_set_device_type( acc_device_host );
#pragma acc parallel copyout( \
fhf1[0 : nbgrains], \
fhf2[0 : nbgrains], fhf3[0 : nbgrains]) \
copyin(obst[0 :][0 :], g[0 : nbgrains], \
ey[0 :], f[0 :][0 :][0 :], ex[0 :]), \
ey[0 :], f[0: ][y_start : y_end][0 :], ex[0 :])
All tests passed (36 assertions in 3 test cases)
Krishna Kumar, kks32@cam.ac.uk