CALFEM Geometry Editor - Implementing an interactive geometry editor for CALFEM
Abstract: Commercial finite element codes are designed with a wide variety of tools and options to suit the needs of many different applications. However, in a teaching setting this is not always desirable as the effort required to learn the software draws focus and time from the teaching of the theoretical concepts. Using fully developed solvers might also allow solving of exercises without fully understanding the underlying concepts as the software handles it for you. To address this, CALFEM (Computer Aided Learning of the Finite Element Method) was developed at LTH. CALFEM provides a toolbox to solve finite element problems but with a clear connection between the methods used and the governing theoretical concepts. Today, CALFEM is fully implemented in MATLAB but since a few years back a Python version is under development as well. In the finite element method a fundamental part of the problem is the geometry, which is used to generate the finite element mesh. As of now, in order to produce a geometry in CALFEM for Python, all points and connecting lines and surfaces must be manually defined in the code. This is both tedious work and limiting to a simple geometry with few points before becoming difficult to handle. Because of this, students may struggle and spend much time working with defining the geometrical points and connections correctly. To address this issue, the purpose of this dissertation has been to implement an interactive geometry editor designed to create simple geometries in an intuitive way. The editor has been developed in Python combined with a graphical user interface designed in PyQt5. The implemented functions allow creation and editing of polygon and rectangular surfaces in a QGraphicsScene. The geometrical objects created in the QGraphicsScene can then be transformed into a CALFEM geometry object. From this stage a CALFEM mesh can be generated and exported. The main functionality of the editor is developed towards use in Python but option has been included to export mesh results to MATLAB as well. To achieve the goal of creating a simple and intuitive program the user interface was implemented using a ribbon like design to handle the controls. The functionality in the program window was based on the idea of direct manipulation.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)