mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge commit 'OpenCFD/master' into olesenm
This commit is contained in:
@ -54,7 +54,10 @@ using namespace Foam;
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
// Scalae factor used to scale points (optional command line argument)
|
// Line number
|
||||||
|
label lineNo = 1;
|
||||||
|
|
||||||
|
// Scale factor used to scale points (optional command line argument)
|
||||||
scalar scaleFactor = 1.0;
|
scalar scaleFactor = 1.0;
|
||||||
|
|
||||||
label dimensionOfGrid = 0;
|
label dimensionOfGrid = 0;
|
||||||
@ -131,8 +134,6 @@ one_space [ \t\f]
|
|||||||
space {one_space}*
|
space {one_space}*
|
||||||
some_space {one_space}+
|
some_space {one_space}+
|
||||||
cspace ","{space}
|
cspace ","{space}
|
||||||
nl (\n|\r)
|
|
||||||
spaceNl ({space}|{nl})*
|
|
||||||
|
|
||||||
alpha [_[:alpha:]]
|
alpha [_[:alpha:]]
|
||||||
digit [[:digit:]]
|
digit [[:digit:]]
|
||||||
@ -146,7 +147,7 @@ quote \"
|
|||||||
dash "-"
|
dash "-"
|
||||||
dotColonDash [.:-]
|
dotColonDash [.:-]
|
||||||
|
|
||||||
schemeSpecialInitial [!$%&*/\\:<=>?~_^#.@]
|
schemeSpecialInitial [!$%&*/\\:<=>?~_^#.@']
|
||||||
schemeSpecialSubsequent [.+-]
|
schemeSpecialSubsequent [.+-]
|
||||||
schemeSymbol (({some_space}|{alpha}|{quote}|{schemeSpecialInitial})({alpha}|{quote}|{digit}|{schemeSpecialInitial}|{schemeSpecialSubsequent})*)
|
schemeSymbol (({some_space}|{alpha}|{quote}|{schemeSpecialInitial})({alpha}|{quote}|{digit}|{schemeSpecialInitial}|{schemeSpecialSubsequent})*)
|
||||||
|
|
||||||
@ -187,23 +188,23 @@ time ({digit}{digit}":"{digit}{digit}":"{digit}{digit})
|
|||||||
|
|
||||||
versionNumber ({digit}|".")*
|
versionNumber ({digit}|".")*
|
||||||
|
|
||||||
header {spaceNl}"(1"{space}
|
header {space}"(1"{space}
|
||||||
dimension {spaceNl}"(2"{space}
|
dimension {space}"(2"{space}
|
||||||
points {spaceNl}"(10"{space}
|
points {space}"(10"{space}
|
||||||
faces {spaceNl}"(13"{space}
|
faces {space}"(13"{space}
|
||||||
cells {spaceNl}"(12"{space}
|
cells {space}"(12"{space}
|
||||||
zoneVariant1 {spaceNl}"(39"{space}
|
zoneVariant1 {space}"(39"{space}
|
||||||
zoneVariant2 {spaceNl}"(45"{space}
|
zoneVariant2 {space}"(45"{space}
|
||||||
faceTree {spaceNl}"(59"{space}
|
faceTree {space}"(59"{space}
|
||||||
|
|
||||||
comment "0"{space}
|
comment "0"{space}
|
||||||
unknownPeriodicFace "17"{space}
|
unknownPeriodicFace "17"{space}
|
||||||
periodicFace "18"{space}
|
periodicFace "18"{space}
|
||||||
cellTree "58"{space}
|
cellTree "58"{space}
|
||||||
faceParents "61"{space}
|
faceParents "61"{space}
|
||||||
ignoreBlocks ("4"|"37"|"38"|"41"|"60"|"64"){space}
|
ignoreBlocks ("4"|"37"|"38"|"40"|"41"|"60"|"64"){space}
|
||||||
|
|
||||||
redundantBlock {spaceNl}({comment}|{unknownPeriodicFace}|{periodicFace}|{cellTree}|{faceParents}|{ignoreBlocks}){space}
|
redundantBlock {space}({comment}|{unknownPeriodicFace}|{periodicFace}|{cellTree}|{faceParents}|{ignoreBlocks}){space}
|
||||||
|
|
||||||
endOfSection {space}")"{space}
|
endOfSection {space}")"{space}
|
||||||
|
|
||||||
@ -290,7 +291,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readPointHeader);
|
BEGIN(readPointHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readPointHeader>{spaceNl}{lbrac}{space}"0"{space}"1"{space} {
|
<readPointHeader>{space}{lbrac}{space}"0"{space}"1"{space} {
|
||||||
BEGIN(readNumberOfPoints);
|
BEGIN(readNumberOfPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +303,7 @@ endOfSection {space}")"{space}
|
|||||||
// Ignore rest of stream
|
// Ignore rest of stream
|
||||||
}
|
}
|
||||||
|
|
||||||
<readPointHeader>{spaceNl}{lbrac} {
|
<readPointHeader>{space}{lbrac} {
|
||||||
BEGIN(readPointGroupData);
|
BEGIN(readPointGroupData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,7 +343,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readPointData);
|
BEGIN(readPointData);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readPointData>{spaceNl}{lbrac}{spaceNl} {
|
<readPointData>{space}{lbrac}{space} {
|
||||||
Info<< ". Reading points..." << flush;
|
Info<< ". Reading points..." << flush;
|
||||||
cmpt = 0;
|
cmpt = 0;
|
||||||
yy_push_state(readScalarList);
|
yy_push_state(readScalarList);
|
||||||
@ -350,20 +351,33 @@ endOfSection {space}")"{space}
|
|||||||
|
|
||||||
<readScalarList>{signedInteger}{space} {
|
<readScalarList>{signedInteger}{space} {
|
||||||
points[pointi][cmpt++] = scaleFactor*atol(YYText());
|
points[pointi][cmpt++] = scaleFactor*atol(YYText());
|
||||||
}
|
|
||||||
|
|
||||||
<readScalarList>{scalar}{space} {
|
if (cmpt == pointGroupNumberOfComponents)
|
||||||
points[pointi][cmpt++] = scaleFactor*atof(YYText());
|
{
|
||||||
}
|
|
||||||
|
|
||||||
<readScalarList>{spaceNl} {
|
|
||||||
if (pointGroupNumberOfComponents == 2)
|
if (pointGroupNumberOfComponents == 2)
|
||||||
{
|
{
|
||||||
points[pointi].z() = 0.0;
|
points[pointi].z() = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmpt = 0;
|
cmpt = 0;
|
||||||
pointi++;
|
pointi++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<readScalarList>{scalar}{space} {
|
||||||
|
points[pointi][cmpt++] = scaleFactor*atof(YYText());
|
||||||
|
|
||||||
|
if (cmpt == pointGroupNumberOfComponents)
|
||||||
|
{
|
||||||
|
if (pointGroupNumberOfComponents == 2)
|
||||||
|
{
|
||||||
|
points[pointi].z() = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmpt = 0;
|
||||||
|
pointi++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
<readScalarList>{endOfSection} {
|
<readScalarList>{endOfSection} {
|
||||||
Info<< "done." << endl;
|
Info<< "done." << endl;
|
||||||
@ -372,12 +386,13 @@ endOfSection {space}")"{space}
|
|||||||
if (pointi != pointGroupEndIndex[pointGroupEndIndex.size()-1]+1)
|
if (pointi != pointGroupEndIndex[pointGroupEndIndex.size()-1]+1)
|
||||||
{
|
{
|
||||||
Warning
|
Warning
|
||||||
<< "Problem with reading points: "
|
<< "Problem with reading points: " << nl
|
||||||
<< "start index: "
|
<< " start index: "
|
||||||
<< pointGroupStartIndex[pointGroupStartIndex.size()-1]
|
<< pointGroupStartIndex[pointGroupStartIndex.size()-1]
|
||||||
<< " end index: "
|
<< " end index: "
|
||||||
<< pointGroupEndIndex[pointGroupEndIndex.size()-1]
|
<< pointGroupEndIndex[pointGroupEndIndex.size()-1]
|
||||||
<< " last points read: " << pointi << endl;
|
<< " last points read: " << pointi << nl
|
||||||
|
<< " on line " << lineNo << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
yy_pop_state();
|
yy_pop_state();
|
||||||
@ -387,7 +402,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readFaceHeader);
|
BEGIN(readFaceHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFaceHeader>{spaceNl}{lbrac}{space}"0"{space}"1"{space} {
|
<readFaceHeader>{space}{lbrac}{space}"0"{space}"1"{space} {
|
||||||
BEGIN(readNumberOfFaces);
|
BEGIN(readNumberOfFaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -403,7 +418,7 @@ endOfSection {space}")"{space}
|
|||||||
// Type and element type not read
|
// Type and element type not read
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFaceHeader>{spaceNl}{lbrac} {
|
<readFaceHeader>{space}{lbrac} {
|
||||||
BEGIN(readFaceGroupData);
|
BEGIN(readFaceGroupData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -431,12 +446,12 @@ endOfSection {space}")"{space}
|
|||||||
<< faceGroupEndIndex[faceGroupEndIndex.size()-1] << flush;
|
<< faceGroupEndIndex[faceGroupEndIndex.size()-1] << flush;
|
||||||
}
|
}
|
||||||
|
|
||||||
<readNumberOfFaces,readFaceGroupData>{spaceNl}{endOfSection} {
|
<readNumberOfFaces,readFaceGroupData>{space}{endOfSection} {
|
||||||
BEGIN(readFaceData);
|
BEGIN(readFaceData);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFaceData>{spaceNl}{lbrac} {
|
<readFaceData>{space}{lbrac} {
|
||||||
if (faceGroupElementType == 0)
|
if (faceGroupElementType == 0 || faceGroupElementType > 4)
|
||||||
{
|
{
|
||||||
Info<< ". Reading mixed faces..." << flush;
|
Info<< ". Reading mixed faces..." << flush;
|
||||||
yy_push_state(readFacesMixed);
|
yy_push_state(readFacesMixed);
|
||||||
@ -448,7 +463,7 @@ endOfSection {space}")"{space}
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFacesMixed>{spaceNl}{hexLabelList} {
|
<readFacesMixed>{space}{hexLabelList} {
|
||||||
face& curFaceLabels = faces[facei];
|
face& curFaceLabels = faces[facei];
|
||||||
|
|
||||||
// set size of label list
|
// set size of label list
|
||||||
@ -465,7 +480,7 @@ endOfSection {space}")"{space}
|
|||||||
facei++;
|
facei++;
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFacesUniform>{spaceNl}{hexLabelList} {
|
<readFacesUniform>{space}{hexLabelList} {
|
||||||
face& curFaceLabels = faces[facei];
|
face& curFaceLabels = faces[facei];
|
||||||
|
|
||||||
// Set size of label list.
|
// Set size of label list.
|
||||||
@ -484,19 +499,20 @@ endOfSection {space}")"{space}
|
|||||||
facei++;
|
facei++;
|
||||||
}
|
}
|
||||||
|
|
||||||
<readFacesMixed,readFacesUniform>{spaceNl}{endOfSection} {
|
<readFacesMixed,readFacesUniform>{space}{endOfSection} {
|
||||||
Info<< "done." << endl;
|
Info<< "done." << endl;
|
||||||
|
|
||||||
// check read of fluentFaces
|
// check read of fluentFaces
|
||||||
if (facei != faceGroupEndIndex[faceGroupEndIndex.size()-1]+1)
|
if (facei != faceGroupEndIndex[faceGroupEndIndex.size()-1]+1)
|
||||||
{
|
{
|
||||||
Warning
|
Warning
|
||||||
<< "Problem with reading fluentFaces: "
|
<< "Problem with reading fluentFaces: " << nl
|
||||||
<< "start index: "
|
<< " start index: "
|
||||||
<< faceGroupStartIndex[faceGroupStartIndex.size()-1]
|
<< faceGroupStartIndex[faceGroupStartIndex.size()-1]
|
||||||
<< " end index: "
|
<< " end index: "
|
||||||
<< faceGroupEndIndex[faceGroupEndIndex.size()-1]
|
<< faceGroupEndIndex[faceGroupEndIndex.size()-1]
|
||||||
<< " last fluentFaces read: " << facei << endl;
|
<< " last fluentFaces read: " << facei << nl
|
||||||
|
<< " on line " << lineNo << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
yy_pop_state();
|
yy_pop_state();
|
||||||
@ -507,7 +523,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readCellHeader);
|
BEGIN(readCellHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readCellHeader>{spaceNl}{lbrac}{space}"0"{space}"1"{space} {
|
<readCellHeader>{space}{lbrac}{space}"0"{space}"1"{space} {
|
||||||
BEGIN(readNumberOfCells);
|
BEGIN(readNumberOfCells);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -516,7 +532,7 @@ endOfSection {space}")"{space}
|
|||||||
Info<< "Number of cells: " << nCells << endl;
|
Info<< "Number of cells: " << nCells << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
<readCellHeader>{spaceNl}{lbrac} {
|
<readCellHeader>{space}{lbrac} {
|
||||||
BEGIN(readCellGroupData);
|
BEGIN(readCellGroupData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -526,7 +542,8 @@ endOfSection {space}")"{space}
|
|||||||
// non-standard cell definition from Tgrid, which misses the type label.
|
// non-standard cell definition from Tgrid, which misses the type label.
|
||||||
|
|
||||||
Warning
|
Warning
|
||||||
<< "Tgrid syntax problem: " << YYText() << endl;
|
<< "Tgrid syntax problem: " << YYText() << nl
|
||||||
|
<< " on line " << lineNo << endl;
|
||||||
|
|
||||||
// read cell zone-ID, start and end-label
|
// read cell zone-ID, start and end-label
|
||||||
cellGroupZoneID.append(strtol(YYText(), &endPtr, 16));
|
cellGroupZoneID.append(strtol(YYText(), &endPtr, 16));
|
||||||
@ -580,7 +597,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readCellData);
|
BEGIN(readCellData);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readCellData>{spaceNl}{lbrac} {
|
<readCellData>{space}{lbrac} {
|
||||||
// Quickly scan to the end of the cell data block and discard
|
// Quickly scan to the end of the cell data block and discard
|
||||||
register int c;
|
register int c;
|
||||||
while ((c = yyinput()) != 0 && c != ')')
|
while ((c = yyinput()) != 0 && c != ')')
|
||||||
@ -601,7 +618,7 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readZoneHeader);
|
BEGIN(readZoneHeader);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readZoneHeader>{spaceNl}{lbrac} {
|
<readZoneHeader>{space}{lbrac} {
|
||||||
BEGIN(readZoneGroupData);
|
BEGIN(readZoneGroupData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,17 +640,18 @@ endOfSection {space}")"{space}
|
|||||||
BEGIN(readZoneData);
|
BEGIN(readZoneData);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readZoneData>{spaceNl}{lbrac} {
|
<readZoneData>{space}{lbrac} {
|
||||||
Info<< ". Reading zone data..." << flush;
|
Info<< ". Reading zone data..." << flush;
|
||||||
yy_push_state(readZoneBlock);
|
yy_push_state(readZoneBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
<readZoneBlock>{spaceNl}{schemeSymbolList} {
|
<readZoneBlock>{space}{schemeSymbolList} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<readZoneBlock>{lbrac} {
|
<readZoneBlock>{lbrac} {
|
||||||
Warning
|
//Warning
|
||||||
<< "Found unknown block in zone: " << YYText() << endl;
|
// << "Found unknown block in zone: " << YYText() << nl
|
||||||
|
// << " on line " << lineNo << endl;
|
||||||
yy_push_state(ignoreBlock);
|
yy_push_state(ignoreBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -646,7 +664,7 @@ endOfSection {space}")"{space}
|
|||||||
|
|
||||||
/* ------ Reading end of section and others ------ */
|
/* ------ Reading end of section and others ------ */
|
||||||
|
|
||||||
<readHeader,readDimension,readPointData,readFaceData,readCellData,readZoneData>{spaceNl}{endOfSection} {
|
<readHeader,readDimension,readPointData,readFaceData,readCellData,readZoneData>{space}{endOfSection} {
|
||||||
BEGIN(INITIAL);
|
BEGIN(INITIAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -655,7 +673,8 @@ endOfSection {space}")"{space}
|
|||||||
{lbrac}{label} {
|
{lbrac}{label} {
|
||||||
Warning
|
Warning
|
||||||
<< "Found unknown block of type: "
|
<< "Found unknown block of type: "
|
||||||
<< Foam::string(YYText())(1, YYLeng()-1) << endl;
|
<< Foam::string(YYText())(1, YYLeng()-1) << nl
|
||||||
|
<< " on line " << lineNo << endl;
|
||||||
|
|
||||||
yy_push_state(ignoreBlock);
|
yy_push_state(ignoreBlock);
|
||||||
}
|
}
|
||||||
@ -664,40 +683,47 @@ endOfSection {space}")"{space}
|
|||||||
yy_push_state(ignoreBlock);
|
yy_push_state(ignoreBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{quote}{text}{quote} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{quote}{text}{quote} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{schemeSymbol} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{schemeSymbol} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{lbrac} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{lbrac} {
|
||||||
yy_push_state(ignoreEmbeddedBlock);
|
yy_push_state(ignoreEmbeddedBlock);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{endOfSection} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{endOfSection} {
|
||||||
yy_pop_state();
|
yy_pop_state();
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{labelList} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{labelList} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{hexLabelList} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{hexLabelList} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{scalarList} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{scalarList} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{schemeSymbolList} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{schemeSymbolList} {
|
||||||
}
|
}
|
||||||
|
|
||||||
<ignoreBlock,ignoreEmbeddedBlock>{spaceNl}{text} {
|
<ignoreBlock,ignoreEmbeddedBlock>{space}{text} {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ------ Ignore remaining space and \n s. ------ */
|
/* ------ Count newlines. ------ */
|
||||||
|
|
||||||
<*>{some_space}|\n|\r {
|
<*>\n {
|
||||||
|
lineNo++;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ------ Ignore remaining space. ------ */
|
||||||
|
|
||||||
|
<*>{some_space}|\r {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -706,7 +732,8 @@ endOfSection {space}")"{space}
|
|||||||
<*>. {
|
<*>. {
|
||||||
// This is a catch all.
|
// This is a catch all.
|
||||||
FatalErrorIn("fluentMeshToFoam::lexer")
|
FatalErrorIn("fluentMeshToFoam::lexer")
|
||||||
<< "Do not understand characters: " << YYText()
|
<< "Do not understand characters: " << YYText() << nl
|
||||||
|
<< " on line " << lineNo
|
||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -882,11 +909,8 @@ int main(int argc, char *argv[])
|
|||||||
// Check the face groups for boundary patches, baffles and faceZones
|
// Check the face groups for boundary patches, baffles and faceZones
|
||||||
// ignoring the interior zones in ignoreCellGroups
|
// ignoring the interior zones in ignoreCellGroups
|
||||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
label nPatches = 0;
|
DynamicList<label> patchIDs(faceGroupZoneID.size());
|
||||||
labelList patchIDs(faceGroupZoneID.size());
|
DynamicList<label> faceZoneIDs(faceGroupZoneID.size());
|
||||||
|
|
||||||
label nFaceZones = 0;
|
|
||||||
labelList faceZoneIDs(faceGroupZoneID.size());
|
|
||||||
|
|
||||||
forAll(faceGroupZoneID, fgi)
|
forAll(faceGroupZoneID, fgi)
|
||||||
{
|
{
|
||||||
@ -900,13 +924,13 @@ int main(int argc, char *argv[])
|
|||||||
// Check the first element of neighbour for boundary group
|
// Check the first element of neighbour for boundary group
|
||||||
if (neighbour[start] == -1 || fluentGroupToFoamPatch.found(type))
|
if (neighbour[start] == -1 || fluentGroupToFoamPatch.found(type))
|
||||||
{
|
{
|
||||||
patchIDs[nPatches++] = fgi;
|
patchIDs.append(fgi);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!ignoreFaceGroups.found(groupName[faceGroupZoneID[fgi] ]))
|
if (!ignoreFaceGroups.found(groupName[faceGroupZoneID[fgi]]))
|
||||||
{
|
{
|
||||||
faceZoneIDs[nFaceZones++] = fgi;
|
faceZoneIDs.append(fgi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -928,20 +952,32 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FatalErrorIn(args.executable())
|
if (neighbour[start] == -1)
|
||||||
|
{
|
||||||
|
// Boundary face in unknown group. Create a patch for it.
|
||||||
|
groupType.insert(zoneID, "unknown");
|
||||||
|
groupName.insert(zoneID, "FaceGroup" + Foam::name(zoneID));
|
||||||
|
patchIDs.append(fgi);
|
||||||
|
Info<< "Created patch " << fgi << " for unknown FaceGroup "
|
||||||
|
<< zoneID << '.' << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
WarningIn(args.executable())
|
||||||
<< "Unknown FaceGroup " << zoneID << " not in a zone"
|
<< "Unknown FaceGroup " << zoneID << " not in a zone"
|
||||||
<< exit(FatalError);
|
<< endl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
patchIDs.setSize(nPatches);
|
patchIDs.shrink();
|
||||||
faceZoneIDs.setSize(nFaceZones);
|
faceZoneIDs.shrink();
|
||||||
|
|
||||||
|
|
||||||
// Add empty patches
|
// Add empty patches
|
||||||
// ~~~~~~~~~~~~~~~~~
|
// ~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
List<polyPatch*> newPatches(nPatches);
|
List<polyPatch*> newPatches(patchIDs.size());
|
||||||
HashSet<word> patchNames;
|
HashSet<word> patchNames;
|
||||||
|
|
||||||
forAll(patchIDs, patchi)
|
forAll(patchIDs, patchi)
|
||||||
@ -1024,7 +1060,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Face zones
|
// Face zones
|
||||||
mesh.faceZones().setSize(nFaceZones);
|
mesh.faceZones().setSize(faceZoneIDs.size());
|
||||||
HashSet<word> faceZoneNames;
|
HashSet<word> faceZoneNames;
|
||||||
|
|
||||||
forAll(faceZoneIDs, faceZonei)
|
forAll(faceZoneIDs, faceZonei)
|
||||||
@ -1098,6 +1134,8 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool doneWarning = false;
|
||||||
|
|
||||||
// Add faceZone faces
|
// Add faceZone faces
|
||||||
forAll(faceZoneIDs, faceZonei)
|
forAll(faceZoneIDs, faceZonei)
|
||||||
{
|
{
|
||||||
@ -1112,6 +1150,22 @@ int main(int argc, char *argv[])
|
|||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
for (label facei = start; facei <= end; facei++)
|
for (label facei = start; facei <= end; facei++)
|
||||||
|
{
|
||||||
|
if (owner[facei] >= nCells || neighbour[facei] >= nCells)
|
||||||
|
{
|
||||||
|
if (!doneWarning)
|
||||||
|
{
|
||||||
|
WarningIn(args.executable())
|
||||||
|
<< "Ignoring internal face " << facei
|
||||||
|
<< " on FaceZone " << zoneID
|
||||||
|
<< " since owner " << owner[facei] << " or neighbour "
|
||||||
|
<< neighbour[facei] << " outside range of cells 0.."
|
||||||
|
<< nCells-1 << endl
|
||||||
|
<< " Suppressing future warnings." << endl;
|
||||||
|
doneWarning = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
meshMod.addFace
|
meshMod.addFace
|
||||||
(
|
(
|
||||||
@ -1126,6 +1180,7 @@ int main(int argc, char *argv[])
|
|||||||
faceZonei, // zoneID
|
faceZonei, // zoneID
|
||||||
false // zoneFlip
|
false // zoneFlip
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Mark face as being done
|
// Mark face as being done
|
||||||
owner[facei] = -1;
|
owner[facei] = -1;
|
||||||
@ -1146,6 +1201,22 @@ int main(int argc, char *argv[])
|
|||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
for (label facei = start; facei <= end; facei++)
|
for (label facei = start; facei <= end; facei++)
|
||||||
|
{
|
||||||
|
if (owner[facei] >= nCells || neighbour[facei] >= nCells)
|
||||||
|
{
|
||||||
|
if (!doneWarning)
|
||||||
|
{
|
||||||
|
WarningIn(args.executable())
|
||||||
|
<< "Ignoring patch face " << facei
|
||||||
|
<< " on FaceZone " << zoneID
|
||||||
|
<< " since owner " << owner[facei] << " or neighbour "
|
||||||
|
<< neighbour[facei] << " outside range of cells 0.."
|
||||||
|
<< nCells-1 << endl
|
||||||
|
<< " Suppressing future warnings." << endl;
|
||||||
|
doneWarning = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
meshMod.addFace
|
meshMod.addFace
|
||||||
(
|
(
|
||||||
@ -1178,7 +1249,7 @@ int main(int argc, char *argv[])
|
|||||||
false // zoneFlip
|
false // zoneFlip
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// Mark face as being done
|
// Mark face as being done
|
||||||
owner[facei] = -1;
|
owner[facei] = -1;
|
||||||
}
|
}
|
||||||
@ -1198,6 +1269,21 @@ int main(int argc, char *argv[])
|
|||||||
<< exit(FatalError);
|
<< exit(FatalError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (owner[facei] >= nCells || neighbour[facei] >= nCells)
|
||||||
|
{
|
||||||
|
if (!doneWarning)
|
||||||
|
{
|
||||||
|
WarningIn(args.executable())
|
||||||
|
<< "Ignoring internal face " << facei
|
||||||
|
<< " since owner " << owner[facei] << " or neighbour "
|
||||||
|
<< neighbour[facei] << " outside range of cells 0.."
|
||||||
|
<< nCells-1 << endl
|
||||||
|
<< " Suppressing future warnings." << endl;
|
||||||
|
doneWarning = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
meshMod.addFace
|
meshMod.addFace
|
||||||
(
|
(
|
||||||
faces[facei],
|
faces[facei],
|
||||||
@ -1213,6 +1299,7 @@ int main(int argc, char *argv[])
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Reclaim storage
|
// Reclaim storage
|
||||||
faces.setSize(0);
|
faces.setSize(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user