This repository stores the main test cases which were used in my MSc project. The cases can be used as a tutorial for setting up an overset meshes case and a morphing mesh case.
This case demonstrates the set up of overset meshes. Both rotation and surge are included.
This case demonstrates the base case where only turbine rotation is considered. The rotaton is implemented using a sliding mesh interface (AMI in OpenFOAM terms).
This case considers only rotation similarly to the previous case, but inlet and outlet boundaries are modelled as cyclic boundaries to create a sort of infinite array of turbines.
This case models both rotation and surge. The rotaton is implemented using the sliding mesh interface, while the surging motion is implemented with a morhping mesh approach.
This case considers both rotaion ans surge similarly to the previous case, but inlet and outlet boundaries are modelled as cyclic boundaries to create a sort of infinite array of turbines.
The following is a description of steps performed by the Allrun script.
- Create background and foregroung meshes separately.
- Merge meshes with foreground being the master region. Note: The overset boundary must be defined first in the boundary file.
- Renumber the mesh.
- Run checkMesh to create cell sets: region0 - moving region, region1 - stationary region.
- Run topoSet to create a cellZone for the moving region.
- Create (copy) the "0" directory.
- Run setFields to assign zoneIDs: 0 - background, 1 - foreground.
- Define motion parameters (by hand).
- Run moveDynamicMesh to check the mesh motion.
Notes on boundary and initial conditions:
- U, p, turbulence - as usual except for the interface boundary which is of type overset
- point displacement
- interface - patchType overset; type - zeroGradient;
- rotor - zeroGradient;
- everything else - fixed at 0;
- zoneID
- interface - overset;
- everything else - zeroGradient;
The following is a general description of steps needed to combine AMI and morphing mesh.
- Create meshes for rotating and stationary regions separately.
- Merge meshes with mergeMesh. Order of merging (master/slave) doesn't seem to matter.
- Renumber mesh.
- Create AMIs with createPatch. Order of AMI patches (master/slave) doesn't seem to matter.
- Run checkMesh to create cellSets.
- Create all sets and zones:
- faceZone fot translation faces - for defining surge;
- cellZone for rotating region - for defining rotation and surge;
- cellZone for stationary region - for defining deformation;
- faceSet for all AMI faces - needed for decomposition constraints;
- Define motions in dynamicMeshDict.
- Run moveDynamicMesh -noFunctionObjects -checkAMI.
Notes: