En matemáticas , análisis numérico y ecuaciones diferenciales parciales numéricas , los métodos de descomposición de dominios resuelven un problema de valor límite dividiéndolo en problemas de valor límite más pequeños en subdominios e iterando para coordinar la solución entre subdominios adyacentes. Se utiliza un problema grueso con una o pocas incógnitas por subdominio para coordinar aún más la solución entre los subdominios globalmente. Los problemas en los subdominios son independientes, lo que hace que los métodos de descomposición de dominios sean adecuados para la computación paralela . Los métodos de descomposición de dominios se utilizan normalmente como preacondicionadores para los métodos iterativos del espacio de Krylov , como el método del gradiente conjugado , GMRES y LOBPCG .
En los métodos de descomposición de dominios superpuestos, los subdominios se superponen en una proporción mayor que la interfaz. Los métodos de descomposición de dominios superpuestos incluyen el método alterno de Schwarz y el método aditivo de Schwarz . Muchos métodos de descomposición de dominios se pueden escribir y analizar como un caso especial del método aditivo abstracto de Schwarz .
En los métodos que no se superponen, los subdominios se intersecan solo en su interfaz. En los métodos primarios, como la descomposición de dominios de equilibrio y BDDC , la continuidad de la solución a lo largo de la interfaz del subdominio se aplica representando el valor de la solución en todos los subdominios vecinos por la misma incógnita. En los métodos duales, como FETI , la continuidad de la solución a lo largo de la interfaz del subdominio se aplica mediante multiplicadores de Lagrange . El método FETI-DP es un híbrido entre un método dual y uno primario.
Los métodos de descomposición de dominios no superpuestos también se denominan métodos de subestructuración iterativa .
Los métodos de mortero son métodos de discretización para ecuaciones diferenciales parciales que utilizan discretización separada en subdominios que no se superponen. Las mallas de los subdominios no coinciden en la interfaz y la igualdad de la solución se aplica mediante multiplicadores de Lagrange, elegidos con criterio para preservar la precisión de la solución. En la práctica de ingeniería en el método de elementos finitos, la continuidad de las soluciones entre subdominios que no coinciden se implementa mediante restricciones de puntos múltiples.
Las simulaciones de elementos finitos de modelos de tamaño moderado requieren la resolución de sistemas lineales con millones de incógnitas. El tiempo medio de ejecución secuencial es de varias horas por paso de tiempo, por lo que es necesario realizar cálculos en paralelo. Los métodos de descomposición de dominios incorporan un gran potencial para la paralelización de los métodos de elementos finitos y sirven de base para los cálculos distribuidos y en paralelo.
La solución exacta es:
Subdividir el dominio en dos subdominios, uno de y otro de . En el subdominio izquierdo definir la función interpoladora y en el derecho definir . En la interfaz entre estos dos subdominios se impondrán las siguientes condiciones de interfaz:
Sean las funciones interpoladoras definidas como:
Donde es la n-ésima función cardinal de los polinomios de Chebyshev de primera especie con argumento de entrada y.
Si N=4 entonces se obtiene la siguiente aproximación mediante este esquema:
Esto se obtuvo con el siguiente código MATLAB.
borrar todo N = 4 ; a1 = 0 ; b1 = 1 / 2 ; [ T D1 D2 E1 E2 x xsub ] = cheb ( N , a1 , b1 ); % las matrices diff en [0,1/2] son las mismas %que aquellas en [1/2 1]. I = eye ( N + 1 ); H = D2 - I ; H1 = [[ 1 ceros ( 1 , N )]; H ( 2 : fin - 1 ,:); [ ceros ( 1 , N ) 1 ]]; H1 = [ H1 [ ceros ( N , N + 1 ); - [ 1 ceros ( 1 , N )]]]; H2 = [ D1 ( 1 ,:); H ( 2 : fin - 1 ,:); [ ceros ( 1 , N ) 1 ]]; H2 = [[ - D1 ( N + 1 ,:); ceros ( N , N + 1 )] H2 ]; K = [ H1 ; H2 ]; F = [ ceros ( 2 * N + 1 , 1 ); 1 ]; tu = K \ F ; xx = - cos ( pi * ( 0 : N ) '/ N ); x1 = 1/4 * ( xx + 1 ) ; x2 = 1/4 * ( xx + 3 ) ; x = [ x1 ; x2 ]; uex = ( exp ( x ) - exp ( - x )) ./ ( exp ( 1 ) - exp ( - 1 ));