Commit Graph

4576 Commits

Author SHA1 Message Date
cf0c71789a Adding filter limit scalars to the Delaunay cells. After initial face
check, identifying faces that have bad quality, identifying the points
that support the faces, and 'limiting' them.

Wrong faces are also those that are attached to a cell with 1-3 faces.

At each iteration of filtering, the Delaunay cells are all reindexed.
Now a separate function.

Currently 'limiting' means: do not collapse any face that has any
vertex that has been limited at all and do not move a vertex to the
boundary during the surface smooth if it has been limited.  This is
the most agressive form of limiting and leaves faces in the mesh that
might be safely removed with an less aggressive filter.

Limiting of all points connected to a cell which has a limited
point could be used (comment out code).

Removed some redundant code from indexedCell.
2010-01-13 16:12:05 +00:00
6d4cb53c56 Allowing collapse to continue even with non-zero initial face quality
assessment.
2010-01-12 20:05:58 +00:00
0a65620cb8 Removing commented out owner and neighbour determination from
createFacesOwnerNeighbourAndPatches.  This commit is available for
reference in future.
2010-01-12 15:21:30 +00:00
4e98d8b99e Adding check of mesh after initial point merge (which gets rid of zero
area faces).  The intention is that if checkMesh returns a non zero
number of bad faces, then no amount of collapsing and backtracking can
satisfy the criteria (as long as the value of mergeClosenessCoeff is
appropriate - a more rigorous zero area face collapse may be
appropriate) and the mesher will halt (or at least not filter at
all). The mesh quality criteria and the surface conformation controls
can be altered and the internalDelaunayVertices read in to try again,
or more cell size resolution can be applied in areas where problems
are occuring.
2010-01-12 14:11:06 +00:00
9f9e97a97f Removing the experiment where faces that weren't not able to be
collapsed to a single edge had their vertices aligned and were just
not created.  This causes topolgical nonclosedness, and can cause
geometrical nonclosedness - not a good plan.

Fixed return logic error in smoothSurfaceDualFaces.

Not moving points for deferredCollapseFaces during collapseFace.
Gives the ability to make a a decision about the face at the polyMesh
level and only move the points then.
2010-01-12 11:29:29 +00:00
0552c4d2d9 Adding check for bow-tie faces (ABAB) in buildDualFace.
Adding function for extracting the owner and neighbour for a dual
face, and a bool on when to reverse.

Returning faceCollapseMode from collapseFace to allow decisions to be
made.

Adding removeUnusedCells function to get rid of cells with no faces.

Adding an early collapse to point option for faces that are 0.2 of the
maxCollapseFaceToPointSideLengthCoeff.

Adding a HashSet<labelPair... to record the faces that are to be
collapsed to edges.  Using owner and neighbour labels to index.  WIP
for all mentions.
2010-01-11 18:56:30 +00:00
1c267fb809 Logic errors:
Decisions to skip faces with an already indexed point was wrong, the
continue would be operating on the while loop, not the for loop over
the face, adding a bool to be used afterwards.

limitToQuadsOrTris logic would not work when it was false, it would
never operate regardless of the size of the face.
2010-01-10 11:46:30 +00:00
d598afbd90 Adding faceCollapseMode enum to control mode. Fixing logic error,
returning validCollapse as the status of the faceCollapse was wrong,
it didn't necessarily mean the face was collapsed.

Adding mpre filtering controls to cvContol and using them in the
filtering functions.

Removing minimumEdgeLength(const point& pt) - not needed, always using
the stored vertex size.
2010-01-08 16:40:04 +00:00
7800ceac99 Adding comment to collapse exis determined by eigenvector and
reordering.
2010-01-08 11:42:20 +00:00
67d2158c2f Removing commented out test for the last eigenvalue corresponding to
the face normal.  This commit is available for reference in future.
2010-01-08 11:41:27 +00:00
66619e2525 Removing commented out old 'consume face from longest edge based'
collapse mechanism.  This commit is available for reference in future.
2010-01-08 11:39:33 +00:00
b384b14bac Removing commented out old edge based filtering mechanism. This
commit is available for reference in future.
2010-01-08 11:36:00 +00:00
8902161d8b Adding visualisation output and return false for zero mag inertia
tensors

