SolidMAT is an object-oriented software system which has been designed & developed for finite element and lifetime analysis of small-to-medium scaled structural applications. The user can configure, start and monitor the different successive steps involved in analysis procedures. The major features of the software package can be highlighted as follows,
- Preprocessing (discretization and mesh generation, material information, boundary conditions and etc.),
- Processing (starting and monitoring the demanded analysis type),
- Postprocessing (displaying the resulting values in various formats such as tables, 2D and 3D plots and etc.).
The slides below showcase some of the real-life benchmark problems analyzed using SolidMAT.
The software is mainly written in Java (90%), including user interfaces, analysis modules and data visualisations. Some of the linear equation solvers are written in Fortran and comipled into standalone executables which are called by the main application when needed.
Some C++ libraries are included into the developed software package in order to be used in fatigue analysis. Because whole software package has been developed in Java programming language, native interfaces needed to be implemented to establish connection between the package and the libraries. This has been realized by the use of Java Native Interface (JNI).
Following sub-sections detail the overall software architecture employed for the development process.
Project has been partitioned into four major packages for simultaneous development. The fea package contains packages necessary for the Finite Element Analysis, the mesh package contains automatic mesh generation classes, the output package includes classes for visualizer and table output writer classes, respectively. The gui package contains all the user interface classes.
The overall UML diagram for the fea package is shown in the following figure.
Overall UML diagram for the output package is shown in the figure below. The visualize package contains two fundamental classes called PreVisualizer and PostVisualizer which serve as connection hubs to more specific visualizer classes depending on the object type to be visualized.
Following sub-sections detail some of the important feautures of the software.
The software system enables the user to perform different linear analyses of the following types:
- Linear static (displacement & stress),
- Modal (free vibration),
- Linear transient (time history),
- Linear buckling (stability),
- Fatigue (lifetime).
Analysis type to be performed can be selected via the following dialog through user interface.
Software package contains an extensive element library. All element types are given with different classifications in the following table.
An element navigator dialog has been implemented for selecting and creating the demanded element types (see figure below). This dialog enables the user to easily navigate through elements by properties such as mechanics, geometry and interpolation degree.
A variety of equation solvers have been implemented and included from linear algebra packages (such as MTJ - Matrix Toolkits for Java and JLAPACK – Linear Algebra Package for Java) to the software package in order to provide efficient solutions for different kinds of problems to be analyzed. These solvers are collected under two major types as linear equation solvers and generalized eigenvalue solvers, respectively.
Depending on the analysis type, user can select a suitable solver through the solver library dialog shown in the following figure.
Mesh generators available in the software package are composed of element sub dividers for elements having line, quadrilateral, triangular and hexahedral geometries. Figure below shows a dialog to mesh solids and some examples of meshed areas and solids.