Aceleración del método de los elementos de contorno en fluidos mediante GPU y CUDA
Identificadores
URI: http://hdl.handle.net/10481/33410Metadatos
Mostrar el registro completo del ítemDirector
Martínez Castro, Alejandro EnriqueDepartamento
Universidad de Granada. Departamento de Mecánica de Estructuras e Ingeniería HidráulicaMateria
CUDA GPGPU GPU Panel Method Fast BEM BEM Boundary Element Method Método de los Elementos de Contorno GMRES Floating bodies Flotación Mild slope Paraview VTK C++ Métodos numéricos CFD Computational Fluid Dynamics Agitación AKA Fast Multipole Method Salomé
Fecha
2014-10-15Patrocinador
Proyecto Fin de Carrera de la Univ. de Granada, Departamento de Mecánica de EstructurasResumen
El Método de los Elementos de Contorno (Boundary Element Method), también conocido como "Panel Method" en fluidos, supone hoy en día una alternativa al conocido Método de los Elementos Finitos. Uno de los campos donde este método resulta especialmente interesante es en problemas lineales donde se establece la condición de radiación. Tal es el caso de los problemas de fluidos basados en ecuaciones lineales; en el rango de las ondas de pequeña amplitud, el Método de los Elementos de Contorno (MEC) puede emplearse con éxito para el estudio de agitación de dársenas (formulación de la Mild-Slope), o bien para el análisis de objetos flotantes.
El gran éxito del MEC radica en la reducción del número de grados de libertad del sistema, requiriéndose únicamente la discretización de las superficies (en 3D) o de las líneas (2D) que constituyen el contorno. Sin embargo, en su formulación habitual (método de colocación), el MEC genera un sistema de ecuaciones en el cual la matriz de coeficientes del sistema es una matriz “llena”. Esto dificulta el uso de técnicas rápidas que existen disponibles en el estado del arte para sistemas “en banda”, como ocurre con el método del gradiente conjugado para el Método de los Elementos Finitos. Los tiempos de cálculo requeridos para sistemas “llenos” son mayores que para sistemas “en banda”; aquí precisamente el MEC se encuentra con un verdadero problema, de cara a su implementación en sistemas de muchos grados de libertad, perdiendo su atractivo frente al MEC.
Muchos han sido los investigadores que han tratado de resolver este problema, basándose en estrategias especialmente adaptadas a las soluciones fundamentales que se emplean en cada formulación MEC concreta: así, el uso de matrices jerárquicas (AKA-method) o el Fast-Multipole Method proponen aproximaciones basados en la aceleración de las operaciones matrix-vector, mediante aproximantes. Existe también en el estado del arte un método iterativo para resolver matrices llenas, conocido como el Generalized Minimum Residual Method (GMRES).
En este proyecto se aborda la aceleración mediante la paralelización en tarjeta gráfica del GMRES. Concretamente, mediante el lenguaje CUDA-C y el desarrollo de código en C++.
El proyecto aborda el estudio de problemas de ondas lineales en fluidos, tanto en 3D como en 2D. En 3D se aborda el estudio de los problemas de flotación, para el cual, el MEC proporciona soluciones para las matrices de masa añadida y amortiguamiento. En 2D se aborda la solución de la ecuación de la “pendiente suave” (Mild slope), tanto con fondo constante como variable; típicamente, el uso habitual es el análisis de agitación en puertos, donde la ecuación de la Mild-slope resulta válida para ciertas relaciones Ak (Amplitud, número de onda) y ak (tamaño de objeto, número de onda).
Los resultados muestran que la estrategia planteada conduce a importantes reducciones en los tiempos de cálculo, abriéndose la posibilidad a otras opciones de paralelización que aún reduzcan más los tiempos de cálculo, como son la integración regular-singular requerida para formar el propio sistema de ecuaciones. La incorporación de CUDA-C se muestra una estrategia eficaz para acelerar el MEC. The Boundary Element Method (aka ‘Panel Method’ in fluids) is becoming nowadays more popular hmong scientists and engineers involved in linear problems with radiation boundary conditions. The Boundary Element Method (BEM) reduces the number of active degrees-of-freedom of the system. On the contrary, the coefficient matrix of the system is fully populated, without sparse structure. This causes that numerical solvers requires long times to find a solution; the computing time exponentially grows when the number of unknown grows.
In the literature, several solutions have been proposed to reduce the computing times: from the AKA-method, based on low-rank matrices (hierarchical matrices) to the Fast Multipole Method. Nowadays, the use of the CUDA programming languaje for massive paralellization in graphic cards is giving the attention of the BEM community, as a way to reduce computing times without requiring kernel approximation.
In this project, the CUDA-C, and the C++ languaje are used to build efficient codes to analyse 3D dynamics of floating bodies, and 2D Mild-Slope equation with variable-depth assumption. The Generalized Minimum Residual Method) is an iterative method particularly adequate for fully-populated matrices. The project states parallelization of the matrix-to-vector operatios in CUDA-C. Numerical examples confirm that, for number of active degrees-of-freedom growing, CUDA-C implementation of GMRES drastically reduces the computing times requires to obtain a pre-defined accuracy level. The project concludes that CUDA-C is an interesting option to accelerate the Boundary Element Method.