To well capture the properties of fluid near boundaries, the high quality layered mesh should be taken care of.
Enable Layering
To enable the layering functionality, set the addLayers
option to true
in the snappyHexMeshDict
.
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Which of the steps to run
castellatedMesh true;
snap true;
addLayers true;
In the addLayersControls
section, call the patches where you want to add layers, and determine how many layers(nSurtaceLayers
) you want.
addLayersControls
{
...
layers
{
wall //The patch name
{
nSurfaceLayers 3; //The number of layers
}
}
...
}
How the layers grow
Since the number of layers is given, we should tell snappyHexMesh how we want the layers to grow and thickness values should be assigned.
addLayersControls
{
...
relativeSizes true
expansionRatio 1.2;
finalLayerThickness 0.5; //or thickness or firstLayerThickness
...
}
There are different methods to specify the thickness values:
expansionRatio
andfinalLayerThickness
expansionRatio
andfirstLayerThickness
expansionRatio
andthickness
, thickness representing the overall thickness of the layers
But snappyHexMesh does not necessarily follow the thickness values you manually set if you set the relativeSizes
option to true
when snappyHexMesh would define the final layer thickness and minimum thickness being relative to the background spacing. The advantage is the smooth transition from layers to volume mesh while the disadvantage is the thickness distribution of the layers would be out of control and the layers would seem distorted.
Under such circumstances, uniform surface refinement is needed to devote to a uniform boundary layer, while the layer thickness is still not controlled by you.
If you set the relativeSizes
option to false
, then the preset layer thickness is guaranteed, but you would also come across problems like the sudden transition from fine layered mesh to coarse volume mesh. A good way to cope with this problem is to use the help of distance mode surface refinement.
How the layers collapse
addLayersControls
{
...
minThickness 0.1
featureAngle 45
...
}
There are certain circumstances when layers are automatically collapsed.
When the overall thickness of the layer is less than a preset minThickness
, certain parts of the layers may collapse to protect the cell shapes and mesh quality.
When the angle between the two surfaces is larger than the parameter featureAngle
value, the mesh will collapse in the corner. Increase the value to prevent collapsing.
Summary
- If you want convenience, set
relativeSizes
totrue
, use uniform surface refinement and largerfeatureAngle
- If you want the accurate thickness of the layers, especially the first layer, set
relativeSizes
tofalse
, use distance mode surface refinement and adjust the thickness values.