v2412: New and improved pre-processing
The utility createPatch has been extended to allow creating duplicate boundary faces for e.g. cyclicACMI creation. This can be used to create cyclicACMI connections between externally generated meshes.
A sample system/createPatchDict:
// Patches to create.
patches
(
{
//- Master side patch
name central_inlet_couple;
patchInfo
{
type cyclicACMI;
nonOverlapPatch central_inlet_blockage;
neighbourPatch inlet_central_couple;
}
constructFrom patches;
patches (central_inlet);
}
{
//- Blockage
name central_inlet_blockage;
patchInfo
{
type wall;
}
constructFrom patches;
patches (central_inlet);
}
{
//- Slave side patch
name inlet_central_couple;
patchInfo
{
type cyclicACMI;
nonOverlapPatch inlet_central_blockage;
neighbourPatch central_inlet_couple;
}
constructFrom patches;
patches (inlet_couple);
}
{
//- Blockage
name inlet_central_blockage;
patchInfo
{
type wall;
}
constructFrom patches;
patches (inlet_couple);
}
);
Note: the cyclicACMI patch to-be-created should not exist prior to execution of createPatch.
Tutorials
Source code
Merge request
Buffer layers can now be added to the mesh before snapping, and the snapping algorithm is now user selectable.
Selection of adding buffer layers and using mesh motion functionality is activated using a new top-level entry in the snappyHexMeshDict:
// Type of mesh generation:
// - castellated (default)
// - castellatedBufferLayer
type castellatedBufferLayer;
Buffer layer addition applies to all meshed patches; optionally it can be overridden per surface using the addBufferLayers keyword:
refinementSurfaces
{
sphere
{
// Surface-wise min and max refinement level
level (1 1);
// Disable buffer layers
addBufferLayers false;
}
}
Selection of the mesh motion solver to use during snapping:
snapControls
{
..
solver displacementPointSmoothing;
displacementPointSmoothingCoeffs
{
// Use laplacian to untangle problem areas
pointSmoother laplacian;
nPointSmootherIter 10;
}
The image below shows a single layer of buffer cells added to the outside of a rotated box where cells are coloured according to the cell index:
The second example shows how adding buffer layers can help snapping to a faceZone, keeping both inside and outside regions. Here, the cells are coloured according to non-orthogonality:
Note that buffer layers do not (yet) take feature edges into account.
Tutorials
- $FOAM_TUTORIALS/mesh/snappyHexMesh/rotated_block Meshing the outside of a rotated cube.
- $FOAM_TUTORIALS/mesh/snappyHexMesh/sphere_multiRegion Meshing the inside and outside of a sphere.
Source code
Merge request

