OpenFOAM logo
The Open Source CFD Toolbox
  Source Guide OpenCFD Solutions Contact OpenFOAM

MeshedSurface< Face > Class Template Reference

A surface geometry mesh with zone information, not to be confused with the similarly named surfaceMesh, which actually refers to the cell faces of a volume mesh. More...

Inheritance diagram for MeshedSurface< Face >:
Collaboration diagram for MeshedSurface< Face >:

List of all members.


Public Member Functions

 ClassName ("MeshedSurface")
 Runtime type information.
 MeshedSurface ()
 Construct null.
 MeshedSurface (const Xfer< pointField > &, const Xfer< List< Face > > &, const Xfer< surfZoneList > &)
 Construct by transferring components (points, faces, zones).
 MeshedSurface (const Xfer< pointField > &, const Xfer< List< Face > > &, const UList< label > &zoneSizes=UList< label >(), const UList< word > &zoneNames=UList< word >())
 Construct by transferring components (points, faces).
 MeshedSurface (const MeshedSurface &)
 Construct as copy.
 MeshedSurface (const UnsortedMeshedSurface< Face > &)
 Construct from a UnsortedMeshedSurface.
 MeshedSurface (const polyBoundaryMesh &, const bool globalPoints=false)
 Construct from a boundary mesh with local points/faces.
 MeshedSurface (const surfMesh &)
 Construct from a surfMesh.
 MeshedSurface (const Xfer< UnsortedMeshedSurface< Face > > &)
 Construct by transferring the contents from a UnsortedMeshedSurface.
 MeshedSurface (const Xfer< MeshedSurface< Face > > &)
 Construct by transferring the contents from a MeshedSurface.
 MeshedSurface (const fileName &)
 Construct from file name (uses extension to determine type).
 MeshedSurface (const fileName &, const word &ext)
 Construct from file name (uses extension to determine type).
 MeshedSurface (const Time &, const word &surfName="")
 Construct from database.
 declareRunTimeSelectionTable (autoPtr, MeshedSurface, fileExtension,(const fileName &name),(name))
virtual ~MeshedSurface ()
 declareMemberFunctionSelectionTable (void, UnsortedMeshedSurface, write, fileExtension,(const fileName &name, const MeshedSurface< Face > &surf),(name, surf))
label size () const
 The surface size is the number of faces.
const List< Face > & faces () const
 Return const access to the faces.
const List< surfZone > & surfZones () const
 Const access to the surface zones.
virtual void addZones (const UList< surfZone > &, const bool cullEmpty=false)
 Add surface zones.
virtual void addZones (const UList< label > &sizes, const UList< word > &names, const bool cullEmpty=false)
 Add surface zones.
virtual void addZones (const UList< label > &sizes, const bool cullEmpty=false)
 Add surface zones.
virtual void removeZones ()
 Remove surface zones.
virtual void clear ()
 Clear all storage.
virtual void movePoints (const pointField &)
 Move points.
virtual void scalePoints (const scalar &)
 Scale points. A non-positive factor is ignored.
virtual void reset (const Xfer< pointField > &points, const Xfer< List< Face > > &faces, const Xfer< surfZoneList > &zones)
 Reset primitive data (points, faces and zones).
virtual void reset (const Xfer< List< point > > &points, const Xfer< List< Face > > &faces, const Xfer< surfZoneList > &zones)
 Reset primitive data (points, faces and zones).
virtual void cleanup (const bool verbose)
 Remove invalid faces.
virtual bool stitchFaces (const scalar tol=SMALL, const bool verbose=false)
virtual bool checkFaces (const bool verbose=false)
virtual label triangulate ()
 Triangulate in-place, returning the number of triangles added.
virtual label triangulate (List< label > &faceMap)
 Triangulate in-place, returning the number of triangles added.
MeshedSurface subsetMesh (const labelHashSet &include, labelList &pointMap, labelList &faceMap) const
 Return new surface.
MeshedSurface subsetMesh (const labelHashSet &include) const
 Return new surface.
