Alya - High Performance Computational Mechanics

Primary tabs

Alya is a simulation code for high performance computational mechanics. Alya solves coupled multiphysics problems using high performance computing techniques for distributed and shared memory supercomputers, together with vectorization and optimization at the node level.


Alya is a high performance computational mechanics code to solve complex coupled multi-physics / multi-scale problems, which are motsly coming from the engineering realm. Among the different physics solved by Alya we can mention: incompressible/compressible flow, non-linear solid mechanics, chemistry, particle transport, heat transfer, turbulence modeling, electrical propagation, etc. 

Multiphysics coupling is achieved following a multi-code strategy, relating different instances of Alya. MPI is used to communicate between the different instances, where each instance solves a particular physics. This powerful technique enables asynchronous execution of the different physics. Thanks to a careful programming strategy, coupled problems can be solved retaining the escalability properties of the individual instances. 

From scratch, Alya was specially desgined for massively parallel supercomputers, and the parallelization is hybrid. A substructuring technique with MPI as the message passing library is used for distributed memory supercomputers. At the node level, both loop and task parallelisms are considered, using both OpenMP and OmpSs. Dynamic load balance techniques have been introduced as well to better exploit computational resources at the node level. Accelerators like GPU are also exploited at the iterative solver levels to further enhance the performance of the code.


With the increase of computational power, scientists are proposing more and more challenging problems, both in size and complexity: fluid-structure interactions, multiscale couplings (micro to macro), etc. The size of the problems is determined by the time and space scales to be resolved, while the complexity is mainly driven by multiphysics coupling. The main reason for the scientists to consider more and more complex problems is to avoid assumptions in the mathematical models describing the problems in play, but at the expense of multiplying the computational requirements. To face these challenges, computational scientists must participate actively in the developments of the simulation codes, which is becoming a clear tendency in Europe, where the code optimization initiatives have been mainly undertaken by Supercomputing Centers and through the PRACE European project.

Multiphysics problems are governed by coupled sets of equations, each one characterized by specific space and time scales, different algebraic requirements, different communication patterns, different memory and CPU time requirements. Therefore, the solutions of these problems require a multidisciplinary team to develop an efficient simulation code: the mathematician knows how to devise scalable algebraic solvers; the computational scientist knows how to implement the solver, make it as scalable as possible, and port efficiently the code to specific architecture; and the numerical modeler knows how to couple different physics.

All the developments in Alya are application-driven, meaning that the effort of developing and programming new algorithms is always motivated by the application themselves. Among the main application areas where Alya is used are: bio-mechanics (notably for the cardiovascular and respiratory systems), wind energy, environmental flows, combustion in gas turbines, aircraft structures, etc.

    • GUILLAUME HOUZEAUX's picture
    • Contact
    • Physical And Numerical Modelling Group Manager
    • Tel: +34 934137781
    • MARIANO VAZQUEZ's picture
    • Contact
    • High Performance Computational Mechanics Group Manager
    • Tel: +34 934137907