FEM Post Processing based on VTK

This page is dedicated to the description of the Google Summer of Code project idea regarding FEM post processing based on the VTK library.

Outline
FreeCAD is not only a traditional CAD platform but also aims at providing general engeneering functionality. One of the most valuable design tools for modern product development is the finite elemen method. It provides advanced means for design analysis, stress tests and optimisation. Over the last two years a FEM workbench in FreeCAD has been developed based on the calculix solver and already reached a usable state in the 0.16 release. However, the typicall FEM workflow involving Pre and Post processing and the problem solving itself is a huge area and not fully handable by the small cummunity. This is why FreeCAD trys to utilize other open source projects as much as possible in order to minimize work and maximise quality and functionality. This has been done with the SMESH and Netgen components for preprocessing, Calculix for solving. Only post processing is currently a custom implementation.

The GSoC project aims at including the well known and powerfull VTK library into FreeCAD for FEM postprocessing. The basics of this have been layed out in a prototype implementation, showing the feasibility of the approach. This implementation has to be further incorporatet into the FEM workbench, extended and made production ready.

Details

 * 1) Get familiar with VTKs dataprocessing capabilities and its architecture. Furthermore get familiar with FreeCADs internal working and the available prototype implementation. It is important to have a good understanding of all involved components to create a welll fitting architecture
 * 2) Analyse the current prototype implementation and find areas to improve. This is especially important in the context of  changes in FreeCADs basic architecture introduced with the PartDEsign next branch. This should allow some modifications to the post processing code making it easier to handle.
 * 3) Implement identified changes and further integrate the postprocessing into the FEM workbench
 * 4) Extend the current functionality with new filters, with more functions and sources. Futhermore include the available spredsheet and plot module for data analysis of certain filter types
 * 5) Make the VTK library implementation work on all platforms (currently there are cmake errors on some) and than replace the custom postprocessing fully

Expected Outcome

 * 1) Fully functional advanced postprocessing in FreeCAD based on VTK
 * 2) Unit tests ensuring the functionality
 * 3) Documentation and tutorials for post processing

Future Possibilities
If this project is finished successfully futher work on the FEM workbench can be done. Advancing the preprocessing with better control over the meshing process come to mind, or integrating different solvers for other analysis types. Also calulix implementation can be advanced, for example allowing nonelinear calculations.

Skills

 * Programming language C++
 * Deep understanding and use of APIs from FreeCAD and VTK
 * Knowledge of FEM postprocessing workflows and needs

Difficulty
Medium