
In this introduction, we briefly discuss how mesh motion is incorporated into the Navier–Stokes equations and outline the basic requirements in OpenFOAM for setting up any type of mesh motion.
In this lecture, we will explore mesh motion in OpenFOAM using various dynamic mesh solvers. We will begin with the dynamicMotionSolverFvMesh framework and understand how it enables mesh motion in simulations. Topics covered include:
Rigid Body Motion and sixDoFMeshMotion: where mesh motion is governed by body dynamics.
solidBodyMotion: where the entire mesh moves as a rigid unit, without the ability to move specific patches.
codedMotion: a powerful and flexible option that allows users to define arbitrary mesh motion using custom C++ code.
By the end of this lecture, you will be able to configure and use different motion solvers effectively for your simulations in OpenFOAM.
Can you combine mesh refinement with patch motion in OpenFOAM? ✅ Yes — and in this comprehensive tutorial, we’ll show you how! We begin with a moving mesh case from our previous mesh motion lecture and walk through the entire process of enabling dynamic mesh refinement. You’ll learn:
? What mesh types support refinement
? Setting up dynamicMeshDict with refinement regions
? Adding custom refinement variables (e.g., velocity gradient magnitude)
? A classic multiphase flow example where the interface is refined as it moves
By the end, you’ll have a strong understanding of how to integrate refinement and motion — perfect for applications like free surface flows, rigid body dynamics, and multiphase CFD.
In this lecture, we explore how to create cell sets in OpenFOAM using the topoSetDict utility. We'll begin by understanding the role of topoSetDict and then dive into the source code to examine various options for defining cell set sources. A special focus will be given to cellSet creation techniques and how they support flexible mesh manipulation. We will also walk through three practical domain configurations where defining appropriate cell sets is essential to generating the final mesh used in simulations.
In this comprehensive tutorial, we walk through the entire process of setting up overset mesh simulations in OpenFOAM, including:
✅ Understanding the basics of overset mesh and interpolation
✅ Creating multiple mesh zones using blockMesh and topoSet
✅ Setting boundary conditions and overset types
✅ Using setFields to assign zone IDs
✅ Configuring overPimpleDyMFoam solver and motion
✅ Visualizing the overset zones, cell types, and results in ParaView
✅ Common mistakes like overlapping overset zones and why they cause simulation errors
We also demonstrate how to:
Animate overset mesh motion using a rigid body solver
Handle multiple overlapping domains
Use correct interpolation strategies and avoid pitfalls that lead to loss of accuracy over time
In this step-by-step tutorial, we build a circular Arbitrary Mesh Interface (AMI) in OpenFOAM for a rotating zone. Starting from geometry creation in Gmsh, we configure SnappyHexMesh, define the rotating zone, fix mesh normals, and set up cyclic AMI boundaries for accurate interpolation between mesh interfaces. You’ll also learn how to move the mesh dynamically, run the simulation, and visualize results in ParaView — without overset meshes. Perfect for anyone working with rotating machinery, sliding meshes, or mesh interfaces in CFD.
In this tutorial, we dive deep into how to create face sets and face zones in OpenFOAM — essential tools for assigning boundary conditions and setting up interfaces like AMI (Arbitrary Mesh Interface). ? What you’ll learn
How to define and use topoSetDict
Creating custom boundaries from cell sets and face sets
Using createPatchDict to assign boundary labels
Visualizing sets and zones with foamToVTK
Converting face sets to face zones for mesh motion and interfaces
In this OpenFOAM tutorial, we explore the use of Arbitrary Mesh Interface (AMI) to simulate a moving square inside a computational domain. The session begins by resetting the case (removing the existing polyMesh), generating a fresh mesh with blockMesh, and setting up the AMI for mesh motion. During the simulation, we observe how AMI handles the relative motion between meshes, and how OpenFOAM dynamically adds and removes mesh layers at the interface to maintain accuracy. We also check the velocity profile to verify the correct transfer of information across the interface. By the end of this tutorial, you’ll understand:
How to reset and rebuild a mesh for AMI simulations in OpenFOAM
Setting up AMI patches for a moving geometry (square in this case)
How OpenFOAM handles mesh layer addition/removal in dynamic simulations
How to visualize mesh motion and velocity profiles for verification
Common pitfalls and bugs to watch out for when setting up AMI
In these notes, we include all the libraries available in OpenFOAM that can be used to implement various types of motion beyond the scope of this course. Feel free to explore them at your own pace.
This beginner-level course provides a structured and practical introduction to mesh motion and dynamic mesh techniques in OpenFOAM. It is designed for learners who are new to moving and deforming meshes and want to understand how dynamic mesh simulations are set up, configured, and executed in OpenFOAM.
The course emphasizes learning through simple, well-chosen example problems. All demonstrations are based on 2D cases, allowing you to focus on the mechanics of mesh motion, solver configuration, and dictionary setup without being distracted by complex physics or large computational costs. Each example walks step by step through the required files, explaining why specific settings are used and how they affect the simulation.
You will learn how to work with commonly used motion models such as solidBodyMotion, sixDoFMeshMotion, and codedMotion, including how to prescribe translations, rotations, and combined motions. The course also introduces mesh deformation and remeshing strategies, explaining when and why they are needed, as well as the fundamentals of overset (chimera) mesh methods.
Rather than covering fully coupled fluid–structure interaction, the course focuses on one-way interaction and prescribed motion, making it ideal for beginners who want to build a strong foundation before moving to advanced topics. Attention is given to solver stability, mesh quality, and common setup mistakes, helping learners diagnose and avoid typical issues encountered in dynamic mesh simulations.
All example case files used in the lectures are provided, enabling you to run the simulations exactly as shown. In addition, supplementary PDF material is included, covering key theoretical concepts, motion model descriptions, and setup guidelines for future reference.
By the end of the course, learners will be comfortable setting up and running basic dynamic mesh simulations in OpenFOAM and will be well prepared to extend these workflows to more complex problems involving rotating machinery, moving boundaries, and deforming domains.