void transfer (MeshedSurface< Face > &)
 Transfer the contents of the argument and annull the argument.
void transfer (UnsortedMeshedSurface< Face > &)
 Transfer the contents of the argument and annull the argument.
Xfer< MeshedSurface< Face > > xfer ()
 Transfer contents to the Xfer container.
bool read (const fileName &, const word &ext)
 Read from file. Chooses reader based on explicit extension.
virtual bool read (const fileName &)
 Read from file. Chooses reader based on detected extension.
void writeStats (Ostream &os) const
virtual void write (const fileName &name) const
 Generic write routine. Chooses writer based on extension.
void write (const Time &, const word &surfName="") const
 Write to database.
void operator= (const MeshedSurface< Face > &)
 operator MeshedSurfaceProxy< Face > () const
 Conversion operator to MeshedSurfaceProxy.
template<>
bool isTri ()
template<>
label triangulate ()
template<>
label triangulate (List< label > &faceMap)
template<>
void transcribe (MeshedSurface< face > &surf)
template<>
void transcribe (MeshedSurface< face > &surf)

Static Public Member Functions

static bool isTri ()
 Face storage only handles triangulated faces.
static bool canRead (const fileName &, const bool verbose=false)
 Can we read this file format?
static bool canReadType (const word &ext, const bool verbose=false)
 Can we read this file format?
static bool canWriteType (const word &ext, const bool verbose=false)
 Can we write this file format?
static wordHashSet readTypes ()
static wordHashSet writeTypes ()
static autoPtr< MeshedSurfaceNew (const fileName &, const word &ext)
 Select constructed from filename (explicit extension).
static autoPtr< MeshedSurfaceNew (const fileName &)
 Select constructed from filename (implicit extension).
static void write (const fileName &, const MeshedSurface< Face > &)
 Write to file.

Protected Member Functions

void transcribe (MeshedSurface< face > &)
 Transfer points/zones and transcribe face -> triFace.
void checkZones ()
 basic sanity check on zones
pointFieldstoredPoints ()
 Non-const access to global points.
List< Face > & storedFaces ()
 Non-const access to the faces.
surfZoneListstoredZones ()
 Non-const access to the zones.
void sortFacesAndStore (const Xfer< List< Face > > &unsortedFaces, const Xfer< List< label > > &zoneIds, const bool sorted)
 sort faces by zones and store sorted faces
virtual void remapFaces (const UList< label > &faceMap)
 Set new zones from faceMap.

Friends

class MeshedSurface
class UnsortedMeshedSurface
class surfMesh

Detailed Description

template<class Face>
class Foam::MeshedSurface< Face >

A surface geometry mesh with zone information, not to be confused with the similarly named surfaceMesh, which actually refers to the cell faces of a volume mesh.

A MeshedSurface can have zero or more surface zones (roughly equivalent to faceZones for a polyMesh). If surface zones are defined, they must be contiguous and cover all of the faces.

The MeshedSurface is intended for surfaces from a variety of sources.

  • A set of points and faces without any surface zone information.
  • A set of points and faces with randomly ordered zone information. This could arise, for example, from reading external file formats such as STL, etc.

Source files

Definition at line 77 of file MeshedSurface.H.


Constructor & Destructor Documentation

MeshedSurface (  ) 

Construct null.

MeshedSurface ( const Xfer< pointField > &  pointLst,
const Xfer< List< Face > > &  faceLst,
const Xfer< surfZoneList > &  zoneLst 
) [inline]

Construct by transferring components (points, faces, zones).

Definition at line 164 of file MeshedSurface.C.

MeshedSurface ( const Xfer< pointField > &  pointLst,
const Xfer< List< Face > > &  faceLst,
const UList< label > &  zoneSizes = UList<label>(),
const UList< word > &  zoneNames = UList<word>() 
) [inline]

Construct by transferring components (points, faces).

Use zone information if available

Definition at line 179 of file MeshedSurface.C.

MeshedSurface ( const MeshedSurface< Face > &   ) 

Construct as copy.

