Makes a collection of surface geometries by copying from an existing defined surface geometry. There are no boolean operations, e.g. overlapping surfaces are not intersected. More...
Public Member Functions | |
TypeName ("searchableSurfaceCollection") | |
Runtime type information. More... | |
searchableSurfaceCollection (const IOobject &io, const dictionary &dict) | |
Construct from dictionary (used by searchableSurface) More... | |
searchableSurfaceCollection (const searchableSurfaceCollection &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~searchableSurfaceCollection () |
Destructor. More... | |
const vectorField & | scale () const |
Scaling vector per subsurface. More... | |
vectorField & | scale () |
Scaling vector per subsurface. More... | |
const PtrList< coordinateSystem > & | transform () const |
Coordinate system per subsurface. More... | |
PtrList< coordinateSystem > & | transform () |
Coordinate system per subsurface. More... | |
virtual const wordList & | regions () const |
Names of regions. More... | |
virtual bool | hasVolumeType () const |
Whether supports volume type below. More... | |
virtual label | size () const |
Range of local indices that can be returned. More... | |
virtual tmp< pointField > | coordinates () const |
Get representative set of element coordinates. More... | |
virtual void | boundingSpheres (pointField ¢res, scalarField &radiusSqr) const |
Get bounding spheres (centre and radius squared), one per element. More... | |
virtual tmp< pointField > | points () const |
Get the points that define the surface. More... | |
virtual bool | overlaps (const boundBox &bb) const |
Does any part of the surface overlap the supplied bound box? More... | |
virtual void | findNearest (const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const |
virtual void | findLine (const pointField &start, const pointField &end, List< pointIndexHit > &) const |
Find first intersection on segment from start to end. More... | |
virtual void | findLineAny (const pointField &start, const pointField &end, List< pointIndexHit > &) const |
Return any intersection on segment from start to end. More... | |
virtual void | findLineAll (const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const |
Get all intersections in order from start to end. More... | |
virtual void | getRegion (const List< pointIndexHit > &, labelList ®ion) const |
From a set of points and indices get the region. More... | |
virtual void | getNormal (const List< pointIndexHit > &, vectorField &normal) const |
From a set of points and indices get the normal. More... | |
virtual void | getVolumeType (const pointField &, List< volumeType > &) const |
Determine type (inside/outside/mixed) for point. unknown if. More... | |
virtual void | distribute (const List< treeBoundBox > &, const bool keepNonLocal, autoPtr< distributionMap > &faceMap, autoPtr< distributionMap > &pointMap) |
Set bounds of surface. Bounds currently set as list of. More... | |
virtual void | setField (const labelList &values) |
WIP. Store element-wise field. More... | |
virtual void | getField (const List< pointIndexHit > &, labelList &) const |
WIP. From a set of hits (points and. More... | |
bool | writeData (Ostream &) const |
Pure virtual writaData function. More... | |
void | operator= (const searchableSurfaceCollection &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from searchableSurface | |
TypeName ("searchableSurface") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, searchableSurface, dict,(const IOobject &io, const dictionary &dict),(io, dict)) | |
searchableSurface (const IOobject &io) | |
searchableSurface (const searchableSurface &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual autoPtr< searchableSurface > | clone () const |
Clone. More... | |
virtual | ~searchableSurface () |
Destructor. More... | |
const boundBox & | bounds () const |
Return const reference to boundBox. More... | |
boundBox & | bounds () |
Return non-const access to the boundBox to allow it to be set. More... | |
virtual label | globalSize () const |
Range of global indices that can be returned. More... | |
virtual void | findNearest (const pointField &samples, const scalarField &nearestDistSqr, const labelList ®ionIndices, List< pointIndexHit > &info) const |
Find the nearest locations for the supplied points to a. More... | |
virtual void | findNearest (const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &, vectorField &normal, labelList ®ion) const |
Find nearest, normal and region. Can be overridden with. More... | |
void | operator= (const searchableSurface &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from regIOobject | |
TypeName ("regIOobject") | |
Runtime type information. More... | |
regIOobject (const IOobject &, const bool isTime=false) | |
Construct from IOobject. Optional flag for if IOobject is the. More... | |
regIOobject (const regIOobject &) | |
Copy constructor. More... | |
regIOobject (const regIOobject &&) | |
Move constructor. More... | |
regIOobject (const regIOobject &, bool registerCopy) | |
Copy constructor, transferring registry registration to copy. More... | |
regIOobject (const word &newName, const regIOobject &, bool registerCopy) | |
Copy constructor with new name, transferring registry registration. More... | |
regIOobject (const IOobject &, const regIOobject &) | |
Copy constructor with new IO parameters. More... | |
virtual | ~regIOobject () |
Destructor. More... | |
virtual bool | global () const |
Return true if object is global, i.e. same for all processors. More... | |
virtual bool | globalFile () const |
Return true if object is global, i.e. same for all processors. More... | |
const fileName & | caseName () const |
fileName | path () const |
Return complete path. More... | |
fileName | objectPath () const |
Return complete path + object name. More... | |
fileName | filePath () const |
Return complete path + object name if the file exists. More... | |
bool | checkIn () |
Add object to registry. More... | |
bool | checkOut () |
Remove object from registry. More... | |
void | addWatch () |
Add file watch on object (if registered and READ_IF_MODIFIED) More... | |
bool | registered () const |
Is this object registered with the registry? More... | |
bool | ownedByRegistry () const |
Is this object owned by the registry? More... | |
void | store () |
Transfer ownership of this object to its registry. More... | |
void | release () |
Release ownership of this object from its registry. More... | |
label | eventNo () const |
Event number at last update. More... | |
label & | eventNo () |
Event number at last update. More... | |
bool | upToDate (const regIOobject &) const |
Return true if up-to-date with respect to given object. More... | |
bool | upToDate (const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
bool | upToDate (const regIOobject &, const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
bool | upToDate (const regIOobject &, const regIOobject &, const regIOobject &, const regIOobject &) const |
Return true if up-to-date with respect to given objects. More... | |
void | setUpToDate () |
Set up to date (obviously) More... | |
virtual void | rename (const word &newName) |
Rename. More... | |
bool | headerOk () |
Read and check header info. More... | |
Istream & | readStream (const word &, const bool read=true) |
Return Istream and check object type against that given. More... | |
void | close () |
Close Istream. More... | |
virtual bool | readData (Istream &) |
Virtual readData function. More... | |
virtual bool | read () |
Read object. More... | |
const labelList & | watchIndices () const |
Return file-monitoring handles. More... | |
labelList & | watchIndices () |
Return file-monitoring handles. More... | |
virtual bool | modified () const |
Return true if the object's file (or files for objectRegistry) More... | |
virtual bool | readIfModified () |
Read object if modified (as set by call to modified) More... | |
virtual bool | writeObject (IOstream::streamFormat, IOstream::versionNumber, IOstream::compressionType, const bool write) const |
Write using given format, version and compression. More... | |
virtual bool | write (const bool write=true) const |
Write using setting from DB. More... | |
void | operator= (const IOobject &) |
Public Member Functions inherited from IOobject | |
TypeName ("IOobject") | |
Runtime type information. More... | |
IOobject (const word &name, const fileName &instance, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, registry, io options. More... | |
IOobject (const word &name, const fileName &instance, const fileName &local, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from name, instance, local, registry, io options. More... | |
IOobject (const fileName &path, const objectRegistry ®istry, readOption r=NO_READ, writeOption w=NO_WRITE, bool registerObject=true) | |
Construct from path, registry, io options. More... | |
IOobject (const IOobject &io, const objectRegistry ®istry) | |
Construct from copy resetting registry. More... | |
IOobject (const IOobject &io, const word &name) | |
Construct from copy resetting name. More... | |
IOobject (const IOobject &io)=default | |
Copy constructor. More... | |
autoPtr< IOobject > | clone () const |
Clone. More... | |
autoPtr< IOobject > | clone (const objectRegistry ®istry) const |
Clone resetting registry. More... | |
virtual | ~IOobject () |
Destructor. More... | |
const Time & | time () const |
Return time. More... | |
const objectRegistry & | db () const |
Return the local objectRegistry. More... | |
const word & | name () const |
Return name. More... | |
const word & | headerClassName () const |
Return name of the class name read from header. More... | |
word & | headerClassName () |
Return name of the class name read from header. More... | |
string & | note () |
Return non-constant access to the optional note. More... | |
const string & | note () const |
Return the optional note. More... | |
bool & | registerObject () |
Register object created from this IOobject with registry if true. More... | |
bool | registerObject () const |
Register object created from this IOobject with registry if true. More... | |
readOption | readOpt () const |
readOption & | readOpt () |
writeOption | writeOpt () const |
writeOption & | writeOpt () |
word | group () const |
Return group (extension part of name) More... | |
word | member () const |
Return member (name without the extension) More... | |
word | modelName (const char *name) const |
Return the name of the object within this model. More... | |
const fileName & | rootPath () const |
const fileName & | caseName (const bool global) const |
fileName & | instance () const |
Return the instance directory, constant, system, <time> etc. More... | |
void | updateInstance () const |
If the instance is a time directory update to the current time. More... | |
const fileName & | local () const |
fileName | path (const bool global) const |
Return complete path including the processor sub-directory. More... | |
fileName | objectPath (const bool global) const |
Return complete path + object name including the processor. More... | |
fileName | relativePath () const |
Return the path relative to the case directory. More... | |
fileName | relativeObjectPath () const |
Return complete relativePath + object name. More... | |
fileName | filePath (const word &typeName, const bool global) const |
Return complete path + object name if the file exists. More... | |
bool | readHeader (Istream &) |
Read header. More... | |
bool | headerOk () |
Read header of local object without type-checking. More... | |
template<class Type > | |
void | warnNoRereading () const |
Helper: warn that type does not support re-reading. More... | |
bool | writeHeader (Ostream &) const |
Write header. More... | |
bool | writeHeader (Ostream &, const word &objectType) const |
Write header. Allow override of type. More... | |
bool | good () const |
bool | bad () const |
InfoProxy< IOobject > | info () const |
Return info proxy. More... | |
void | operator= (const IOobject &) |
template<class Name > | |
Foam::word | groupName (Name name, const word &group) |
template<class Name > | |
Foam::word | modelName (Name name, const word &model) |
Additional Inherited Members | |
Public Types inherited from IOobject | |
enum | objectState { GOOD, BAD } |
Enumeration defining the valid states of an IOobject. More... | |
enum | readOption { MUST_READ, MUST_READ_IF_MODIFIED, READ_IF_PRESENT, NO_READ } |
Enumeration defining the read options. More... | |
enum | writeOption { AUTO_WRITE = 0, NO_WRITE = 1 } |
Enumeration defining the write options. More... | |
enum | fileCheckTypes { timeStamp, timeStampMaster, inotify, inotifyMaster } |
Enumeration defining the file checking options. More... | |
Static Public Member Functions inherited from searchableSurface | |
static autoPtr< searchableSurface > | New (const word &surfaceType, const IOobject &io, const dictionary &dict) |
Return a reference to the selected searchableSurface. More... | |
static const word & | geometryDir () |
Return the geometry directory name. More... | |
static const word & | geometryDir (const Time &time) |
Check that the geometry directory exists and return. More... | |
Static Public Member Functions inherited from regIOobject | |
template<class Type > | |
static Type & | store (Type *) |
Transfer ownership of the given object pointer to its registry. More... | |
template<class Type > | |
static Type & | store (autoPtr< Type > &) |
Transfer ownership of the given object pointer to its registry. More... | |
Static Public Member Functions inherited from IOobject | |
static bool | fileNameComponents (const fileName &path, fileName &instance, fileName &local, word &name) |
Split path into instance, local, name components. More... | |
template<class Name > | |
static word | groupName (Name name, const word &group) |
static word | group (const word &name) |
Return group (extension part of name) More... | |
static word | member (const word &name) |
Return member (name without the extension) More... | |
template<class Name > | |
static word | modelName (Name name, const word &model) |
Return the name of the object within the given model. More... | |
template<class Stream > | |
static Stream & | writeBanner (Stream &os, bool noHint=false) |
Write the standard OpenFOAM file/dictionary banner. More... | |
template<class Stream > | |
static Stream & | writeDivider (Stream &os) |
Write the standard file section divider. More... | |
template<class Stream > | |
static Stream & | writeEndDivider (Stream &os) |
Write the standard end file divider. More... | |
Static Public Attributes inherited from searchableSurface | |
static word | geometryDir_ |
Name of the directory for the geometry files. More... | |
Static Public Attributes inherited from regIOobject | |
static float | fileModificationSkew |
Static Public Attributes inherited from IOobject | |
static constexpr const char * | foamFile = "FoamFile" |
Keyword for the FoamFile header sub-dictionary. More... | |
static const NamedEnum< fileCheckTypes, 4 > | fileCheckTypesNames |
static fileCheckTypes | fileModificationChecking |
Type of file modification checking. More... | |
Protected Member Functions inherited from regIOobject | |
bool | readHeaderOk (const IOstream::streamFormat defaultFormat, const word &typeName) |
Read header, check readOpt flags and read data if necessary. More... | |
Protected Member Functions inherited from IOobject | |
void | setBad (const string &) |
Set the object state to bad. More... | |
template<class Type > | |
bool | typeHeaderOk (const bool checkType) |
Read header using typeGlobalFile to find file. More... | |
Makes a collection of surface geometries by copying from an existing defined surface geometry. There are no boolean operations, e.g. overlapping surfaces are not intersected.
buildingA
in the example below. The collection then defines copies of buildingA which each can be scaled using the mandatory scale
parameter and then rotated and translated by the mandatory transform
. In the example below, two geometries are included named buildingB
and buildingC
which are both formed by a translation of buildingA
according to the origin
paramater. No rotation is applied (by setting e1 and e2 to the global x and y axis directions, respectively).Example specification in snappyHexMeshDict/geometry:
buildingA { type searchableBox; min (100 100 0); max (120 120 100); } moreBuildings { type searchableSurfaceCollection; mergeSubRegions true; buildingB { surface buildingA; scale (1 1 1); transform { coordinateSystem { type cartesian; coordinateRotation { type axesRotation; e1 (1 0 0); e2 (0 1 0); } origin (40 40 0); } } } buildingC { $buildingB; transform { coordinateSystem { origin (30 -40 0); } } } }
Definition at line 112 of file searchableSurfaceCollection.H.
searchableSurfaceCollection | ( | const IOobject & | io, |
const dictionary & | dict | ||
) |
Construct from dictionary (used by searchableSurface)
Definition at line 175 of file searchableSurfaceCollection.C.
References Foam::cmptMultiply(), IOobject::db(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, forAllConstIter, Foam::Info, dictionary::isDict(), dictionary::lookup(), objectRegistry::lookupObject(), Foam::max(), VectorSpace< Vector< scalar >, scalar, 3 >::max, boundBox::max(), Foam::min(), VectorSpace< Vector< scalar >, scalar, 3 >::min, VectorSpace< Form, Cmpt, Ncmpts >::min, boundBox::min(), Foam::name(), coordinateSystem::New(), s(), and dictionary::subDict().
|
delete |
Disallow default bitwise copy construction.
|
virtual |
Destructor.
Definition at line 281 of file searchableSurfaceCollection.C.
TypeName | ( | "searchableSurfaceCollection" | ) |
Runtime type information.
|
inline |
Scaling vector per subsurface.
Definition at line 198 of file searchableSurfaceCollection.H.
|
inline |
Scaling vector per subsurface.
Definition at line 204 of file searchableSurfaceCollection.H.
|
inline |
Coordinate system per subsurface.
Definition at line 210 of file searchableSurfaceCollection.H.
|
inline |
Coordinate system per subsurface.
Definition at line 216 of file searchableSurfaceCollection.H.
References searchableSurfaceCollection::regions().
|
virtual |
Names of regions.
Implements searchableSurface.
Definition at line 287 of file searchableSurfaceCollection.C.
References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), forAll, Foam::name(), List< T >::setSize(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::shrink(), and List< T >::size().
Referenced by searchableSurfaceCollection::transform().
|
inlinevirtual |
Whether supports volume type below.
Implements searchableSurface.
Definition at line 224 of file searchableSurfaceCollection.H.
References searchableSurfaceCollection::boundingSpheres(), searchableSurfaceCollection::coordinates(), searchableSurfaceCollection::points(), and searchableSurfaceCollection::size().
|
virtual |
Range of local indices that can be returned.
Implements searchableSurface.
Definition at line 319 of file searchableSurfaceCollection.C.
Referenced by searchableSurfaceCollection::hasVolumeType().
|
virtual |
Get representative set of element coordinates.
Usually the element centres (should be of length size()).
Implements searchableSurface.
Definition at line 326 of file searchableSurfaceCollection.C.
References searchableSurfaceCollection::boundingSpheres(), Foam::cmptMultiply(), forAll, and tmp< T >::ref().
Referenced by searchableSurfaceCollection::hasVolumeType().
|
virtual |
Get bounding spheres (centre and radius squared), one per element.
Any point on element is guaranteed to be inside.
Implements searchableSurface.
Definition at line 356 of file searchableSurfaceCollection.C.
References Foam::cmptMax(), Foam::cmptMultiply(), forAll, List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::coordinates(), and searchableSurfaceCollection::hasVolumeType().
|
virtual |
Get the points that define the surface.
Implements searchableSurface.
Definition at line 393 of file searchableSurfaceCollection.C.
References Foam::cmptMultiply(), forAll, nPoints, points, and tmp< T >::ref().
Referenced by searchableSurfaceCollection::hasVolumeType().
Does any part of the surface overlap the supplied bound box?
Implements searchableSurface.
Definition at line 248 of file searchableSurfaceCollection.H.
References searchableSurfaceCollection::distribute(), Foam::faceMap(), searchableSurfaceCollection::findLine(), searchableSurfaceCollection::findLineAll(), searchableSurfaceCollection::findLineAny(), searchableSurfaceCollection::getField(), searchableSurfaceCollection::getNormal(), searchableSurfaceCollection::getRegion(), searchableSurfaceCollection::getVolumeType(), NotImplemented, and searchableSurfaceCollection::setField().
|
virtual |
Implements searchableSurface.
Definition at line 431 of file searchableSurfaceCollection.C.
References searchableSurfaceCollection::findLine().
|
virtual |
Find first intersection on segment from start to end.
Note: searchableSurfacesQueries expects no intersection to be found if start==end. Is problem?
Implements searchableSurface.
Definition at line 452 of file searchableSurfaceCollection.C.
References Foam::abort(), Foam::cmptDivide(), Foam::cmptMultiply(), Foam::FatalError, FatalErrorInFunction, searchableSurfaceCollection::findLineAny(), forAll, Foam::mag(), n, s(), List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::findNearest(), and searchableSurfaceCollection::overlaps().
|
virtual |
Return any intersection on segment from start to end.
Implements searchableSurface.
Definition at line 549 of file searchableSurfaceCollection.C.
References searchableSurfaceCollection::findLineAll().
Referenced by searchableSurfaceCollection::findLine(), and searchableSurfaceCollection::overlaps().
|
virtual |
Get all intersections in order from start to end.
Implements searchableSurface.
Definition at line 561 of file searchableSurfaceCollection.C.
References List< T >::clear(), forAll, searchableSurfaceCollection::getRegion(), List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::findLineAny(), and searchableSurfaceCollection::overlaps().
|
virtual |
From a set of points and indices get the region.
Implements searchableSurface.
Definition at line 588 of file searchableSurfaceCollection.C.
References forAll, searchableSurfaceCollection::getNormal(), List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::findLineAll(), and searchableSurfaceCollection::overlaps().
|
virtual |
From a set of points and indices get the normal.
Implements searchableSurface.
Definition at line 653 of file searchableSurfaceCollection.C.
References forAll, searchableSurfaceCollection::getVolumeType(), List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::getRegion(), and searchableSurfaceCollection::overlaps().
|
virtual |
Determine type (inside/outside/mixed) for point. unknown if.
cannot be determined (e.g. non-manifold surface)
Implements searchableSurface.
Definition at line 696 of file searchableSurfaceCollection.C.
References searchableSurfaceCollection::distribute(), Foam::exit(), Foam::FatalError, and FatalErrorInFunction.
Referenced by searchableSurfaceCollection::getNormal(), and searchableSurfaceCollection::overlaps().
|
virtual |
Set bounds of surface. Bounds currently set as list of.
bounding boxes. The bounds are hints to the surface as for the range of queries it can expect. faceMap/pointMap can be set if the surface has done any redistribution.
Reimplemented from searchableSurface.
Definition at line 708 of file searchableSurfaceCollection.C.
References forAll.
Referenced by searchableSurfaceCollection::getVolumeType(), and searchableSurfaceCollection::overlaps().
|
virtual |
WIP. Store element-wise field.
Reimplemented from searchableSurface.
Definition at line 741 of file searchableSurfaceCollection.C.
References forAll, and searchableSurfaceCollection::getField().
Referenced by searchableSurfaceCollection::overlaps().
|
virtual |
WIP. From a set of hits (points and.
indices) get the specified field. Misses do not get set. Return empty field if not supported.
Reimplemented from searchableSurface.
Definition at line 762 of file searchableSurfaceCollection.C.
References forAll, List< T >::setSize(), and List< T >::size().
Referenced by searchableSurfaceCollection::overlaps(), and searchableSurfaceCollection::setField().
Pure virtual writaData function.
Must be defined in derived types
Implements regIOobject.
Definition at line 333 of file searchableSurfaceCollection.H.
References NotImplemented, and searchableSurfaceCollection::operator=().
|
delete |
Disallow default bitwise assignment.
Referenced by searchableSurfaceCollection::writeData().