4. Conclusion#

In the context of thermo-mechanical simulations with Code_Aster, most of the calculation costs often come from the construction and resolution of linear systems. For 60 years, two types of techniques have been competing for supremacy in the field, direct solvers and iterative solvers. Code_Aster, like many general codes, has chosen a diversified offer in the field. However, with a rather orientation hollow direct solvers. These are more suited to its needs, which can be summarized under the triptych « robustness/problems of multiple second members/moderate parallelism ». Since the code is now based on numerous optimized and sustainable « middleware » (MPI, BLAS,,, LAPACK, METIS…) and is mainly used on clusters of SMP (fast networks, large storage capacity RAM and disk), we seek to optimize the processing of linear solvers in this perspective.

Given the technical requirement [36] _ and a rich international offer [37] _ , to effectively carry out these resolutions, the question of resorting to an external product is now unavoidable. This makes it possible to acquire, at a lower cost, a functionality that is often effective, reliable, efficient and benefiting from a wide range of uses. We can thus benefit from the feedback of a large community of users and the (very) specialized skills of international teams.

Thus Code_Aster has chosen to integrate the parallel multifrontend from package MUMPS. This is in addition, in particular, to its « home » multifrontal. But while it benefits from a long-term adaptation to Aster models, it remains less rich in functionalities (pivoting, pre/post-treatments, quality of the solution…) and less efficient in parallel (for RAM consumptions of the same order). To exploit certain models (almost incompressible elements, X- FEM…) or to carry out « border studies » (cf. tank interiors), this « Code_Aster + MUMPS » coupling sometimes becomes the only viable alternative.

Since then, its integration into Code_Aster has been continuously improved and MUMPS (SOLVEUR/METHODE =” MUMPS “) is used daily on studies. Our Rex has of course grown and we maintain an active partnership relationship with the MUMPS « core-team » (in particular via ANR SOLSTICE and a thesis).

In parallel mode, the use of MUMPS provides gains in CPU **(compared to the code’s default method, the « homemade » multifrontend)**of the order of a dozen out of 32 processors**of the*Aster* machine. In more favorable cases or by exploiting a second level of parallelism or BLR compressions, this CPU gain may be much better.

The solver MUMPS therefore makes it possible not only to solve numerically difficult problems, but, inserted into an Aster calculation process that is already partially parallel, it multiplies its performances. It provides the code with a powerful, generic, robust and general public parallel framework. It thus facilitates the passage of standard studies (<million degrees of freedom) and makes the treatment of large cases accessible to the greatest number of people (~ several million degrees of freedom).