[en] In the field of nonlinear computational solid mechanics, contact problems deal with the deformation of separate bodies which interact when they come in touch. Usually, these problems are formulated as constrained minimization problems which may be solved using optimization techniques such as penalty method, Lagrange multipliers, Augmented Lagrangian method, etc. This classical approach is based on node connectivities between the contacting bodies. These connectivities are created through the construction of contact elements introduced for the discretization of the contact interface, which incorporate the contact constraints in the global weak form. These methods are well known and widely used in the resolution of contact problems in engineering and science. As parallel computing platforms are nowadays widely available, solving large engineering problems on high performance computers is a real possibility for any engineer or researcher. Due to the memory and compute power that contact problems require and consume, they are good candidates for parallel computation. Industrial and scientific realistic contact problems involve different physical domains and a large number of degrees of freedom, so algorithms designed to run efficiently in high performance computers are needed. Nevertheless, the parallelization of the numerical solution methods that arises from the classical optimization techniques and discretization approaches presents some drawbacks which must be considered. Mainly, for general contact cases where sliding occurs, the introduction of contact elements requires the update of the mesh graph in a fixed number of time steps. From the point of view of the domain decomposition method for parallel resolution of numerical problems this is a major drawback due to its computational expensiveness, since dynamic repartitioning must be done to redistribute the updated mesh graph to the different processors. On the other hand, some of the optimization techniques modify dynamically the number of degrees of freedom in the problem, by introducing Lagrange multipliers as unknowns. In this work we introduce a Dirichlet-Neumann type parallel algorithm for the numerical solution of nonlinear frictional contact problems, putting a strong focus on its computational implementation. Among its main characteristics it can be highlighted that there is no need to update the mesh graph during the simulation, as no contact elements are used. Also, no additional degrees of freedom are introduced into the system, since no Lagrange multipliers are required. In this algorithm the bodies in contact are treated separately, in a segregated way. The coupling between the contacting bodies is performed through boundary conditions transfer at the contact zone. From a computational point of view, this feature allows to use a multi-code approach. Furthermore, the algorithm can be interpreted as a black-box method as it solves each body separately even with different computational codes. In addition, the contact algorithm proposed in this thesis can also be formulated as a general fixed-point solver for the solution of interface problems. This generalization gives us the theoretical basis to extrapolate and implement numerical techniques that were already developed and widely tested in the field of fluid-structure interaction (FSI) problems, especially those related to convergence ensurance and acceleration. We describe the parallel implementation of the proposed algorithm and analyze its parallel behaviour and performance in both validation and realistic test cases executed in HPC machines using several processors.

[es] En el ámbito de la mecánica de contacto computacional, los problemas de contacto tratan con la deformación que sufren cuerpos separados cuando interactúan entre ellos. Comunmente, estos problemas son formulados como problemas de minimización con restricciones, que pueden ser resueltos utilizando técnicas de optimización como la penalización, los multiplicadores de Lagrange, el Lagrangiano Aumentado, etc. Este enfoque clásico está basado en la conectividad de nodos entre los cuerpos, que se realiza a través de la construcción de los elementos de contacto que surgen de la discretización de la interfaz. Estos elementos incorporan las restricciones de contacto en forma débil. Debido al consumo de memoria y a los requerimientos de potencia de cálculo que los problemas de contacto requieren, resultan ser muy buenos candidatos para su paralelización computacional. Sin embargo, tanto la paralelización de los métodos numéricos que surgen de las técnicas clásicas de optimización como los distintos enfoques para su discretización, presentan algunas desventajas que deben ser consideradas. Por un lado, el principal problema aparece ya que en los casos más generales de la mecánica de contacto ocurre un deslizamiento entre cuerpos. Por este motivo, la introducción de los elementos de contacto vuelve necesaria una actualización del grafo de la malla cada cierto número de pasos de tiempo. Desde el punto de vista del método de descomposición de dominios utilizado en la resolución paralela de problemas numéricos, esto es una gran desventaja debidoa su coste computacional. En estos casos, un reparticionamiento dinámico debe ser realizado para redistribuir el grafo actualizado de la malla entre los diferentes procesadores. Por otro lado, algunas técnicas de optimización modifican dinámicamente el número de grados de libertad del problema al introducir multiplicadores de Lagrange como incógnitas. En este trabajo presentamos un algoritmo paralelo del tipo Dirichlet-Neumann para la resolución numérica de problemas de contacto no lineales con fricción, poniendo un especial énfasis en su implementación computacional. Entre sus principales características se puede destacar que no hay necesidad de actualizar el grafo de la malla durante la simulación, ya que en este algoritmo no se utilizan elementos de contacto. Adicionalmente, ningún grado de libertad extra es introducido al sistema, ya que los multiplicadores de Lagrange no son requeridos. En este algoritmo los cuerpos en contacto son tratados de forma separada, de una manera segregada. El acople entre estos cuerpos es realizado a través del intercambio de condiciones de contorno en la interfaz de contacto. Desde un punto de vista computacional, esta característica permite el uso de un enfoque multi-código. Además, este algoritmo puede ser interpretado como un método del tipo black-box ya que permite resolver cada cuerpo por separado, aún utilizando distintos códigos computacionales. Adicionalmente, el algoritmo de contacto propuesto en esta tesis puede ser formulado como un esquema de resolución de punto fijo, empleado de forma general en la solución de problemas de interfaz. Esta generalización permite extrapolar técnicas numéricas ya utilizadas en los problemas de interacción fluido-estructura e implementarlas en la mecánica de contacto, en especial aquellas relacionadas con el aseguramiento y aceleración de la convergencia. En este trabajo describimos la implementación paralela del algoritmo propuesto y analizamos su comportamiento y performance paralela tanto en casos de validación como reales, ejecutados en computadores de alta performance utilizando varios procesadores.