VSMN20 — Software Development for Technical Applications
Graduate course · Civil Engineering · Lund University

This course teaches you how to develop engineering software in Python, with a focus on finite element analysis (FEA) applications. You will build a complete FEM tool from scratch — starting with basic Python programming and ending with a Qt-based graphical user interface, parametric geometry modelling, and ParaView visualisation.
Getting started
New students — start here
- Install the required software using the Windows or macOS installation guide.
- Open Worksheet 1 and work through it before the first supervision session.
- Keep the Links page open — it contains all tutorials and documentation you will need.
Prerequisites
What you should know before the course
- Basic programming experience in any language is helpful but not required.
- Familiarity with finite element theory at introductory level (e.g. VSMA05 or equivalent).
- A working laptop with administrator rights to install software.
Course structure
Each worksheet builds directly on the previous one. Your chosen problem type (thermal, groundwater, or plane stress) is used throughout all worksheets.
| Worksheet | Topic | Builds on |
|---|---|---|
| Worksheet 1 | Python & NumPy fundamentals | — |
| Worksheet 2 | Object-oriented FEM solver | WS 1 |
| Worksheet 3 | Parametric geometry & GMSH meshing | WS 2 |
| Worksheet 4 | Qt graphical user interface | WS 3 |
| Worksheet 5 | Parameter studies & ParaView export | WS 4 |
| Final submission | Report & complete application | WS 1–5 |
Tools and libraries
| Tool | Purpose | Used from |
|---|---|---|
| Python (Conda-Forge) | Programming language and environment | WS 1 |
| NumPy / Matplotlib | Numerical arrays and plotting | WS 1 |
| CALFEM for Python | FEM routines (element stiffness, assembly, solvers) | WS 2 |
| GMSH | Automatic mesh generation (included with CALFEM) | WS 3 |
| Qt / PySide6 | Graphical user interface | WS 4 |
| ParaView | 3D result visualisation | WS 5 |
Reference guides
The Guides section contains step-by-step instructions for installing Qt Designer and handling high-DPI displays, as well as a guide to producing formatted tables with the tabulate library.