1. 15 Oct, 2016 1 commit
2. 13 Oct, 2016 1 commit
• 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);
}
}

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.```
3. 08 Oct, 2016 1 commit
4. 14 Aug, 2011 1 commit
5. 19 Jan, 2011 1 commit
6. 14 Jan, 2011 1 commit
7. 07 Jan, 2011 1 commit
8. 05 Jan, 2011 2 commits
9. 17 Dec, 2010 1 commit
10. 28 Jul, 2010 1 commit
11. 29 Mar, 2010 1 commit
12. 14 Jan, 2010 1 commit
13. 29 Nov, 2009 1 commit
• 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)```
14. 23 Nov, 2009 1 commit
15. 07 Oct, 2009 1 commit
• 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.```
16. 21 Sep, 2009 1 commit
17. 17 Sep, 2009 1 commit
• 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```
18. 16 Sep, 2009 2 commits
19. 31 Dec, 2008 1 commit
20. 25 Jun, 2008 2 commits
21. 15 Apr, 2008 1 commit