1. 07 Oct, 2020 1 commit
  2. 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
  3. 31 Oct, 2019 1 commit
  4. 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
  5. 06 Feb, 2019 1 commit
  6. 27 Apr, 2018 1 commit
  7. 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
  8. 15 Oct, 2016 1 commit
  9. 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