FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

surfaceSplitNonManifolds.C File Reference

Takes multiply connected surface and tries to split surface at multiply connected edges by duplicating points. More...


Detailed Description

Takes multiply connected surface and tries to split surface at multiply connected edges by duplicating points.

Introduces concept of

  • borderEdge. Edge with 4 faces connected to it.
  • borderPoint. Point connected to exactly 2 borderEdges.
  • borderLine. Connected list of borderEdges.

By duplicating borderPoints this will split 'borderLines'. As a preprocessing step it can detect borderEdges without any borderPoints and explicitly split these triangles.

The problems in this algorithm are:

  • determining which two (of the four) faces form a surface. Done by walking face-edge-face while keeping and edge or point on the borderEdge borderPoint.
  • determining the outwards pointing normal to be used to slightly offset the duplicated point.

Uses sortedEdgeFaces quite a bit.

Is tested on simple borderLines resulting from extracting a surface from a hex mesh. Will quite possibly go wrong on more complicated border lines (i.e. ones forming a loop).

Dumps surface every so often since might take a long time to complete.

Usage
  • surfaceSplitNonManifolds [OPTIONS] <Foam surface file> <surface output file>
Parameters:
\<Foamsurface file>
Todo:
Detailed description of argument.
Parameters:
\<surfaceoutput file>
Todo:
Detailed description of argument.
Parameters:
-debug
Generate debugging output.
-case<dir>
Case directory.
-help
Display help message.
-doc
Display Doxygen API documentation page for this application.
-srcDoc
Display Doxygen source documentation page for this application.

Definition in file surfaceSplitNonManifolds.C.

#include "src/OpenFOAM/global/argList/argList.H"
#include "src/triSurface/triSurface/triSurface.H"
#include "src/OpenFOAM/db/IOstreams/Fstreams/OFstream.H"
#include "src/OpenFOAM/containers/Lists/ListOps/ListOps.H"
#include "src/meshTools/triSurface/triSurfaceTools/triSurfaceTools.H"
Include dependency graph for surfaceSplitNonManifolds.C:

Go to the source code of this file.