Commit Graph

633 Commits

Author SHA1 Message Date
171c25ab76 blockMesh: added experimental fast-merge algorithm
The standard merge-algorithm is N^2 over the face-points and uses a
geometric proximity test for the merge.  These are both choices for
implementation simplicity and are rather inefficient for large meshes.
I have now implemented an experimental linear topological merge
algorithm which is VERY fast and effective for meshes of any size.
Currently it will merge internal faces on meshes of arbitrary complexity
but does not yet handle edge or face collapse needed for wedges and
other degenerate blocks.

The new fast-merge algorithm may be selected using the optional
"fastMerge" entry:

fastMerge yes;

and if not present the standard N^2 algorithm will be used.

Henry G. Weller
CFD Direct
2015-07-12 20:32:25 +01:00
109d84104f blockMesh: Improve block merge face correspondence test 2015-07-05 18:23:37 +01:00
83f36adb8e Default expansionRatio to 1 for mesh extrusion 2015-05-18 13:18:03 +01:00
c1b53fda48 planeExtrusion.[HC]: Renamed from plane.[HC] to avoid name clash 2015-05-04 21:16:44 +01:00
d7e1d5c24d extrudeMesh: Add sector extrusion type and specialize wedge and plane
to create single layer extrusions with wedge and empty front and back
patches respectively.
2015-05-04 20:54:39 +01:00
891e41e7c7 blockMeshMerge: Adjusted merge-tolerance
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1443
2015-03-05 18:57:18 +00:00
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
a029f59add gradingDescriptor: support SP compilation 2015-02-05 12:11:55 +00:00
92f9825a01 Update headers 2015-02-03 12:12:07 +00:00
7ec17dfd79 blockMesh: Add support for multi/sectional grading in a block
Consider a block describing a channel with two opposite walls.
Currently in order to grade the mesh towards the walls and have a
uniform region in the centre the channel would need to be spit into 3
blocks.  With the new multi/sectional grading this can be achieved in a
single block e.g.

blocks
(
    hex (0 1 2 3 4 5 6 7) (20 60 20)
    simpleGrading
    (
        1
        ((0.2 0.3 4) (0.6 0.4 1) (0.2 0.3 0.25))
        1
    )
);

In this example the block is divided uniformly in the x and z -directions
and split into three grading sections in the y-direction described by
three triples:  ((0.2 0.3 4) (0.6 0.4 1) (0.2 0.3 0.25)).  Each of the
grading sections is described by a triple consisting of the fraction of
the block, the fraction of the divisions and the grading ratio (size of
first division/size of last division).  Both the fraction of the block
and the fraction of the divisions are normalized automatically so they
can be specified scaled in anyway, e.g. as percentages:

blocks
(
    hex (0 1 2 3 4 5 6 7) (20 60 20)
    simpleGrading
    (
        1
        ((2 3 4) (6 4 1) (2 3 0.25))
        1
    )
);

and they need not sum to 1 or 100.

This is very new functionality and not well tested but backward
compatibility has been well tested so all existing blockMeshDicts should
parse correctly.
2015-02-03 12:01:55 +00:00
325b003b6e Added and verified support for 64bit labels
To compile with 64bit labels set

WM_LABEL_SIZE=64

in ~/OpenFOAM/dev/prefs.sh

source ~/.bashrc

then Allwmake in OpenFOAM-dev.

This will build into for example OpenFOAM-dev/platforms/linux64ClangDPInt64Opt

If WM_LABEL_SIZE is unset or set to 32:

WM_LABEL_SIZE=32

the build would be placed into OpenFOAM-dev/platforms/linux64ClangDPInt32Opt