MeshedSurface ( const UnsortedMeshedSurface< Face > &  surf  )  [inline]

Construct from a UnsortedMeshedSurface.

Definition at line 217 of file MeshedSurface.C.

MeshedSurface ( const polyBoundaryMesh bMesh,
const bool  globalPoints = false 
) [inline]

Construct from a boundary mesh with local points/faces.

Definition at line 258 of file MeshedSurface.C.

MeshedSurface ( const surfMesh mesh  )  [inline]

Construct from a surfMesh.

Definition at line 240 of file MeshedSurface.C.

MeshedSurface ( const Xfer< UnsortedMeshedSurface< Face > > &  surf  )  [inline]

Construct by transferring the contents from a UnsortedMeshedSurface.

Definition at line 390 of file MeshedSurface.C.

MeshedSurface ( const Xfer< MeshedSurface< Face > > &  surf  )  [inline]

Construct by transferring the contents from a MeshedSurface.

Definition at line 402 of file MeshedSurface.C.

MeshedSurface ( const fileName name  )  [inline]

Construct from file name (uses extension to determine type).

Definition at line 345 of file MeshedSurface.C.

References MeshedSurface< Face >::read().

Here is the call graph for this function:

MeshedSurface ( const fileName name,
const word ext 
) [inline]

Construct from file name (uses extension to determine type).

Definition at line 333 of file MeshedSurface.C.

MeshedSurface ( const Time t,
const word surfName = "" 
) [inline]

Construct from database.

Definition at line 355 of file MeshedSurface.C.

~MeshedSurface (  )  [inline, virtual]

Definition at line 416 of file MeshedSurface.C.


Member Function Documentation

void transcribe ( MeshedSurface< face > &   )  [protected]

Transfer points/zones and transcribe face -> triFace.

void checkZones (  )  [inline, protected]

basic sanity check on zones

Definition at line 23 of file MeshedSurfaceZones.C.

References Foam::endl(), FatalErrorIn, forAll, and WarningIn.

Here is the call graph for this function:

pointField& storedPoints (  )  [inline, protected]

Non-const access to global points.

Definition at line 125 of file MeshedSurface.H.

Referenced by MeshedSurface< Face >::transcribe().

Here is the caller graph for this function:

List<Face>& storedFaces (  )  [inline, protected]

Non-const access to the faces.

Definition at line 131 of file MeshedSurface.H.

Referenced by MeshedSurface< Face >::transcribe().

Here is the caller graph for this function:

surfZoneList& storedZones (  )  [inline, protected]

Non-const access to the zones.

Definition at line 137 of file MeshedSurface.H.

Referenced by MeshedSurface< Face >::cleanup(), MeshedSurface< Face >::remapFaces(), MeshedSurface< Face >::reset(), and MeshedSurface< Face >::transcribe().

Here is the caller graph for this function:

void sortFacesAndStore ( const Xfer< List< Face > > &  unsortedFaces,
const Xfer< List< label > > &  zoneIds,
const bool  sorted 
) [inline, protected]

sort faces by zones and store sorted faces

Definition at line 64 of file MeshedSurfaceZones.C.

void remapFaces ( const UList< label > &  faceMap  )  [inline, protected, virtual]

Set new zones from faceMap.

Reimplemented in cuttingPlane, UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 427 of file MeshedSurface.C.

References forAll, surfZone::size(), UList< T >::size(), surfZone::start(), and MeshedSurface< Face >::storedZones().

Here is the call graph for this function:

ClassName ( "MeshedSurface< Face >"   ) 

Runtime type information.

bool isTri (  )  [inline, static]

Face storage only handles triangulated faces.

Definition at line 33 of file MeshedSurface.C.

bool canRead ( const fileName name,
const bool  verbose = false 
) [inline, static]

Can we read this file format?

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 91 of file MeshedSurface.C.

bool canReadType ( const word ext,
const bool  verbose = false 
) [inline, static]

Can we read this file format?

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 57 of file MeshedSurface.C.

