stringtranslate.com

Solucionador frontal

Un solucionador frontal es un enfoque para resolver sistemas lineales dispersos que se utiliza ampliamente en el análisis de elementos finitos . [1] Los algoritmos de este tipo son variantes de la eliminación de Gauss que evitan automáticamente una gran cantidad de operaciones que involucran términos cero debido al hecho de que la matriz es solo dispersa. [2] Generalmente se considera que el desarrollo de los solucionadores frontales se remonta al trabajo de Bruce Irons . [3]

Un solucionador frontal construye una descomposición LU o de Cholesky de una matriz dispersa. Los solucionadores frontales comienzan con una o unas pocas entradas diagonales de la matriz, luego consideran todas esas entradas diagonales que están acopladas al primer conjunto a través de entradas fuera de la diagonal, y así sucesivamente. En el contexto de elementos finitos, estos conjuntos consecutivos forman "frentes" que recorren el dominio (y, en consecuencia, la matriz, si uno permutara filas y columnas de la matriz de tal manera que las entradas diagonales estén ordenadas por la onda de la que forman parte). El procesamiento del frente implica operaciones de matriz densa , que utilizan la CPU de manera eficiente.

Dado que los elementos de la matriz solo se necesitan a medida que el frente avanza a través de la matriz, es posible (pero no necesario) proporcionar elementos de matriz solo cuando sea necesario. Por ejemplo, para las matrices que surgen del método de elementos finitos, se puede estructurar el "ensamblaje" de matrices de elementos ensamblando la matriz y eliminando ecuaciones solo en un subconjunto de elementos a la vez. Este subconjunto se llama frente y es esencialmente la región de transición entre la parte del sistema ya terminada y la parte que aún no se tocó. En este contexto, la matriz dispersa completa nunca se crea explícitamente, aunque se almacena la descomposición de la matriz. Este enfoque se usó principalmente históricamente, cuando las computadoras tenían poca memoria; en tales implementaciones, solo el frente está en la memoria , mientras que los factores en la descomposición se escriben en archivos . Las matrices de elementos se leen de los archivos o se crean según sea necesario y se descartan. Las implementaciones más modernas, que se ejecutan en computadoras con más memoria, ya no usan este enfoque y, en su lugar, almacenan tanto la matriz original como su descomposición completamente en la memoria.

Una variación de los solucionadores frontales es el método multifrontal que se origina en el trabajo de Duff y Reid. [4] Es una mejora del solucionador frontal que utiliza varios frentes independientes al mismo tiempo. Los frentes pueden ser trabajados por diferentes procesadores , lo que permite la computación paralela .

Véase [5] para una exposición monográfica.

Véase también

Referencias

  1. ^ Renaud Sizaire, keyFE2 User Manual, 2005, Sec. I.4.2 Resolución de sistemas lineales en línea Archivado el 8 de octubre de 2006 en Wayback Machine
  2. ^ Hayrettin Kardestuncer, ed. Manual de elementos finitos .
  3. ^ Irons, Bruce M. (1970). "Un programa de solución frontal para el análisis de elementos finitos". Revista internacional de métodos numéricos en ingeniería . 2 (enero/marzo): 5–32. Bibcode :1970IJNME...2....5I. doi :10.1002/nme.1620020104.
  4. ^ IS Duff, JK Reid, La solución multifrontal de la ecuación lineal simétrica dispersa indefinida, ACM Transactions on Mathematical Software (TOMS), v.9 n.3, p.302-325, septiembre de 1983 DOI 10.1145/356044.356047
  5. ^ Iain S Duff, Albert M Erisman, John K Reid, Métodos directos para matrices dispersas, Oxford University Press, Inc., Nueva York, NY, 1986