96 time().findInstance(meshDir(),
"points"),
105 time().findInstance(meshDir(),
"faces"),
112 MeshReference(this->storedIOFaces(), this->storedIOPoints()),
119 time().findInstance(meshDir(),
"surfZones"),
131 const word& surfName,
157 MeshReference(this->storedIOFaces(), this->storedIOPoints()),
203 MeshReference(this->storedIOFaces(), this->storedIOPoints()),
224 <<
"creating surfMesh at instance " <<
instance() <<
endl;
259 MeshReference(this->storedIOFaces(), this->storedIOPoints()),
280 <<
"creating surfMesh at instance " <<
instance() <<
nl
309 || this->nFaces() != faces.
size()
316 this->storedIOPoints() =
points;
317 this->storedIOFaces() = faces;
344 this->storedIOPoints() = surf.
points();
345 this->storedIOFaces() = surf.
faces();
372 this->storedIOPoints() = surf.
points();
373 this->storedIOFaces() = surf.
surfFaces();
416 aptr->storedPoints().transfer(this->storedPoints());
417 aptr->storedFaces().transfer(this->storedFaces());
418 aptr->storedZones().transfer(this->storedZones());
428 return dbDir()/meshSubDir;
434 return this->storedIOPoints().instance();
440 return this->storedIOFaces().instance();
452 return this->faces().size();
458 return this->storedIOPoints();
464 return this->storedIOFaces();
470 auto& zones = this->storedZones();
472 if (zones.size() <= 1)
481 bool zonesTooBig(
false);
483 const label maxCount = this->
nFaces();
490 if (start > maxCount)
493 zn.size() = (maxCount - zn.start());
494 start = (zn.start() + zn.size());
510 <<
"Surface has more faces " << maxCount
511 <<
" than zone addressing ... extending final zone" <<
nl;
514 else if (zonesTooBig)
519 <<
"Surface has more zone addressing than faces "
521 <<
" ... trucated/resized accordingly" <<
nl;
539 surfZones_[zonei] =
surfZone(zones[zonei], zonei);
552 fileName meshFilesPath = db().
path()/instanceDir/meshSubDir;
554 rm(meshFilesPath/
"points");
555 rm(meshFilesPath/
"faces");
556 rm(meshFilesPath/
"surfZones");
562 removeFiles(instance());
580 const word& fileType,
590 ).
write(
name, fileType, streamOpt, options);
Functions used by OpenFOAM that are specific to POSIX compliant operating systems and need to be repl...
A helper class for storing points and faces with IO capabilities.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
const objectRegistry & db() const noexcept
Return the local objectRegistry.
const fileName & local() const noexcept
Read access to local path component.
const fileName & instance() const noexcept
Read access to instance path component.
fileName path() const
The complete path.
The IOstreamOption is a simple container for options an IOstream can normally have.
void clear()
Clear the list, i.e. set size to zero.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
static void write(const fileName &name, const MeshedSurfaceProxy &surf, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null)
Write to file, select based on its extension.
A surface geometry mesh with zone information, not to be confused with the similarly named surfaceMes...
surfZoneList & storedZones()
Non-const access to the zones.
const surfZoneList & surfZones() const
Const access to the surface zones.
pointField & storedPoints()
Non-const access to global points.
const List< Face > & surfFaces() const
Return const access to the faces.
List< Face > & storedFaces()
Non-const access to the faces.
const Field< point_type > & points() const noexcept
Return reference to global points.
void size(const label n)
Older name for setAddressableSize.
void shallowCopy(const UList< T > &list)
Copy the pointer and size held by the given UList.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A class for handling file names.
static std::string path(const std::string &str)
Return directory path name (part before last /)
virtual bool write()
Write the output fields.
Abstract definition of a meshed surface defined by faces and points.
virtual const faceList & faces() const =0
The faces used for the surface.
virtual const pointField & points() const =0
The points used for the surface.
Registry of regIOobjects.
virtual const fileName & dbDir() const
Local directory path of this objectRegistry relative to the time.
transferModelList & transfer()
Transfer.
A surface mesh consisting of general polygon faces that has IO capabilities and a registry for storin...
autoPtr< MeshedSurface< face > > releaseGeom()
Release the geometry and return as a MeshedSurface<face>.
const fileName & facesInstance() const
Return the current instance directory for faces.
void copySurface(const pointField &points, const faceList &faces, bool validate=false)
Update with new contents.
fileName meshDir() const
Return the local mesh directory (dbDir()/meshSubDir)
virtual const faceList & faces() const
Return faces.
faceList & storedFaces()
Non-const access to the faces.
virtual ~surfMesh()
Destructor.
void updateRefs()
Update point/face references.
const fileName & pointsInstance() const
Return the current instance directory for points.
void checkZones(const bool verbose=true)
Check the surface zone definitions.
virtual const pointField & points() const
Return points.
void removeFiles() const
Remove all files from mesh instance()
virtual label nPoints() const
Return the number of raw points.
static word meshSubDir
Return the mesh sub-directory name (normally "surfMesh")
void transfer(MeshedSurface< face > &surf, bool validate=false)
Transfer the contents of the argument and annul the argument.
void addZones(const surfZoneList &zones, bool validate=true)
Add surface zones, optionally validating the zone coverage.
virtual label nFaces() const
Return the number of raw faces.
A surface zone on a MeshedSurface.
label start() const
The start label of this zone in the face list.
label size() const
The size of this zone in the face list.
Wraps the normal objectRegistry with a local instance for surfaces.
A class for handling words, derived from Foam::string.
word ext() const
Return file name extension (part after last .)
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const labelList nFaces(UPstream::listGatherValues< label >(aMesh.nFaces()))
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
#define DebugInfo
Report an information message using Foam::Info.
#define WarningInFunction
Report a warning using Foam::Warning.
bool rm(const fileName &file)
Remove a file (or its gz equivalent), returning true if successful.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
constexpr char nl
The newline '\n' character (0x0a)
thermo validate(args.executable(), "h")
#define forAll(list, i)
Loop across all elements in list.