Fixing comment.
2010-01-08 11:34:30 +00:00
1ca0932b9b Stabilising use of detJ for negative or zero values.
Moving removeUnusedPoints to calcDualMesh from
createFacesOwnerNeighbourAndPatches to allow the latter to be used to
build an intermediate mesh.

Adding the use of motionSmoother::checkMesh (as per snappyHexMesh) to
a new function: checkPolyMeshQuality.  Will be the analysis component
of a filtering back-tracking scheme.
2010-01-07 17:13:13 +00:00
77f8683108 Changing guardFraction from 0.5 to 0.3. 2010-01-06 18:19:13 +00:00
6717b95011 Using the determinant to identify very thin faces and using their
longest edge as the collapse direction.  Discovered that, for long
thin faces, det(J)*aspectRatio^2 ~= 0.35.  Could probably analyse this
to see what the actual value is, but it gives a good empirical measure
for the moment.

Using the middle of the line of all the projected vertices as the
split and applying the guardFraction- gives better handling of
triangles.

Making collapseFace use the cvMeshControls minimumEdgeLengthCoeff
value.
2010-01-06 18:02:14 +00:00
0a0992b9ed Adding size control arguments to collapseFaceToEdge and tweaking.
Adding collapseFaces function to filter faces in the whole mesh using
collapseFaceToEdge.
2010-01-05 18:02:16 +00:00
2c52371be1 Adding counter to prevent infinite recursion in displacement limiting
function.
2010-01-05 17:59:25 +00:00
3eb8456934 Merge branch 'master' into cvm 2010-01-05 11:04:20 +00:00
a9dc4ecca2 Adding build of metisDecomp before meshTools. 2010-01-04 18:29:07 +00:00
c32af2b732 Adding surface smoothing. 2010-01-04 18:27:44 +00:00
58406da0a8 Merge branch 'master' into cvm
Conflicts:
	src/parallel/decompositionMethods/Make/options
2010-01-04 16:45:54 +00:00
8187a4ffaa Solving the complex eigenvalue problem by making point merging more
aggressive to take out line-like faces. Normalising the inertia tensor
is essential for small faces to avoid the calculation of eigenvectors
from falling off the bottom of SMALL.  Normalsing by mag(J) instead of
cmptMax(J).

Moving face point merge, surface smoothing and face filtering
do-while loops to seprate functions.

Implementing point grouping and collapsing for collapseFaceToEdge.
2010-01-04 16:35:13 +00:00
aac29d740a Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2010-01-04 13:37:37 +00:00
c6d4035ced Added master-slave addressing for coupled points.
- Rewrote globalPoints to use globalIndex class so now only transfers
single label instead of labelPair
- Added addressing in globalMeshData
    - from coupled master points to slave points
    -         ,,          edges     ,,    edges
    - from coupled points (master or slave) to uncoupled boundary faces
    -               ,,                    ,,                      cells
- See test/globalMeshData for simple test
2010-01-04 13:25:30 +00:00
0e0ffa4082 Moved metis into its own library.
Scotch is now built using its own build system which builds
an additional metis.h which conflicts with the metis one so
to have separate include directory settings we also need separate
Make/ structures.
2010-01-04 12:55:58 +00:00
1fe32e3c48 Merge branch 'master' into cvm 2010-01-04 11:47:57 +00:00
73781ad682 Added clearing out existing map; added reverse distribution 2010-01-01 11:14:21 +00:00
48b98e4dc7 Corrected header 2009-12-30 16:08:48 +00:00
174cd8e3d7 Adding intertia based collapse axis determination. WIP - some
problems with the tensor::eigenValues calculation:

    "complex eigenvalues detected for tensor:"

