Go to the documentation of this file.
75 label edgeI = pEdges[pEdgeI];
79 if (
e.otherVertex(v0) == v1)
86 <<
"Cannot find edge between mesh points " << v0 <<
" and " << v1
96 const label patchi =
bMesh.findPatchID(
name);
101 <<
"Cannot find patch " <<
name <<
nl
102 <<
"It should be present but of zero size" <<
endl
103 <<
"Valid patches are " <<
bMesh.names()
107 if (
bMesh[patchi].size())
110 <<
"Patch " <<
name <<
" is present but non-zero size"
117 int main(
int argc,
char *argv[])
121 "Splits mesh by making internal faces external at defined faceSet"
142 const bool overwrite =
args.
found(
"overwrite");
147 Info<<
"Read " << facesSet.size() <<
" faces to split" <<
endl <<
endl;
159 <<
"Face " << faces[i] <<
" in faceSet " << setName
160 <<
" is not an internal face."
190 const labelList& meshPoints = fPatch.meshPoints();
198 forAll(allEdgeFaces, patchEdgeI)
200 if (allEdgeFaces[patchEdgeI].size() == 1)
202 const edge&
e = fPatch.edges()[patchEdgeI];
208 meshPoints[
e.start()],
212 fenceEdges.insert(edgeI);
217 label startFacei = faces[0];
233 zoneFlip[i] = !regionInfo.sideOwner().found(faces[i]);
252 Info<<
"Adding point and face zones" <<
endl;
275 Info<<
nl <<
"Constructed topologyModifier:" <<
endl;
276 splitter[0].writeDict(
Info);
298 <<
"Failed writing polyMesh."
virtual const pointField & points() const
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
A class for handling words, derived from Foam::string.
virtual bool write(const bool valid=true) const
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
static word timeName(const scalar t, const int precision=precision_)
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
static void addNote(const string ¬e)
const polyBoundaryMesh & boundaryMesh() const
Ostream & endl(Ostream &os)
const Type & value() const
const edgeList & edges() const
const labelListList & pointEdges() const
A HashTable with keys but without contents that is similar to std::unordered_set.
This class is derived from polyMesh and serves as a tool for statically connecting pieces of a mesh b...
void checkPatch(const bool allGeometry, const word &name, const PatchType &pp, pointSet &points)
static void addArgument(const string &argName, const string &usage="")
const fileName & pointsInstance() const
Attach/detach boundary mesh modifier. This modifier takes a set of internal faces and converts them i...
Determines the 'side' for every face and connected to a singly-connected (through edges) region of fa...
static void noFunctionObjects(bool addWithOption=false)
A subset of mesh faces organised as a primitive patch.
virtual const labelList & faceOwner() const
const faceZoneMesh & faceZones() const noexcept
errorManip< error > abort(error &err)
errorManipArg< error, int > exit(error &err, const int errNo=1)
bool isInternalFace(const label faceIndex) const noexcept
virtual const faceList & faces() const
#define FatalErrorInFunction
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
static void removeFiles(const polyMesh &mesh)
const dimensionedScalar e
word name(const expressions::valueTypeCode typeCode)
A List with indirect addressing.
Foam::argList args(argc, argv)
static void removeFiles(const polyMesh &)
void addZones(const List< pointZone * > &pz, const List< faceZone * > &fz, const List< cellZone * > &cz)
void setInstance(const fileName &instance, const IOobject::writeOption wOpt=IOobject::AUTO_WRITE)
bool found(const word &optName) const
A list of faces which address into the list of points.
Cell-face mesh analysis engine.