What is Kratos?¶
Kratos is a framework for building multi-disciplinary finite element programs. It provides several tools for easy implementation of finite element applications and a common platform providing effortless interaction between them. Kratos has an innovative variable base interface designed to be used at different levels of abstraction and implemented to be very clear and extendible. It also provides an efficient yet flexible data structure which can be used to store any type of data in a type-safe manner. The Python scripting language is used to define the main procedure of Kratos which significantly improves the flexibility of the framework in time of use.
The kernel and application approach is used to reduce the possible conflicts arising between developers of different fields. Also layers are designed to reflect the working space of different people, considering their programming knowledge.
Kratos is parallelized for Shared Memory Machines (SMM) and Distributed Memory Machines (DMM). In the same way it provides tools for its applications to adapt easily their algorithms to these architectures. Its scalability has been verified up to thousands of cores.
If you have not visited the general CIMNE Kratos Website, you can do it to have an overview of the capabilities of Kratos
Follow Kratos on Twitter!
Who may use Kratos?¶
Some potential users of Kratos are:
- Finite Element Developers: These developers are considered to be more expert in FEM, from the physical and mathematical points of view, than C++ programming. For this reason, Kratos provides their requirements without involving them in advanced programming concepts.
- Application Developers: These users are less interested in finite element programming and their programming knowledge may vary from very expert to higher than basic. They may use not only Kratos itself but also any other applications provided by finite element developers, or other application developers. Developers of optimization programs or design tools are the typical users of this kind.
- Package Users Engineers: and designers are other users of Kratos. They use the complete package of Kratos and its applications to model and solve their problem without getting involved in internal programming of this package. For these users Kratos has to provide a flexible external interface to enable them use different features of Kratos without changing its implementation.
Who is Kratos?¶
The Kratos structure, due to its multi disciplinary nature, has to support the wide variety of algorithms involved in different areas. That’s the principal reason that explain the variety of people, mostly engineers, composing the Kratos Community.
Multiphysic, Finite Element Method, C++ Open Source Code, Free
Kratos is MULTIPHYSIC. One of the main topics in engineering nowadays is the combination of different analysis (thermal, fluid dynamic, structural) with optimising methods in one global software package with just one user interface and, even more, the possibility to extend the implemented solution to new problems.
Kratos is FINITE ELEMENT METHOD (FEM) based. Many problems in engineering and applied science are governed by Partial Differential Equations (PDE), easily handled by computer thanks to numerical methods. The FEM is one of the most powerful, flexible and versatile existing methods.
Kratos is OBJECT ORIENTED. An integration of disciplines, in the physical as well as in the mathematical sense, suggests the use of the modern object oriented philosophy from the computational point of view. The modular design, hierarchy and abstraction of these approaches fits to the generality, flexibility and reusability required for the current and future challenges in numerical methods.
Kratos is OPEN SOURCE. The main code and program structure is available and aimed to grow with the need of any user willing to expand it. The [BSD](https://github.com/KratosMultiphysics/Kratos/wiki/_new) (Berkeley Software Distribution) licence allows to use and distribute the existing code without any restriction, but with the possibility to develop new parts of the code on an open or close basis depending on the developers.
Kratos is FREE because is devoted mainly to developers, researchers and students and, therefore, is the most fruitful way to share knowledge and built a robust numerical methods laboratory adapted to their users’ needs. Free because you have the freedom to modify and distribute the software. The one thing you’re not able to do with free software is take away other people’s freedom. Please, read the license for more detailed information.