1. 05 Oct, 2020 1 commit
    • Mark Olesen's avatar
      ENH: support arc edge specification with origin point · 1d08ed9b
      Mark Olesen authored
      - The arc will frequently enclose an angle less than 180 degrees.
        For the case, it is possible to define the arc by its endpoints
        and its centre (origin) point. For example,
      
            arc 0 1 origin (0 0 0);
      
        When defined in the way, any discrepancy in the arc radius for the
        endpoints is resolved by adjusting the origin to ensure that the
        average radius is satisfied.
      
        It is also possible to specify a \em flatness factor as a multiplier
        of the radius. For example,
      
            arc 0 1 origin 1.1 (0 0 0);
      
      ENH: minor code cleanup for block edges
      
      ENH: expose point appending as polyList::concat
      1d08ed9b
  2. 31 Oct, 2019 1 commit
  3. 17 Feb, 2019 1 commit
    • Mark Olesen's avatar
      ENH: minor blockMesh improvements · 48e3590b
      Mark Olesen authored
      - avoid potential ambiguities in naming of mesh faces/edges
        vs. block faces/edges
      
      - additional methods characterizing the number of faces
        (internal, boundary, total) associated with a blockDescriptor
      
      - cellLabel() accessor and checkIndex() methods
      
      - restore demand-driven behaviour of block, cache the calculated cells
        and refactor generation of block boundary faces to improve potential
        reuse.
      48e3590b
  4. 06 Feb, 2019 1 commit
  5. 27 Apr, 2018 1 commit
  6. 31 Oct, 2016 1 commit
    • Henry Weller's avatar
      blockMesh: Added edge projection · 9a155dd0
      Henry Weller authored
      New functionality contributed by Mattijs Janssens:
        - new edge projection: projectCurve for use with new geometry
          'searchableCurve'
        - new tutorial 'pipe'
        - naming of vertices and blocks (see pipe tutorial). Including back
          substitution for error messages.
      9a155dd0
  7. 15 Oct, 2016 1 commit
  8. 13 Oct, 2016 1 commit
    • Henry Weller's avatar
      blockMesh: New experimental support for projecting block face point to geometric surfaces · 00920318
      Henry Weller authored
      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.
      00920318
  9. 08 Oct, 2016 1 commit
  10. 14 Aug, 2011 1 commit
  11. 19 Jan, 2011 1 commit
  12. 14 Jan, 2011 1 commit
  13. 07 Jan, 2011 1 commit
  14. 05 Jan, 2011 2 commits
  15. 17 Dec, 2010 1 commit
  16. 28 Jul, 2010 1 commit
  17. 29 Mar, 2010 1 commit
  18. 14 Jan, 2010 1 commit
  19. 29 Nov, 2009 1 commit
    • Mark Olesen's avatar
      Added Catmull-Rom splines to blockMesh. · 5648be03
      Mark Olesen authored
      - 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)
      5648be03
  20. 23 Nov, 2009 1 commit
  21. 07 Oct, 2009 1 commit
    • Mark Olesen's avatar
      blockMesh/curvedEdges misc. cleanup · 33156d98
      Mark Olesen authored
      - also sifted through code to find out why polySplineEdge is going wrong
      
        It doesn't seem to be a virtual/non-virtual issue, but appears to
        be an issue with how BSpline is solving for the new points.
      33156d98
  22. 21 Sep, 2009 1 commit
  23. 17 Sep, 2009 1 commit
    • Mark Olesen's avatar
      blockMesh: most mesh data are now demand-driven · 897baf81
      Mark Olesen authored
      - Unless the points(), cells(), patches() methods are called, the classes
        should know maintain a lightweight representation for as long as possible.
      
      - bugfix: old-code used xferMove() instead of xferCopy() when creating the
        topology mesh - causing const pointField& to break if the code order was
        changed
      
      - relocate blockMesh from src/meshing -> src/mesh
      897baf81
  24. 16 Sep, 2009 2 commits
  25. 31 Dec, 2008 1 commit
  26. 25 Jun, 2008 2 commits
  27. 15 Apr, 2008 1 commit