bool canWriteType ( const word ext,
const bool  verbose = false 
) [inline, static]

Can we write this file format?

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 74 of file MeshedSurface.C.

Foam::wordHashSet readTypes (  )  [inline, static]

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 40 of file MeshedSurface.C.

Foam::wordHashSet writeTypes (  )  [inline, static]

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 47 of file MeshedSurface.C.

declareRunTimeSelectionTable ( autoPtr  ,
MeshedSurface< Face >  ,
fileExtension  ,
(const fileName &name)  ,
(name)   
)

Foam::autoPtr< Foam::MeshedSurface< Face > > New ( const fileName name,
const word ext 
) [inline, static]

Select constructed from filename (explicit extension).

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 26 of file MeshedSurfaceNew.C.

References Foam::endl(), FatalErrorIn, Foam::Info, and Foam::nl.

Here is the call graph for this function:

declareMemberFunctionSelectionTable ( void  ,
UnsortedMeshedSurface< Face >  ,
write  ,
fileExtension  ,
(const fileName &name, const MeshedSurface< Face > &surf)  ,
(name, surf)   
)

void write ( const fileName name,
const MeshedSurface< Face > &  surf 
) [inline, static]

Write to file.

Reimplemented in GTSsurfaceFormat< Face >.

Definition at line 107 of file MeshedSurface.C.

References fileName::ext(), and fileName::lessExt().

Here is the call graph for this function:

label size (  )  const [inline]

The surface size is the number of faces.

Reimplemented from List< Face >.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 285 of file MeshedSurface.H.

const List<Face>& faces (  )  const [inline]

Return const access to the faces.

Reimplemented in sampledPatch, sampledPlane, and sampledThresholdCellFaces.

Definition at line 291 of file MeshedSurface.H.

const List<surfZone>& surfZones (  )  const [inline]

Const access to the surface zones.

If zones are defined, they must be contiguous and cover the entire surface.

Definition at line 301 of file MeshedSurface.H.

Referenced by UnsortedMeshedSurface< Face >::UnsortedMeshedSurface().

Here is the caller graph for this function:

void addZones ( const UList< surfZone > &  srfZones,
const bool  cullEmpty = false 
) [inline, virtual]

Add surface zones.

Definition at line 103 of file MeshedSurfaceZones.C.

void addZones ( const UList< label > &  sizes,
const UList< word > &  names,
const bool  cullEmpty = false 
) [inline, virtual]

Add surface zones.

Definition at line 126 of file MeshedSurfaceZones.C.

void addZones ( const UList< label > &  sizes,
const bool  cullEmpty = false 
) [inline, virtual]

Add surface zones.

Definition at line 158 of file MeshedSurfaceZones.C.

void removeZones (  )  [inline, virtual]

Remove surface zones.

Definition at line 188 of file MeshedSurfaceZones.C.

void clear (  )  [inline, virtual]

Clear all storage.

Reimplemented from List< Face >.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 476 of file MeshedSurface.C.

void movePoints ( const pointField newPoints  )  [inline, virtual]

Move points.

Definition at line 487 of file MeshedSurface.C.

void scalePoints ( const scalar scaleFactor  )  [inline, virtual]

Scale points. A non-positive factor is ignored.

Definition at line 501 of file MeshedSurface.C.

void reset ( const Xfer< pointField > &  points,
const Xfer< List< Face > > &  faces,
const Xfer< surfZoneList > &  zones 
) [inline, virtual]

Reset primitive data (points, faces and zones).

Note, optimized to avoid overwriting data (with Xfer::null)

Definition at line 519 of file MeshedSurface.C.

void reset ( const Xfer< List< point > > &  points,
const Xfer< List< Face > > &  faces,
const Xfer< surfZoneList > &  zones 
) [inline, virtual]

Reset primitive data (points, faces and zones).

Note, optimized to avoid overwriting data (with Xfer::null)

Definition at line 548 of file MeshedSurface.C.

References MeshedSurface< Face >::storedZones().

Here is the call graph for this function:

