A personal demo project for beam analysis using FEniCS, executed through a Jupyter pod on Kubernetes.
Choose from 6 beam types (cantilever, fixed-fixed, fixed-pinned), with point loads or distributed loads.
6 available types: rectangular, circular, hollow, I-beam, and U-shaped sections.
Input Young’s modulus (E) and Poisson’s ratio (ν).
Specify force position and magnitude.
Automatically sends problem.json to a Jupyter pod and executes the notebook using papermill.
Displays stress, deformation, and comparison with analytical solutions.
- Kubernetes cluster with access to a Jupyter Notebook service
kubectlconfigured and working
wget https://github.com/yourusername/fenics-tui/releases/latest/download/beam_app
chmod +x beam_app
./beam_appgit clone https://github.com/yourusername/fenics-tui.git
cd fenics-tui
go mod download
go build -o beam_app main.go
./beam_app-
Launch the application:
./beam_app
-
Navigation:
- Arrow keys (↑↓←→)
- or Vim keys (h, j, k, l)
- Press Enter to validate each step
-
Enter numeric values when prompted
-
After validation:
problem.jsonis sent to the Jupyter pod- FEniCS notebook is executed
- Results are retrieved and displayed
The binary/notebook is preconfigured for a specific Kubernetes environment. To adapt it, modify the source code:
- Kubernetes namespace:
-n namespace - Jupyter pod name:
jupyter-name - Executed notebook:
poutre.ipynb
fenics-tui/
├── main.go # Go source code
├── go.mod # Go dependencies
├── go.sum # Dependency checksums
├── beam_app # Precompiled binary (optional)
├── demo.gif # Application demo
├── demo.tape # Terminal recording
├── notebooks/
│ └── poutre.ipynb # FEniCS notebook
├── LICENSE # MIT License
└── README.md # DocumentationMIT License – see the LICENSE file for details.
Built with Bubble Tea — a powerful framework for building terminal user interfaces in Go.
