fully extensible - The kernel is extensible in any “direction”. The possibility of adding new element type, new material model with any type and number of internal history parameters, new boundary conditions, numerical algorithms or analysis modules, as well as ability to add and manage arbitrary degrees of freedom is matter of course.
python interface - The python bindings are provided allowing to set up the problem, query the results and even visualize them using VTK from Python script. For advanced users, there is even possibility to develop own elements, material models and other components in Python.
independent problem formulation, numerical solution and data storage - The kernel provides the independent abstractions for analysis, general numerical method and data storage (sparse matrices). The component mapping concept allows to formulate problem and numerical method independently and allows to use any suitable numerical method for problem solution without changes. This concept is further enhanced by abstract sparse matrix interface, allowing to formulate numerical method independently on sparse matrix implementation.
full restart support - The kernel supports full restart from any previously saved state.
staggered analysis - allows to group basic problems together and to transfer and share the solution fields between basic subproblems. The general design allows to use different discretizations for the basic subproblems.
parallel processing support - based on domain decomposition, message passing paradigms, and dynamic load balancing engine. Many analyses can be run in parallel and very good performance scalability can be obtained on various platforms. Message passing concept is highly portable across many platforms (including massively parallel computers, shared memory systems and workstation clusters), For developers, general classes for efficient inter domain communication are provided built over the abstract general layer for message passing libraries. Build in high-level support for dynamic load balancing.
efficient sparse solvers - direct as well as iterative solvers are available. Direct solvers include symmetric and unsymmetric skyline solver and sparse direct solver, iterative solvers support many sparse storage formats and come with several preconditioners. Interfaces to third party linear solver libraries are available, including IML, PETSc (serial and parallel), PARDISO, SuperLu and SPOOLES.
adaptive analysis support - multiple domain concept. Support for error estimation with various remeshing criteria, support for primary unknown and internal variables mapping. Fast spatial localization algorithms based on tree techniques are available.
eXtented Finite Element (XFEM) support - built in representations for global enrichment functions, their geometry description, and generalized integration rules provide generic support for implementing XFEM based solution algorithms.
Iso-Geometric Analysis (IGA) support - built in support for IGA analysis, with B-spline and NURBS interpolation classes. Pilot implementation for plane stress and 3d elesticity available