void cleanup ( const bool  verbose  )  [inline, virtual]

Remove invalid faces.

Definition at line 577 of file MeshedSurface.C.

References MeshedSurface< Face >::storedZones().

Here is the call graph for this function:

bool stitchFaces ( const scalar  tol = SMALL,
const bool  verbose = false 
) [inline, virtual]

Definition at line 589 of file MeshedSurface.C.

bool checkFaces ( const bool  verbose = false  )  [inline, virtual]

Definition at line 671 of file MeshedSurface.C.

Foam::label triangulate (  )  [inline, virtual]

Triangulate in-place, returning the number of triangles added.

Definition at line 829 of file MeshedSurface.C.

Referenced by MeshedSurface< Face >::transcribe().

Here is the caller graph for this function:

Foam::label triangulate ( List< label > &  faceMap  )  [inline, virtual]

Triangulate in-place, returning the number of triangles added.

and setting a map of original face Ids. The faceMap is zero-sized when no triangulation was done.

Definition at line 840 of file MeshedSurface.C.

Foam::MeshedSurface< Face > subsetMesh ( const labelHashSet include,
labelList pointMap,
labelList faceMap 
) const [inline]

Return new surface.

Returns return pointMap, faceMap from subsetMeshMap

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 946 of file MeshedSurface.C.

Referenced by MeshedSurface< Face >::transfer().

Here is the caller graph for this function:

Foam::MeshedSurface< Face > subsetMesh ( const labelHashSet include  )  const [inline]

Return new surface.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1034 of file MeshedSurface.C.

void transfer ( MeshedSurface< Face > &  surf  )  [inline]

Transfer the contents of the argument and annull the argument.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1046 of file MeshedSurface.C.

References MeshedSurface< Face >::subsetMesh().

Here is the call graph for this function:

void transfer ( UnsortedMeshedSurface< Face > &  surf  )  [inline]

Transfer the contents of the argument and annull the argument.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1061 of file MeshedSurface.C.

Foam::Xfer< Foam::MeshedSurface< Face > > xfer (  )  [inline]

Transfer contents to the Xfer container.

Reimplemented from List< Face >.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1104 of file MeshedSurface.C.

bool read ( const fileName name,
const word ext 
) [inline]

Read from file. Chooses reader based on explicit extension.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1130 of file MeshedSurface.C.

Referenced by MeshedSurface< Face >::MeshedSurface().

Here is the caller graph for this function:

bool read ( const fileName name  )  [inline, virtual]

void writeStats ( Ostream os  )  const [inline]

Definition at line 25 of file MeshedSurfaceIO.C.

References Foam::endl(), forAll, Foam::nl, and points.

Here is the call graph for this function:

void write ( const Time t,
const word surfName = "" 
) const [inline]

Write to database.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 1145 of file MeshedSurface.C.

void operator= ( const MeshedSurface< Face > &   ) 

operator MeshedSurfaceProxy< Face > (  )  const

Conversion operator to MeshedSurfaceProxy.

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

bool isTri (  )  [inline]

Definition at line 453 of file MeshedSurface.H.

label triangulate (  )  [inline]

Definition at line 460 of file MeshedSurface.H.

References List< T >::clear().

Here is the call graph for this function:

label triangulate ( List< label > &  faceMap  )  [inline]

Definition at line 467 of file MeshedSurface.H.

void transcribe ( MeshedSurface< face > &  surf  )  [inline]

void transcribe ( MeshedSurface< face > &  surf  )  [inline]

Definition at line 52 of file MeshedSurfaceCore.C.


Friends And Related Function Documentation

MeshedSurface [friend]

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 83 of file MeshedSurface.H.

friend class UnsortedMeshedSurface [friend]

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 84 of file MeshedSurface.H.

friend class surfMesh [friend]

Reimplemented in UnsortedMeshedSurface< Face >, and UnsortedMeshedSurface< Face >.

Definition at line 85 of file MeshedSurface.H.


The documentation for this class was generated from the following files:
Copyright © 2000-2009 OpenCFD Ltd