Welcome to the CMOE-Tutorials repository! This repository hosts tutorials used and produced by researchers of the Computational Multiphysics in Offshore Engineering (CMOE) team at TU Delft.
This repository provides comprehensive tutorials on PDE solvers for multiphysics problems with applications to offshore renewable energies. The tutorials are designed to help researchers, students, and practitioners learn and apply computational methods in the context of offshore engineering challenges.
The tutorials primarily focus on:
- PDE Solvers: Numerical methods for solving partial differential equations
- Multiphysics Problems: Coupled systems involving fluid dynamics, structural mechanics, heat transfer, and more
- Offshore Renewable Energy Applications: Wind turbines, wave energy converters, tidal energy systems, and floating solar platforms
While the tutorials primarily use Gridap.jl, a Julia library for grid-based approximation of PDEs, tutorials for other computational libraries will also be included as the repository grows.
Gridap.jl is a powerful finite element library in Julia that provides:
- High-level abstractions for PDE discretization
- Support for complex geometries and adaptive meshes
- Efficient parallel computing capabilities
- Extensibility for custom physics and solvers
CMOE-Tutorials/
├── Gridap_tutorials/ # Tutorials using Gridap.jl
│ └── Tutorial_1.ipynb # Itroduction to Gridap.jl - From Weak Form to Elemental Matrix and Vector
├── Project.toml # Julia project dependencies
├── Manifest.toml # Julia environment specification
└── README.md # This file
To run the tutorials, you'll need:
-
Clone this repository:
git clone https://github.com/CMOE-TUDelft/CMOE-Tutorials.git cd CMOE-Tutorials -
Start Julia in the repository directory:
julia
-
Activate and instantiate the project environment:
using Pkg Pkg.activate(".") Pkg.instantiate()
-
Launch Jupyter notebook:
using IJulia notebook(dir=pwd())
- Tutorial 1: Introduction to Gridap.jl - From Weak Form to Elemental Matrix and Vector
This tutorial explores the fundamentals of finite element assembly in Gridap.jl, going in depth into how weak formulations are transformed into elemental matrices and vectors before global assembly.
More tutorials will be added regularly
We welcome contributions from the CMOE team and the broader research community! If you have a tutorial to share:
- Fork the repository
- Create a new branch for your tutorial
- Add your tutorial with clear documentation
- Submit a pull request
Please ensure your tutorials include:
- Clear explanations of the problem being solved
- Well-commented code
- Example outputs and visualizations
- References to relevant literature
For questions or suggestions, please contact the CMOE team at TU Delft.
This project is licensed under the MIT License - see the LICENSE file for details.
This work is supported by the Computational Multiphysics Offshore Engineering (CMOE) research group at TU Delft.
Last updated: November 2025