Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
27888bf7
Commit
27888bf7
authored
May 22, 2018
by
Andrew Heather
Browse files
ENH: Updated mechanism to create empty sets and zones
parent
34606f54
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/OpenFOAM/meshes/polyMesh/zones/ZoneMesh/ZoneMesh.C
View file @
27888bf7
...
...
@@ -29,6 +29,18 @@ License
#include
"stringListOps.H"
#include
"Pstream.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
template
<
class
ZoneType
,
class
MeshType
>
int
Foam
::
ZoneMesh
<
ZoneType
,
MeshType
>::
disallowGenericZones
(
debug
::
debugSwitch
(
"disallowGenericZones"
,
0
)
);
}
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template
<
class
ZoneType
,
class
MeshType
>
...
...
@@ -429,8 +441,40 @@ Foam::label Foam::ZoneMesh<ZoneType, MeshType>::findZoneID
<<
"List of available zone names: "
<<
names
()
<<
endl
;
}
// Not found
return
-
1
;
if
(
disallowGenericZones
!=
0
)
{
// Create a new ...
Info
<<
"Creating dummy zone "
<<
zoneName
<<
endl
;
dictionary
dict
;
dict
.
set
(
"type"
,
ZoneType
::
typeName
);
dict
.
set
(
ZoneType
::
labelsName
,
labelList
());
// flipMap only really applicable for face zones, but should not get
// in the way for cell- and point-zones...
dict
.
set
(
"flipMap"
,
boolList
());
label
newZonei
=
zones
.
size
();
ZoneMesh
<
ZoneType
,
MeshType
>&
zm
=
const_cast
<
ZoneMesh
<
ZoneType
,
MeshType
>&>
(
*
this
);
zm
.
append
(
new
ZoneType
(
zoneName
,
dict
,
newZonei
,
zm
)
);
return
newZonei
;
}
else
{
// Not found
return
-
1
;
}
}
...
...
src/OpenFOAM/meshes/polyMesh/zones/ZoneMesh/ZoneMesh.H
View file @
27888bf7
...
...
@@ -102,6 +102,10 @@ class ZoneMesh
public:
//- Debug switch to disallow the use of generic zones
static
int
disallowGenericZones
;
// Constructors
//- Read constructor given IOobject and a MeshType reference
...
...
src/meshTools/sets/topoSets/topoSet.C
View file @
27888bf7
...
...
@@ -37,6 +37,11 @@ namespace Foam
defineRunTimeSelectionTable
(
topoSet
,
word
);
defineRunTimeSelectionTable
(
topoSet
,
size
);
defineRunTimeSelectionTable
(
topoSet
,
set
);
int
Foam
::
topoSet
::
disallowGenericSets
(
debug
::
debugSwitch
(
"disallowGenericSets"
,
0
)
);
}
...
...
@@ -297,14 +302,14 @@ Foam::IOobject Foam::topoSet::findIOobject
writeOption
w
)
{
return
IOobject
IOobject
io
(
name
,
mesh
.
time
().
findInstance
(
mesh
.
dbDir
()
/
polyMesh
::
meshSubDir
/
"sets"
,
word
::
null
,
r
,
IOobject
::
READ_IF_PRESENT
,
mesh
.
facesInstance
()
),
polyMesh
::
meshSubDir
/
"sets"
,
...
...
@@ -312,6 +317,14 @@ Foam::IOobject Foam::topoSet::findIOobject
r
,
w
);
if
(
!
io
.
typeHeaderOk
<
topoSet
>
(
false
)
&&
disallowGenericSets
!=
0
)
{
DebugInfo
<<
"Setting no read for set "
<<
name
<<
endl
;
io
.
readOpt
()
=
IOobject
::
NO_READ
;
}
return
io
;
}
...
...
src/meshTools/sets/topoSets/topoSet.H
View file @
27888bf7
...
...
@@ -142,6 +142,9 @@ public:
//- Name of file set will use.
static
fileName
localPath
(
const
polyMesh
&
mesh
,
const
word
&
name
);
//- Debug switch to disallow the use of generic sets
static
int
disallowGenericSets
;
// Declare run-time constructor selection table
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment