The traditional design approach has relied to a large extent on experiments. This trial-and-error approach based on intuition was not only time-consuming but also expensive. The advent of computers gave rise to virtual prototyping, whereby design was drastically revolutionized by means of computational tools. The benefits of a computational approach to design are manifold, including reduced lead times, reduced development costs, and manufacturing and testing only for validation purposes. However, virtual prototyping relies on advanced modeling techniques, and requires efficient, robust, and scalable computational design tools that can faithfully predict the behavior of the real prototype (i.e., numerical modeling requires validation). Proper computational design procedures not only need to represent faithfully the physics of the problem, but also require efficient methodologies to discretize and solve the corresponding partial differential equations (PDEs), and all within an iterative procedure in pursuit of an optimal design.
The advent of parallel computing through the use of distributed memory architectures has facilitated the modeling of large-scale physical phenomena. Nowadays, obtaining a computer cluster with hundreds of processors is becoming increasingly accessible, and the development of computer programs that run in parallel for high-performance computing (HPC) can even be conducted in personal computers containing just a few CPU cores. This provides scientists with unprecedented power for the simulation of complex physical events. Throughout many years I have created and implemented new computational methods for the computational design of advanced material systems and structures. These tools, some of which can be used for large scale simulations in computer clusters, can be used to solve a large class of engineering problems. Below you will find an account of the research I have conducted over the years in material/structural design.