Added Catmull-Rom splines to blockMesh.
- the blockMesh interface is splineEdge.H, selectable as "spline" The first tests look fine - it works as expected for the case with buggy polySpline reported on the forum. Should of course do some more extensive testing. The advantages compared to the current B-Spline implementation: - Doesn't need a matrix solver. - The coding resembles something that can be found in the literature. - In contrast to the B-Spline implementation, it is fairly clear what is actually going on. I don't even know if the B-Spline are actually B-Spline, Beta-Splines or something else. - Catmull-Rom splines seem to be what all the graphics people have as their stable workhorse. We now have 3 different names for splines in blockMesh: - "spline" - *new* Catmull-Rom for arbitrary segments. - "simpleSpline" - B-Spline for a single segment - "polySpline" - B-Spline for a multiple segments Assuming the Catmull-Rom splines continue to behave nicely, there is no reason to keep the other (broken) B-Splines. This would help clean up the blockMesh interface too. Placed the older ones under legacy/ for easier identification in the future. TODO: - currently no handling of non-zero end tangents - could be extended to handle closed loops, which might be useful for feature edges from CAD (eg, for the cvm mesher)
Showing
- src/mesh/blockMesh/Make/files 10 additions, 6 deletionssrc/mesh/blockMesh/Make/files
- src/mesh/blockMesh/curvedEdges/CatmullRomSpline.C 131 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/CatmullRomSpline.C
- src/mesh/blockMesh/curvedEdges/CatmullRomSpline.H 128 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/CatmullRomSpline.H
- src/mesh/blockMesh/curvedEdges/arcEdge.C 2 additions, 3 deletionssrc/mesh/blockMesh/curvedEdges/arcEdge.C
- src/mesh/blockMesh/curvedEdges/arcEdge.H 4 additions, 3 deletionssrc/mesh/blockMesh/curvedEdges/arcEdge.H
- src/mesh/blockMesh/curvedEdges/curvedEdge.C 1 addition, 1 deletionsrc/mesh/blockMesh/curvedEdges/curvedEdge.C
- src/mesh/blockMesh/curvedEdges/curvedEdge.H 2 additions, 2 deletionssrc/mesh/blockMesh/curvedEdges/curvedEdge.H
- src/mesh/blockMesh/curvedEdges/legacy/BSpline.C 0 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/legacy/BSpline.C
- src/mesh/blockMesh/curvedEdges/legacy/BSpline.H 0 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/legacy/BSpline.H
- src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.C 5 additions, 5 deletionssrc/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.C
- src/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.H 1 addition, 1 deletionsrc/mesh/blockMesh/curvedEdges/legacy/polySplineEdge.H
- src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.C 3 additions, 3 deletionssrc/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.C
- src/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.H 1 addition, 1 deletionsrc/mesh/blockMesh/curvedEdges/legacy/simpleSplineEdge.H
- src/mesh/blockMesh/curvedEdges/legacy/spline.C 0 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/legacy/spline.C
- src/mesh/blockMesh/curvedEdges/legacy/spline.H 0 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/legacy/spline.H
- src/mesh/blockMesh/curvedEdges/lineEdge.C 4 additions, 0 deletionssrc/mesh/blockMesh/curvedEdges/lineEdge.C
- src/mesh/blockMesh/curvedEdges/lineEdge.H 4 additions, 5 deletionssrc/mesh/blockMesh/curvedEdges/lineEdge.H
- src/mesh/blockMesh/curvedEdges/polyLine.C 77 additions, 29 deletionssrc/mesh/blockMesh/curvedEdges/polyLine.C
- src/mesh/blockMesh/curvedEdges/polyLine.H 19 additions, 13 deletionssrc/mesh/blockMesh/curvedEdges/polyLine.H
- src/mesh/blockMesh/curvedEdges/polyLineEdge.C 8 additions, 2 deletionssrc/mesh/blockMesh/curvedEdges/polyLineEdge.C
Please register or sign in to comment