Thus both 32bit and 64bit label builds can coexist without problem.
2014-12-31 19:02:52 +00:00
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
9fb26d59d3 GIT: Repo update 2014-12-11 08:35:10 +00:00
2ddce4e0f2 ENH: snappyHexMesh: debug output 2014-11-07 12:11:11 +00:00
a5e73019e9 ENH: autoHexMesh: parallel consistency 2014-09-24 17:37:29 +01:00
b9a5d9c028 BUG: autoLayerDriver: handling nBufferCells < 0 2014-09-03 16:53:08 +01:00
ee4cea9e47 BUG: autoHexMesh: synchronise positions 2014-08-21 09:37:57 +01:00
5c9f35339e ENH: snappyHexMesh: additional checking for faceZones on processor boundaries 2014-07-23 11:25:11 +01:00
446b140765 BUG: snappyHexMesh: feature refinement in parallel 2014-07-09 14:56:51 +01:00
0d3eeb4fcb blockMesh: Reinstate B-Spline support 2014-06-06 16:08:58 +01:00
b73b8e7610 ENH: snappyHexMesh: allow empty refinement surfaces #1303 2014-05-22 16:45:44 +01:00
929a7a1c2d BUG: linearNormal: access out of bounds 2014-05-07 17:41:18 +01:00
d4ab5953ca BUG: trackedParticle: avoid walking back to processor interface 2014-04-22 12:08:20 +01:00
b5d50b94e7 STYLE: autoSnapDriver: spelling 2014-04-22 10:40:05 +01:00
8b52119b97 BUG: smappyHexMesh: report correct layerFaces 2014-02-19 11:22:54 +00:00
ae8782fe88 BUG: snappyHexMesh: fixed points 2014-02-18 09:19:25 +00:00
44ac461a1d COMP: refinementSurfaces: prevent copying of unitialised (but unused) variables triggering error 2014-02-11 11:38:36 +00:00
e7effbebb0 ENH: snappyHexMesh: reset precision 2014-02-03 13:48:49 +00:00
489475d137 ENH: snappyHexMesh: separate meshing steps same as run through 2014-01-24 09:19:46 +00:00
4ecc2d69f7 STYLE: meshRefinementBaffles: spacing 2014-01-23 17:17:18 +00:00
c00f506ef9 GIT: autoHexMesh: updated date 2014-01-22 10:46:53 +00:00
98cabc2efb ENH: snappyHexMesh: added debug switch 2014-01-21 16:25:15 +00:00
ad65a6643c BUG: snappyHexMesh: use nearest meshed patch when exposing internal faces 2014-01-20 21:05:43 +00:00
2b3b892d03 BUG: autoSnapDriver: missed out feature points if not in multi-region mode 2014-01-15 10:29:59 +00:00
238c8b234d COMP: autoSnapDriver: compiler warning 2014-01-14 15:52:29 +00:00
38d7dea4f8 COMP: autoSnapDriver: missing , 2014-01-10 15:49:05 +00:00
f2500a3df5 ENH: snappyHexMesh: snap region edges to region feature edges 2014-01-10 14:36:07 +00:00
89f9a2180e BUG: refinementFeatures: make all feature edges region edges if read from .eMesh 2014-01-07 09:33:31 +00:00
3e7964f18a ENH: refinementFeatures: searching for nearest region edge 2014-01-03 15:43:45 +00:00
1d4a3f1a7f Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2013-12-31 11:30:23 +00:00
cc780ca2c9 Correct for SP build 2013-12-22 14:05:27 +00:00
386696d55e ENH: refinementFeatures: use extendedEdgeMesh feature points 2013-12-20 16:32:34 +00:00
4d42057791 BUG: trackedParticle: could get stuck on processor face 2013-12-20 15:57:56 +00:00
0839258f63 STYLE: medialAxisMover: moved routines into meshRefinement 2013-12-19 16:05:21 +00:00
60e3467165 BUG: autoSnapDriver: inplace re-ordering! 2013-12-19 11:24:02 +00:00
313841b989 BUG: medialAxisMover: duplicate list 2013-12-17 11:59:31 +00:00
b36dce79d2 STYLE: autoSnapDriverFeature: indentation 2013-12-16 11:56:44 +00:00
9a446b3cbc ENH: autoHexMesh: switchable island detection 2013-12-11 16:34:56 +00:00
a67830e919 STYLE: refinementFeatures: typo 2013-12-11 16:34:36 +00:00
3f5eda25f0 symmetryPlane: add symmetryPlane as a special type of symmetry condition applied to a single plane
The standard/previous general symmetry type is now named symmetry
    both in class and lookup name for consistency.  The rigorous
    symmetryPlane type is needed for moving-mesh cases in which the
    motion it constrained by one or two planes.
2013-12-06 15:45:11 +00:00