1. 26 May, 2021 1 commit
2. 05 Oct, 2020 1 commit
• 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
3. 31 Oct, 2019 1 commit
4. 06 Feb, 2019 1 commit
5. 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.
6. 08 Oct, 2016 1 commit
7. 01 Nov, 2015 1 commit
8. 14 Aug, 2011 1 commit
9. 19 Jan, 2011 1 commit
10. 07 Jan, 2011 1 commit
11. 05 Jan, 2011 2 commits
12. 28 Jul, 2010 1 commit
13. 29 Mar, 2010 1 commit
14. 14 Jan, 2010 1 commit
15. 07 Dec, 2009 1 commit
• Remove legacy splines code and use CatmullRomSpline as 'spline' · 73f9f7f7
Mark Olesen authored
- compatibility:
* 'polySpline' and 'simpleSpline' accepted
* detect and discard end tangent specifications

- a BSpline is also included (eg, for future support of NURBS), but is
not selectable from blockMesh since it really isn't as nice as the
Catmull-Rom (ie, doesn't *exactly* go through each point).
16. 04 Dec, 2009 1 commit
17. 30 Nov, 2009 1 commit
18. 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)
19. 23 Nov, 2009 1 commit
20. 26 Oct, 2009 2 commits
21. 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
22. 16 Sep, 2009 2 commits
23. 31 Dec, 2008 1 commit
24. 25 Jun, 2008 2 commits
25. 15 Apr, 2008 1 commit