EASIFEM
Introduction
EASIFEM stands for Expandable And Scalable Infrastructure for Finite Element Methods. It is a framework for implementing the Finite element methods for solving the partial differential equations. EASIFEM is a written in Modern-Fortran programming language. The programing paradigm of EASIFEM can be classified as the object oriented programming (OOP) and multi-dispatch programming. The library is still in development state, which means the new features will be added to the library as time-passes with backward compatibility.
Motivation and philosophy
The motivation of developing EASIFEM is to ease the implementation of numerical methods such as finite element methods.
In my opinion, FEM can be considered as a generic numerical method. We can integrate ideas of Finite difference methods and Finite volume methods into finite element methods. New shape functions are emerging every year to solve a problem effectively. The Variational-multiscale FEM, Discontinuous Galerkin FEM, multi-scale FEM, and mixed FEM are going to be a game changing ideas for developing methods for highly heterogeneous media and multiphysics applications.
Since 1990, even though our knowlege of FEM has increased by manyfolds, the adoptation of these advancements in the field of engineering (especially civil engineering) is close to none. I think it is because the development of a computer program is challenging. Also, even if we develop a serial program for FEM, scaling it to large scale problem is more challenging.
The main reason, I have developed EASIFEM, is to translate my knowedge of computation mechanics and applied mathematics into a computer program. This knowledge can be installed by any person on their computer. They can also add new information to this computer program and share with the rest of the world.
Through EASIFEM a computer can learn about FEM and user have a programming language highly suitable for implementing FEM.
In future, EASIFEM, will include interfaces with the available open-source programs and new kernels for solving program related to geotechnical and earthquake engineering, dynamic soil-structure interaction (e.g., wind-turbine and its foundation), large deformation analysis of soils (e.g., rainfall induced slope failure, soil liquefaction, mud-flow, etc.), geo-environmental problems, soil physics, reactive transport, carbon-storage, to name a few.
Small history of FEM
In the early 70s and 80s, finite element methods were used mainly for structural analysis. The performance of FEM was in the field of computation fluid dynamics (CFD). Therefore, it was opined that FEM is useless for CFD problems. However, in early 90s, the idea of stabilized finite element methods and mixed finite element methods emerged. Thanks to these novel ideas FEM emerged as an effective and robust method for solving CFD problems involving complex geometries and boundary conditions. Mixed/Hybrid FEM also became popular in the field of nonlinear structural analysis of plates, beams, shell and membrane. By the end of 90s, researcher were using FEM in almost all the field of science and engineering.