v2412: New and improved boundary conditions
The pointMesh now has own (optional) list of patches. The usual behaviour is that the pointMesh employs the same set of patches as the volume 'poly' mesh, operating on the points of the 'poly' patch.
Point patch conditions can now be specified in the polyMesh/pointMesh/boundary file, enabling users to apply constraints on feature edges, points, or even internal points.
The tutorial mesh/blockMesh/sphere7 demonstrates how this can be used to re-snap a spherical block mesh back into a cube. The following image shows the starting blockMesh, where feature edges are in yellow, feature points in red, and the target cube geometry to snap to in black.
The mesh after 10 iterations of snapping to the box geometry:
This tutorial also shows an example use of the new displacementPointSmoothing motion solver, which takes a plug-in point smoother:
- laplacian : averages neighbour point positions
- geometricElementTransform : moves to the most orthogonal shape
Note
- pointNormals are not updated during point motion
- cyclic patches are not currently handled correctly in point motion
- These additional pointPatches are supported by:
- moveDynamicMesh, subsetMesh
- decomposePar, reconstructPar, redistributePar
- some mesh motion solvers
Tutorials
- $FOAM_TUTORIALS/mesh/blockMesh/pipe
- $FOAM_TUTORIALS/mesh/blockMesh/sphere7
- $FOAM_TUTORIALS/mesh/moveDynamicMesh/badMove
- $FOAM_TUTORIALS/mesh/moveDynamicMesh/bendJunction
- $FOAM_TUTORIALS/mesh/moveDynamicMesh/faceZoneBlock
Source code
Merge request
- topoSet has been extended with patchToPoint : selects all points of pointPatch (use patchToFace and faceToPoint to get points of polyPatch)
- new point boundary conditions: edgeSlip and pointAttraction (used by the new pointMesh boundary conditions tutorial)
- symmetryPolyPatch : ignores zero-sized faces when calculating average orientation. This is a convenience to enable adding zero-thickness layers for later extrusion.

