blockMesh: New experimental support for projecting block face point to geometric surfaces
For example, to mesh a sphere with a single block the geometry is defined in the blockMeshDict as a searchableSurface: geometry { sphere { type searchableSphere; centre (0 0 0); radius 1; } } The vertices, block topology and curved edges are defined in the usual way, for example v 0.5773502; mv -0.5773502; a 0.7071067; ma -0.7071067; vertices ( ($mv $mv $mv) ( $v $mv $mv) ( $v $v $mv) ($mv $v $mv) ($mv $mv $v) ( $v $mv $v) ( $v $v $v) ($mv $v $v) ); blocks ( hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1) ); edges ( arc 0 1 (0 $ma $ma) arc 2 3 (0 $a $ma) arc 6 7 (0 $a $a) arc 4 5 (0 $ma $a) arc 0 3 ($ma 0 $ma) arc 1 2 ($a 0 $ma) arc 5 6 ($a 0 $a) arc 4 7 ($ma 0 $a) arc 0 4 ($ma $ma 0) arc 1 5 ($a $ma 0) arc 2 6 ($a $a 0) arc 3 7 ($ma $a 0) ); which will produce a mesh in which the block edges conform to the sphere but the faces of the block lie somewhere between the original cube and the spherical surface which is a consequence of the edge-based transfinite interpolation. Now the projection of the block faces to the geometry specified above can also be specified: faces ( project (0 4 7 3) sphere project (2 6 5 1) sphere project (1 5 4 0) sphere project (3 7 6 2) sphere project (0 3 2 1) sphere project (4 5 6 7) sphere ); which produces a mesh that actually conforms to the sphere. See OpenFOAM-dev/tutorials/mesh/blockMesh/sphere This functionality is experimental and will undergo further development and generalization in the future to support more complex surfaces, feature edge specification and extraction etc. Please get involved if you would like to see blockMesh become a more flexible block-structured mesher. Henry G. Weller, CFD Direct.
Showing
- applications/utilities/mesh/generation/blockMesh/Make/options 2 additions, 0 deletions...ications/utilities/mesh/generation/blockMesh/Make/options
- applications/utilities/mesh/generation/blockMesh/blockMesh.C 2 additions, 4 deletionsapplications/utilities/mesh/generation/blockMesh/blockMesh.C
- applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C 1 addition, 1 deletion...ders/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMesh.C
- applications/utilities/postProcessing/graphics/PV3Readers/PV3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C 2 additions, 2 deletions...3blockMeshReader/vtkPV3blockMesh/vtkPV3blockMeshConvert.C
- applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options 2 additions, 0 deletions...s/PVReaders/PVblockMeshReader/vtkPVblockMesh/Make/options
- applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/vtkPVblockMesh.C 1 addition, 1 deletion...Readers/PVblockMeshReader/vtkPVblockMesh/vtkPVblockMesh.C
- applications/utilities/postProcessing/graphics/PVReaders/PVblockMeshReader/vtkPVblockMesh/vtkPVblockMeshConvert.C 3 additions, 3 deletions.../PVblockMeshReader/vtkPVblockMesh/vtkPVblockMeshConvert.C
- src/mesh/blockMesh/Make/files 12 additions, 10 deletionssrc/mesh/blockMesh/Make/files
- src/mesh/blockMesh/Make/options 2 additions, 2 deletionssrc/mesh/blockMesh/Make/options
- src/mesh/blockMesh/block/block.C 9 additions, 49 deletionssrc/mesh/blockMesh/block/block.C
- src/mesh/blockMesh/block/block.H 20 additions, 32 deletionssrc/mesh/blockMesh/block/block.H
- src/mesh/blockMesh/block/blockCreate.C 333 additions, 267 deletionssrc/mesh/blockMesh/block/blockCreate.C
- src/mesh/blockMesh/block/blockI.H 6 additions, 12 deletionssrc/mesh/blockMesh/block/blockI.H
- src/mesh/blockMesh/blockDescriptor/blockDescriptor.C 112 additions, 10 deletionssrc/mesh/blockMesh/blockDescriptor/blockDescriptor.C
- src/mesh/blockMesh/blockDescriptor/blockDescriptor.H 72 additions, 16 deletionssrc/mesh/blockMesh/blockDescriptor/blockDescriptor.H
- src/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C 26 additions, 22 deletionssrc/mesh/blockMesh/blockDescriptor/blockDescriptorEdges.C
- src/mesh/blockMesh/blockDescriptor/blockDescriptorI.H 115 additions, 0 deletionssrc/mesh/blockMesh/blockDescriptor/blockDescriptorI.H
- src/mesh/blockMesh/blockDescriptor/blockDescriptorTest.C 24 additions, 0 deletionssrc/mesh/blockMesh/blockDescriptor/blockDescriptorTest.C
- src/mesh/blockMesh/blockEdges/BSplineEdge/BSpline.C 0 additions, 1 deletionsrc/mesh/blockMesh/blockEdges/BSplineEdge/BSpline.C
- src/mesh/blockMesh/blockEdges/BSplineEdge/BSpline.H 0 additions, 0 deletionssrc/mesh/blockMesh/blockEdges/BSplineEdge/BSpline.H
Please register or sign in to comment