for very high aspect ratio faces.
2009-12-22 19:35:03 +00:00
ff671ff1bb Merge branch 'master' into cvm
Conflicts:
	applications/utilities/surface/surfaceFeatureConvert/surfaceFeatureConvert.C
	applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C
	src/Allwmake
	src/edgeMesh/Make/files
	src/edgeMesh/edgeMesh.C
	src/edgeMesh/edgeMesh.H
	src/edgeMesh/edgeMeshI.H
	src/edgeMesh/edgeMeshIO.C
	src/edgeMesh/featureEdgeMesh.C
	src/edgeMesh/featureEdgeMesh.H
	src/edgeMesh/featureEdgeMesh/featureEdgeMesh.C
	src/edgeMesh/featureEdgeMesh/featureEdgeMesh.H
	src/meshTools/searchableSurface/closedTriSurfaceMesh.C
	src/meshTools/searchableSurface/closedTriSurfaceMesh.H

Merged Mark's work on edgeMesh with my featureEdgeMesh.
2009-12-21 15:52:03 +00:00
c0d37d9a6b Merge commit 'OpenCFD/master' into olesenm 2009-12-21 15:06:31 +01:00
8bf3807c3e Update dictionary calcEntry testing for updated CoCo/R 2009-12-21 15:02:33 +01:00
ccdbf4735f Move CocoParserErrors.H template class into src/OpenFOAM/db/error 2009-12-21 14:14:30 +01:00
bd81a6643d Rename of primitiveEdgeMesh to edgeMesh to make merge easier. 2009-12-21 11:33:13 +00:00
d241c43ac7 Adding hard-coded tetraherdal solid inertia calculation. Can be used
in a similar way to calculate the inertia of cells.
2009-12-21 10:29:05 +00:00
2792624996 Expose STL std streams in a consistent manner for serial streams.
Previously Fstreams had stdStream() as a public member and the other
streams had stream() as a protected member.

All serial streams now have public method stdStream() and the stream()
method has been eliminated. This is not only more consistent, but also
avoids confusion (for the programmer, not the compiler) with the
ITstream::stream() method.
2009-12-21 10:24:35 +01:00
438a83fc81 Update experimental dictionary #calc for new Coco pragmas 2009-12-21 09:28:17 +01:00
aa847562ce Reimplementing the uniform density solid inertia calculation from:
http://www.geometrictools.com/LibPhysics/RigidBody/RigidBody.html

in surfaceInertia utility.  Allows calculation of shell or solid
properties of a triSurface, with optionally specified volumetric or
surface density.  Default behaviour is to calculate inertia around
centre of mass, with option to specify reference point.

Various test surfaces supplied and tested against analytical results.
2009-12-18 18:14:32 +00:00
3bfec62cee Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev 2009-12-17 15:55:21 +00:00
e8b1f746dd Disabled moving internal points since not proven to be benificial 2009-12-17 15:54:41 +00:00
b2b242a858 Allocated non-zero fvPatchField - caused memory leak since pointer redirected 2009-12-17 15:54:08 +00:00
9e11bc2d93 Merge branch 'olesenm' 2009-12-16 15:15:03 +00:00
14553e1c4d Merge branch 'master' of ssh://noisy/home/noisy3/OpenFOAM/OpenFOAM-dev 2009-12-16 15:03:19 +00:00
7a4c03b97a Added interPhaseChangeFoam tutorial case: cavitatingBullet 2009-12-16 15:02:49 +00:00
daf1d6db3d Fixed bad usage of Foam::FatalErrorIn in chemkinLexer.L 2009-12-16 15:43:56 +01:00
e434b51914 Add namespace qualifier to WarningIn, FatalErrorIn, etc. macros.
- Previously had just 'Warning' instead of '::Foam::Warning', which
  meant that an identically named class method would inadvertently be
  used - resulting in a compile failure.
2009-12-16 08:55:04 +01:00
a5217d7be3 Merge commit 'bundle/home' into olesenm 2009-12-16 08:08:23 +01:00
cfeeea7b71 Merge commit 'OpenCFD/master' into olesenm 2009-12-16 08:03:50 +01:00
ad2204a818 Add in calcEntry as a very rough draft
- needs Coco/R 16 Dec 2009 version
2009-12-16 01:31:44 +01:00