INVESTIGADORES
STORTI Mario Alberto
congresos y reuniones científicas
Título:
Solving incompressible Navier-Stokes equations using CUDA
Autor/es:
COSTARELLI, SANTIAGO; PAZ RODRIGO; MARIO A. STORTI; DALCÍN LISANDRO
Lugar:
Rosario
Reunión:
Congreso; ENIEF 2011 - XIX Congreso sobre Métodos Numéricos y sus Aplicaciones; 2011
Institución organizadora:
Asociación Argentina de Mecánica Computacional AMCA
Resumen:
En este trabajo se propone una resolución de las ecuaciones de Navier-Stokes para el caso de fluidos Newtonianos incompresibles utilizando la arquitectura CUDA1 provista por NVIDIA2. Se utiliza para la discretización espacial un esquema de diferencias finitas en grillas staggered (para evitar el desacople en la presión), y el método de Pasos Fraccionados (Fractional-Step) para la integración temporal. El paso predictor (problema de advección para las ecuaciones de cantidad de movimiento) se resuelve utilizando el esquema de Adams-Bashforth de segundo orden estabilizando los términos convectivos con el método QUICK. Además, el paso de Poisson (para imponer la incompresibilidad) es resuelto iterativamente mediante el método de Gradientes Conjugados precondicionando al sistema utilizando transformadas rápidas de Fourier. En el presente desarrollo se utilizan librerías estándar de CUDA para el manejo de matrices y vectores, como ser Thrust3 y CUSP4, además de CUFFT5 para las transformadas rápidas de Fourier. De esta forma, mediante las herramientas aportadas por las anteriores se confeccionan los kernels necesarios enfatizando la utilización de memoria shared, accesos fusionados a la memoria global, reduciendo al mínimo la cantidad de registros por thread, entre otros. A continuación se presenta una serie de casos de estudio con el objetivo de validar el desarrollo y de, posteriormente, comparar las performances obtenidas con implementaciones en otras arquitecturas (CPU, unicore y multicore). 1http://developer.nvidia.com/cuda-downloads 2http://arg.nvidia.com/page/home.html 3http://code.google.com/p/thrust/ 4http://code.google.com/p/cusp-library/ 5http://developer.nvidia.com/cufft