What is Kratos
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 (SMMs) and Distributed Memory Machines (DMMs). 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 Kratos capabilities.
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.
Free Multi-physic Finite Element Method C++ Open Source Code
Kratos is MULTI-PHYSIC. 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 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.