Introduction to SIMPLAS

1 State-of-the-art and our approach

Industrial competitiveness profits from the minimization of production costs, time-efficient creation of new products and the rational maintenance of existing products, as well as the prediction of failure mechanisms. Differences in precision in the development and redesign of new and existing products are mirrored in differences in competitiveness. Fundamental aspects such as the Industrial Design are now coupled with CAE (Computer Aided Engineering) and estimated production costs (Product Manufacturing and Cost Estimating). Besides some factors related to the traditional product design, it is now established that CAE, including simulation, is an essential tool. The urgency to solve problems of solid mechanics and structures in a precise form triggered in the late 60s of the twentieth century the creation of software based on methods of discretization (or partition) of space and time. In particular, the Finite Element Method (FEM), supported by theoretical (at the level of functional analysis and numerical analysis) developments started the proliferation of integrated analysis tools. Typically, technical drawing → meshing → simulation → visualization work-flows are adopted. Historically, initial tools required the presence of complementary products to enable a consistent work-flow. Many of these dedicated tools remain active today, after three or more decades of use. Reasons for this longevity are:
Within the first generation Finite Element Software, the following products are worth mentioning:
Besides these first generation solutions, there are CAD-integrated packages with technical drawing, verification and optimization. Some examples are,
There is an overlap in this classification, since more in-depth analysis can be performed by Interfaces from the CAD-integrated packages to the first generation Finite Element Software. These two approaches (first generation dedicated tools and integrated CAD systems) do not exhaust the possibilities in terms of software architecture. Semi-programmable or fully programmable offers also exist, which allow greater flexibility and the use of dedicated components. Some examples are:
The presence of Open-Source software is specially relevant in Academic and Laboratory environments. However, fragmentation of projects and unfinished packages are the norm and most of the offers are not production-ready. This fact justifies the fees currently demanded for the Commercial licenses.
On the other hand, contemporary commercial offerings still present rigidity and inefficiencies which are absent from the SIMPLAS proposal. For example:
  1. Monolith and rigid usage required by the detachment from current serious research.
  2. Ballast caused by the creation and maintenance of upstream products (technical drawing, pre-processing, node sorting) and downstream products (post-processing tools, report tools), diverting the emphasis and focus from the calculation part of the product.
  3. Incident-based support system.
  4. Direct costs for the user (support) and indirect costs (inefficiencies in the use) for problems which are not covered in the User Manuals.
  5. Absence of orthogonality in the functionalities, e.g. coupling between governing equations and constitutive laws.
  6. High software maintenance costs caused by the long development times. These costs reflect directly in the license fees.
We provide solutions for each of these 6 points by approaching the software development differently. Concerning point 1, in SIMPLAS we allow complete user-access to functions and variables (in Fortran 2003). In terms of pre-processing, we allow configuration in C++11. Although some Commercial products allow the insertion of user elements and user materials, the level of configuration and customization of SIMPLAS is unsurpassed.
Concerning point 2, our approach allows the team to focus exclusively on the calculation software with interfaces for pre and post-processing. Documentation and extensibility allow the reduction of support incidents (point 3). This is important to the Industrial environment, since not many companies have dedicated expert FEM users.
The 3 gradual usage patterns of SIMPLAS (GUI usage, Restart facilities and programming) and examples with plasticity, contact and fracture allows a inexperienced user to be proficient in a short time, while reducing costs (point 4).
The strategy of partitioning components into additive, multiplicative and constitutive, together with a tool for optimized code generation is essential to a high level of orthogonality. This strongly reduces the costs of development and allows a simplified usage pattern (point 5).
The use of a combination of modern versions of two classical programming language (Fortran 2003 and C++11) allowed a flexible and almost maintenance-free software package. A small team of developers is sufficient for a high-profile product (point 6).

2 Approach

The SIMPLAS package (we use the nomenclature SIMPLAS for the whole set of executables and SimPlas for the simulation code) has the following components cf. Figure 1↓:
figure flowgid.png
Figure 1 SIMPLAS usage pattern.
In terms of organization, the SimPlas code is built from 6 main compoments, as Figure 2↓ illustrates. Library libsimplas.a provides access to all variables.
figure Diagram1.png
Figure 2 Main components of SimPlas (the simulation code).