Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I
integration-cfmesh
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Community
integration-cfmesh
Commits
bc1bdf9b
Commit
bc1bdf9b
authored
Jul 14, 2015
by
Franjo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug fixes + additional FEATUREEDGE type
parent
4c2044ec
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
37 deletions
+55
-37
meshLibrary/utilities/surfaceTools/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.C
...ols/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.C
+49
-32
meshLibrary/utilities/surfaceTools/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.H
...ols/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.H
+6
-5
No files found.
meshLibrary/utilities/surfaceTools/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.C
View file @
bc1bdf9b
...
...
@@ -69,7 +69,7 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
problematicPoint
[
bp
[
it
.
key
()]]
=
true
;
//- classify edges
edgeType
s
_
.
setSize
(
edges
.
size
());
edgeType_
.
setSize
(
edges
.
size
());
# ifdef USE_OMP
label
nThreads
=
3
*
omp_get_num_procs
();
...
...
@@ -81,12 +81,6 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
# pragma omp parallel num_threads(nThreads)
# endif
{
# ifdef USE_OMP
# pragma omp for schedule(static, 1)
# endif
forAll
(
edgeTypes_
,
edgeI
)
edgeTypes_
[
edgeI
]
=
NONE
;
// TODO: this is not valid for non-manifold meshes
//- start checking feature edges
# ifdef USE_OMP
...
...
@@ -94,26 +88,34 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
# endif
forAll
(
edgeFaces
,
edgeI
)
{
edgeType_
[
edgeI
]
=
NONE
;
if
(
edgeFaces
.
sizeOfRow
(
edgeI
)
==
2
)
{
const
label
f0
=
edgeFaces
(
edgeI
,
0
);
const
label
f1
=
edgeFaces
(
edgeI
,
1
);
if
(
facePatch
[
f0
]
==
facePatch
[
f1
]
)
edgeTypes_
[
edgeI
]
|=
PATCHEDGE
;
{
edgeType_
[
edgeI
]
|=
PATCHEDGE
;
}
else
{
edgeType_
[
edgeI
]
|=
FEATUREEDGE
;
}
const
edge
e
=
edges
[
edgeI
];
//- check if the surface is tangled there
if
(
problematicPoint
[
bp
[
e
.
start
()]]
)
{
edgeType
s
_
[
edgeI
]
|=
UNDETERMINED
;
edgeType_
[
edgeI
]
|=
UNDETERMINED
;
continue
;
}
if
(
problematicPoint
[
bp
[
e
.
end
()]]
)
{
edgeType
s
_
[
edgeI
]
|=
UNDETERMINED
;
edgeType_
[
edgeI
]
|=
UNDETERMINED
;
continue
;
}
...
...
@@ -128,7 +130,7 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
if
(
tet0
.
mag
()
>
-
VSMALL
)
{
edgeType
s
_
[
edgeI
]
|=
CONCAVEEDGE
;
edgeType_
[
edgeI
]
|=
CONCAVEEDGE
;
continue
;
}
...
...
@@ -142,11 +144,11 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
if
(
tet1
.
mag
()
>
-
VSMALL
)
{
edgeType
s
_
[
edgeI
]
|=
CONCAVEEDGE
;
edgeType_
[
edgeI
]
|=
CONCAVEEDGE
;
continue
;
}
edgeType
s
_
[
edgeI
]
|=
CONVEXEDGE
;
edgeType_
[
edgeI
]
|=
CONVEXEDGE
;
}
}
}
...
...
@@ -175,7 +177,13 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
forAllConstIter
(
Map
<
label
>
,
otherPatch
,
eIter
)
{
if
(
eIter
()
==
facePatch
[
edgeFaces
(
eIter
.
key
(),
0
)]
)
continue
;
{
edgeType_
[
eIter
()]
|=
PATCHEDGE
;
}
else
{
edgeType_
[
eIter
()]
|=
FEATUREEDGE
;
}
const
edge
&
e
=
edges
[
eIter
.
key
()];
if
...
...
@@ -184,7 +192,7 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
problematicPoint
[
bp
[
e
.
end
()]]
)
{
edgeType
s
_
[
eIter
.
key
()]
|=
UNDETERMINED
;
edgeType_
[
eIter
.
key
()]
|=
UNDETERMINED
;
continue
;
}
...
...
@@ -231,7 +239,7 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
if
(
tet0
.
mag
()
>
-
VSMALL
)
{
edgeType
s
_
[
edgeI
]
|=
CONCAVEEDGE
;
edgeType_
[
edgeI
]
|=
CONCAVEEDGE
;
continue
;
}
...
...
@@ -245,11 +253,11 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
if
(
tet1
.
mag
()
>
-
VSMALL
)
{
edgeType
s
_
[
edgeI
]
|=
CONCAVEEDGE
;
edgeType_
[
edgeI
]
|=
CONCAVEEDGE
;
continue
;
}
edgeType
s
_
[
edgeI
]
|=
CONVEXEDGE
;
edgeType_
[
edgeI
]
|=
CONVEXEDGE
;
}
}
...
...
@@ -264,27 +272,36 @@ void meshSurfaceCheckEdgeTypes::classifyEdges()
surfaceEngine_
.
boundaryPoints
()[
bpI
]
);
forAll
(
edgeTypes_
,
edgeI
)
const
label
convexId
=
mesh_
.
addPointSubset
(
"convexFeatures"
);
const
label
concaveId
=
mesh_
.
addPointSubset
(
"concaveFeatures"
);
const
label
undeterminedId
=
mesh_
.
addPointSubset
(
"undetermnedFeatures"
);
const
label
patchId
=
mesh_
.
addPointSubset
(
"patchPoints"
);
forAll
(
edgeType_
,
edgeI
)
{
if
(
edgeType
s
_
[
edgeI
]
&
CONVEXEDGE
)
if
(
edgeType_
[
edgeI
]
&
CONVEXEDGE
)
{
Info
<<
"Edge "
<<
edgeI
<<
" is convex"
<<
endl
;
mesh_
.
addPointToSubset
(
convexId
,
edges
[
edgeI
].
start
());
mesh_
.
addPointToSubset
(
convexId
,
edges
[
edgeI
].
end
());
}
else
if
(
edgeTypes
_
[
edgeI
]
&
CONCAVEEDGE
)
if
(
edgeType
_
[
edgeI
]
&
CONCAVEEDGE
)
{
Info
<<
"Edge "
<<
edgeI
<<
" is concave"
<<
endl
;
mesh_
.
addPointToSubset
(
concaveId
,
edges
[
edgeI
].
start
());
mesh_
.
addPointToSubset
(
concaveId
,
edges
[
edgeI
].
end
());
}
else
if
(
edgeTypes
_
[
edgeI
]
&
UNDETERMINED
)
if
(
edgeType
_
[
edgeI
]
&
UNDETERMINED
)
{
Info
<<
"Edge "
<<
edgeI
<<
" is not determined"
<<
endl
;
mesh_
.
addPointToSubset
(
undeterminedId
,
edges
[
edgeI
].
start
());
mesh_
.
addPointToSubset
(
undeterminedId
,
edges
[
edgeI
].
end
());
}
else
if
(
edgeTypes
_
[
edgeI
]
&
PATCHEDGE
)
if
(
edgeType
_
[
edgeI
]
&
PATCHEDGE
)
{
Info
<<
"Edge "
<<
edgeI
<<
" is a patch edge"
<<
endl
;
}
else
{
Info
<<
"Drekec spekec"
<<
edgeI
<<
endl
;
mesh_
.
addPointToSubset
(
patchId
,
edges
[
edgeI
].
start
());
mesh_
.
addPointToSubset
(
patchId
,
edges
[
edgeI
].
end
());
}
}
# endif
...
...
@@ -298,7 +315,7 @@ meshSurfaceCheckEdgeTypes::meshSurfaceCheckEdgeTypes
)
:
surfaceEngine_
(
mse
),
edgeType
s
_
()
edgeType_
()
{
classifyEdges
();
}
...
...
@@ -314,9 +331,9 @@ void meshSurfaceCheckEdgeTypes::convexEdges(labelLongList& convexEdges) const
{
convexEdges
.
clear
();
forAll
(
edgeType
s
_
,
eI
)
forAll
(
edgeType_
,
eI
)
{
if
(
edgeType
s
_
[
eI
]
&
CONVEXEDGE
)
if
(
edgeType_
[
eI
]
&
CONVEXEDGE
)
convexEdges
.
append
(
eI
);
}
}
...
...
@@ -325,9 +342,9 @@ void meshSurfaceCheckEdgeTypes::concaveEdges(labelLongList& concaveEdges) const
{
concaveEdges
.
clear
();
forAll
(
edgeType
s
_
,
eI
)
forAll
(
edgeType_
,
eI
)
{
if
(
edgeType
s
_
[
eI
]
&
CONCAVEEDGE
)
if
(
edgeType_
[
eI
]
&
CONCAVEEDGE
)
concaveEdges
.
append
(
eI
);
}
}
...
...
meshLibrary/utilities/surfaceTools/meshSurfaceCheckEdgeTypes/meshSurfaceCheckEdgeTypes.H
View file @
bc1bdf9b
...
...
@@ -60,7 +60,7 @@ class meshSurfaceCheckEdgeTypes
const
meshSurfaceEngine
&
surfaceEngine_
;
//- a list which classifies each edge
List
<
direction
>
edgeType
s
_
;
List
<
direction
>
edgeType_
;
// Private member functions
//- check feature edges and classify them
...
...
@@ -83,9 +83,10 @@ public:
{
NONE
=
0
,
PATCHEDGE
=
1
,
CONVEXEDGE
=
2
,
CONCAVEEDGE
=
4
,
UNDETERMINED
=
8
FEATUREEDGE
=
2
,
CONVEXEDGE
=
4
,
CONCAVEEDGE
=
8
,
UNDETERMINED
=
16
};
// Constructors
...
...
@@ -101,7 +102,7 @@ public:
//- return the information about classified edges
const
List
<
direction
>&
edgeTypes
()
const
{
return
edgeType
s
_
;
return
edgeType_
;
}
//- return indices of convex edges
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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