Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
gmsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Larry Price
gmsh
Commits
054f9141
Commit
054f9141
authored
8 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
fix warnings
parent
4d708f9f
No related branches found
No related tags found
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
Geo/GModelIO_GEO.cpp
+1
-0
1 addition, 0 deletions
Geo/GModelIO_GEO.cpp
Geo/discreteDiskFace.cpp
+21
-18
21 additions, 18 deletions
Geo/discreteDiskFace.cpp
Mesh/meshDiscreteRegion.cpp
+1
-1
1 addition, 1 deletion
Mesh/meshDiscreteRegion.cpp
Mesh/yamakawa.h
+90
-105
90 additions, 105 deletions
Mesh/yamakawa.h
with
113 additions
and
124 deletions
Geo/GModelIO_GEO.cpp
+
1
−
0
View file @
054f9141
...
...
@@ -725,6 +725,7 @@ void GEO_Internals::modifyPhysicalGroup(int dim, int num, int op,
case
1
:
type
=
MSH_PHYSICAL_LINE
;
str
=
"line"
;
break
;
case
2
:
type
=
MSH_PHYSICAL_SURFACE
;
str
=
"surface"
;
break
;
case
3
:
type
=
MSH_PHYSICAL_VOLUME
;
str
=
"volume"
;
break
;
default:
return
;
}
PhysicalGroup
*
p
=
FindPhysicalGroup
(
num
,
type
);
...
...
This diff is collapsed.
Click to expand it.
Geo/discreteDiskFace.cpp
+
21
−
18
View file @
054f9141
...
...
@@ -1323,33 +1323,36 @@ void discreteDiskFace::printAtlasMesh()
std
::
set
<
MVertex
*>
meshvertices
;
for
(
unsigned
int
i
=
0
;
i
<
initialTriangulation
->
tri
.
size
();
++
i
){
MElement
*
tri
=
initialTriangulation
->
tri
[
i
];
for
(
unsigned
int
j
=
0
;
j
<
3
;
j
++
)
if
(
meshvertices
.
find
(
tri
->
getVertex
(
j
))
==
meshvertices
.
end
())
meshvertices
.
insert
(
tri
->
getVertex
(
j
));
MElement
*
tri
=
initialTriangulation
->
tri
[
i
];
for
(
unsigned
int
j
=
0
;
j
<
3
;
j
++
)
if
(
meshvertices
.
find
(
tri
->
getVertex
(
j
))
==
meshvertices
.
end
())
meshvertices
.
insert
(
tri
->
getVertex
(
j
));
}
fprintf
(
pmesh
,
"$MeshFormat
\n
2.2 0 8
\n
$EndMeshFormat
\n
$Nodes
\n
%u
\n
"
,(
unsigned
int
)
meshvertices
.
size
());
fprintf
(
pmesh
,
"$MeshFormat
\n
2.2 0 8
\n
$EndMeshFormat
\n
$Nodes
\n
%d
\n
"
,
(
int
)
meshvertices
.
size
());
int
count
=
1
;
for
(
std
::
set
<
MVertex
*>::
iterator
it
=
meshvertices
.
begin
();
it
!=
meshvertices
.
end
();
++
it
){
for
(
std
::
set
<
MVertex
*>::
iterator
it
=
meshvertices
.
begin
();
it
!=
meshvertices
.
end
();
++
it
){
fprintf
(
pmesh
,
"%d %f %f %f
\n
"
,
count
,(
*
it
)
->
x
(),(
*
it
)
->
y
(),(
*
it
)
->
z
());
mv2int
[
*
it
]
=
count
;
count
++
;
}
fprintf
(
pmesh
,
"$EndNodes
\n
$Elements
\n
%u
\n
"
,(
unsigned
int
)
initialTriangulation
->
tri
.
size
()
-
initialTriangulation
->
fillingHoles
.
size
());
fprintf
(
pmesh
,
"$EndNodes
\n
$Elements
\n
%d
\n
"
,
(
int
)
initialTriangulation
->
tri
.
size
()
-
initialTriangulation
->
fillingHoles
.
size
());
unsigned
int
mycount
=
0
;
//#####
for
(
unsigned
int
i
=
0
;
i
<
initialTriangulation
->
tri
.
size
();
i
++
){
std
::
set
<
int
>::
iterator
it
=
initialTriangulation
->
fillingHoles
.
find
(
i
);
//if (it == initialTriangulation->fillingHoles.end()){
MElement
*
tri
=
initialTriangulation
->
tri
[
i
];
fprintf
(
pmesh
,
"%d 2 2 0 %d"
,
mycount
+
1
,
initialTriangulation
->
idNum
);
//#####
for
(
int
j
=
0
;
j
<
3
;
j
++
){
MVertex
*
mv
=
tri
->
getVertex
(
j
);
fprintf
(
pmesh
,
" %d"
,
mv2int
[
mv
]);
}
fprintf
(
pmesh
,
"
\n
"
);
mycount
++
;
//###
//}
std
::
set
<
int
>::
iterator
it
=
initialTriangulation
->
fillingHoles
.
find
(
i
);
//if (it == initialTriangulation->fillingHoles.end()){
MElement
*
tri
=
initialTriangulation
->
tri
[
i
];
fprintf
(
pmesh
,
"%d 2 2 0 %d"
,
mycount
+
1
,
initialTriangulation
->
idNum
);
//#####
for
(
int
j
=
0
;
j
<
3
;
j
++
){
MVertex
*
mv
=
tri
->
getVertex
(
j
);
fprintf
(
pmesh
,
" %d"
,
mv2int
[
mv
]);
}
fprintf
(
pmesh
,
"
\n
"
);
mycount
++
;
//###
//}
}
fprintf
(
pmesh
,
"$EndElements
\n
"
);
fclose
(
pmesh
);
...
...
This diff is collapsed.
Click to expand it.
Mesh/meshDiscreteRegion.cpp
+
1
−
1
View file @
054f9141
...
...
@@ -59,7 +59,7 @@ void create_all_possible_tets(GRegion* region, const std::vector<MVertex*>& vert
std
::
cout
<<
" Number of tets created - all possible combinations - "
<<
tets
.
size
()
<<
std
::
endl
;
for
(
int
i
=
0
;
i
<
tets
.
size
();
++
i
)
{
for
(
unsigned
int
i
=
0
;
i
<
tets
.
size
();
++
i
)
{
region
->
addTetrahedron
(
tets
[
i
]);
}
}
...
...
This diff is collapsed.
Click to expand it.
Mesh/yamakawa.h
+
90
−
105
View file @
054f9141
...
...
@@ -22,43 +22,40 @@
using
namespace
std
;
extern
void
export_gregion_mesh
(
GRegion
*
gr
,
string
filename
);
class
Hex
{
private:
private:
double
quality
;
unsigned
long
long
hash
;
std
::
vector
<
MVertex
*>
vertices_
;
private:
void
set_hash
()
{
private:
void
set_hash
()
{
hash
=
0.
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
hash
+=
vertices_
[
i
]
->
getNum
();
}
}
void
compute_quality
()
{
void
compute_quality
()
{
MHexahedron
elt
(
vertices_
);
quality
=
jacobianBasedQuality
::
minScaledJacobian
(
&
elt
,
false
,
true
);
}
void
initialize
()
{
void
initialize
()
{
set_hash
();
compute_quality
();
}
public
:
public
:
Hex
()
:
quality
(
0.
),
hash
(
0.
)
{}
Hex
(
const
std
::
vector
<
MVertex
*>&
vertices
)
:
quality
(
0.
),
hash
(
0
),
vertices_
(
vertices
)
{
initialize
();
}
Hex
(
MVertex
*
a2
,
MVertex
*
b2
,
MVertex
*
c2
,
MVertex
*
d2
,
MVertex
*
e2
,
MVertex
*
f2
,
MVertex
*
g2
,
MVertex
*
h2
)
:
Hex
(
MVertex
*
a2
,
MVertex
*
b2
,
MVertex
*
c2
,
MVertex
*
d2
,
MVertex
*
e2
,
MVertex
*
f2
,
MVertex
*
g2
,
MVertex
*
h2
)
:
quality
(
0.
)
{
vertices_
.
push_back
(
a2
);
...
...
@@ -71,12 +68,10 @@ public:
vertices_
.
push_back
(
h2
);
initialize
();
}
~
Hex
()
{};
double
get_quality
()
const
{
return
quality
;
}
MVertex
*
getVertex
(
unsigned
int
i
)
const
{
MVertex
*
getVertex
(
unsigned
int
i
)
const
{
if
(
i
<
8
)
{
return
vertices_
[
i
];
}
...
...
@@ -86,13 +81,10 @@ public:
return
NULL
;
}
}
const
std
::
vector
<
MVertex
*>&
vertices
()
const
{
return
vertices_
;
}
const
std
::
vector
<
MVertex
*>&
vertices
()
const
{
return
vertices_
;
}
MVertex
*
vertex_in_facet
(
unsigned
int
facet
,
unsigned
int
v_in_facet
)
const
;
bool
hasVertex
(
MVertex
*
v
)
const
{
bool
hasVertex
(
MVertex
*
v
)
const
{
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
(
getVertex
(
i
)
==
v
)
{
return
true
;
...
...
@@ -100,8 +92,8 @@ public:
}
return
false
;
}
bool
same_vertices
(
Hex
*
h
)
const
{
bool
same_vertices
(
Hex
*
h
)
const
{
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
if
(
!
(
h
->
hasVertex
(
getVertex
(
i
))))
{
return
false
;
...
...
@@ -109,8 +101,8 @@ public:
}
return
true
;
}
int
vertex_index
(
MVertex
*
v
)
const
{
int
vertex_index
(
MVertex
*
v
)
const
{
for
(
unsigned
int
i
=
0
;
i
<
8
;
++
i
)
{
if
(
vertices_
[
i
]
==
v
)
{
return
i
;
...
...
@@ -118,35 +110,38 @@ public:
}
return
-
1
;
}
bool
contains
(
MVertex
*
v
)
const
{
bool
contains
(
MVertex
*
v
)
const
{
return
vertex_index
(
v
)
!=
-
1
;
}
unsigned
long
long
get_hash
()
{
unsigned
long
long
get_hash
()
{
if
(
hash
==
0.
&&
vertices_
[
0
]
!=
NULL
)
{
set_hash
();
}
return
hash
;
}
bool
operator
<
(
const
Hex
&
hex
)
const
{
bool
operator
<
(
const
Hex
&
hex
)
const
{
return
quality
>
hex
.
get_quality
();
// Why > ??? Shouldn't it be < ?? Jeanne.
}
};
class
Facet
{
private:
private:
MVertex
*
a
,
*
b
,
*
c
;
int
num
[
3
];
unsigned
long
long
hash
;
public:
Facet
()
:
a
(
NULL
),
b
(
NULL
),
c
(
NULL
),
hash
(
0.
){
public:
Facet
()
:
a
(
NULL
),
b
(
NULL
),
c
(
NULL
),
hash
(
0.
)
{
num
[
0
]
=
-
1
;
num
[
1
]
=
-
1
;
num
[
2
]
=
-
1
;
}
Facet
(
MVertex
*
a2
,
MVertex
*
b2
,
MVertex
*
c2
)
:
a
(
a2
),
b
(
b2
),
c
(
c2
),
hash
(
0.
){
a
(
a2
),
b
(
b2
),
c
(
c2
),
hash
(
0.
)
{
num
[
0
]
=
-
1
;
num
[
1
]
=
-
1
;
num
[
2
]
=
-
1
;
...
...
@@ -156,19 +151,22 @@ public:
MVertex
*
get_a
()
const
{
return
a
;
}
MVertex
*
get_b
()
const
{
return
b
;
}
MVertex
*
get_c
()
const
{
return
c
;
}
void
set_vertices
(
MVertex
*
a2
,
MVertex
*
b2
,
MVertex
*
c2
)
{
void
set_vertices
(
MVertex
*
a2
,
MVertex
*
b2
,
MVertex
*
c2
)
{
a
=
a2
;
b
=
b2
;
c
=
c2
;
compute_hash
();
}
bool
same_vertices
(
const
Facet
&
facet
)
const
{
bool
same_vertices
(
const
Facet
&
facet
)
const
{
bool
c1
=
(
a
==
facet
.
get_a
())
||
(
a
==
facet
.
get_b
())
||
(
a
==
facet
.
get_c
());
bool
c2
=
(
b
==
facet
.
get_a
())
||
(
b
==
facet
.
get_b
())
||
(
b
==
facet
.
get_c
());
bool
c3
=
(
c
==
facet
.
get_a
())
||
(
c
==
facet
.
get_b
())
||
(
c
==
facet
.
get_c
());
return
c1
&&
c2
&&
c3
;
}
void
compute_hash
()
{
void
compute_hash
()
{
num
[
0
]
=
a
->
getNum
();
num
[
1
]
=
b
->
getNum
();
num
[
2
]
=
c
->
getNum
();
...
...
@@ -182,47 +180,40 @@ public:
};
class
Diagonal
{
private:
private:
MVertex
*
a
,
*
b
;
unsigned
long
long
hash
;
private:
void
compute_hash
()
{
hash
=
a
->
getNum
()
+
b
->
getNum
();
}
public
:
private:
void
compute_hash
()
{
hash
=
a
->
getNum
()
+
b
->
getNum
();
}
public
:
Diagonal
()
:
a
(
NULL
),
b
(
NULL
),
hash
()
{};
Diagonal
(
MVertex
*
a2
,
MVertex
*
b2
)
:
a
(
a2
),
b
(
b2
){
compute_hash
();
}
Diagonal
(
MVertex
*
a2
,
MVertex
*
b2
)
:
a
(
a2
),
b
(
b2
){
compute_hash
();
}
~
Diagonal
()
{};
MVertex
*
get_a
()
const
{
return
a
;}
MVertex
*
get_b
()
const
{
return
b
;}
void
set_vertices
(
MVertex
*
a2
,
MVertex
*
b2
)
{
void
set_vertices
(
MVertex
*
a2
,
MVertex
*
b2
)
{
a
=
a2
;
b
=
b2
;
compute_hash
();
}
bool
same_vertices
(
Diagonal
diagonal
)
const
{
bool
same_vertices
(
Diagonal
diagonal
)
const
{
bool
c1
=
(
a
==
diagonal
.
get_a
())
||
(
a
==
diagonal
.
get_b
());
bool
c2
=
(
b
==
diagonal
.
get_a
())
||
(
b
==
diagonal
.
get_b
());
return
c1
&&
c2
;
}
unsigned
long
long
get_hash
()
const
{
return
hash
;
}
bool
operator
<
(
const
Diagonal
&
rhs
)
const
{
return
hash
<
rhs
.
get_hash
();
}
unsigned
long
long
get_hash
()
const
{
return
hash
;
}
bool
operator
<
(
const
Diagonal
&
rhs
)
const
{
return
hash
<
rhs
.
get_hash
();
}
};
class
Tuple
{
private:
private:
MVertex
*
v1
,
*
v2
,
*
v3
;
MElement
*
element
;
GFace
*
gf
;
MElement
*
element
;
GFace
*
gf
;
unsigned
long
long
hash
;
public:
public:
Tuple
()
:
v1
(
NULL
),
v2
(
NULL
),
v3
(
NULL
),
element
(
NULL
),
gf
(
NULL
),
hash
(
0.
)
{}
Tuple
(
MVertex
*
a
,
MVertex
*
b
,
MVertex
*
c
,
MElement
*
element2
,
GFace
*
gf2
)
{
...
...
@@ -251,7 +242,8 @@ public:
MVertex
*
get_v3
()
const
{
return
v3
;}
MElement
*
get_element
()
const
{
return
element
;
}
GFace
*
get_gf
()
const
{
return
gf
;
}
bool
same_vertices
(
const
Tuple
&
rhs
)
const
{
bool
same_vertices
(
const
Tuple
&
rhs
)
const
{
if
(
v1
==
rhs
.
get_v1
()
&&
v2
==
rhs
.
get_v2
()
&&
v3
==
rhs
.
get_v3
())
{
return
true
;
}
else
{
...
...
@@ -259,68 +251,65 @@ public:
}
}
unsigned
long
long
get_hash
()
const
{
return
hash
;
}
bool
operator
<
(
const
Tuple
&
rhs
)
const
{
return
hash
<
rhs
.
get_hash
();
}
bool
operator
<
(
const
Tuple
&
rhs
)
const
{
return
hash
<
rhs
.
get_hash
();
}
};
// Class in charge of answering connectivity requests on
// the input tetraedral mesh
// Class in charge of answering connectivity requests on the input tetraedral
// mesh
class
TetMeshConnectivity
{
public:
typedef
std
::
set
<
MVertex
*>
VertexSet
;
typedef
std
::
set
<
MElement
*>
TetSet
;
TetMeshConnectivity
()
{};
~
TetMeshConnectivity
()
{};
void
initialize
(
GRegion
*
region
)
{
void
initialize
(
GRegion
*
region
)
{
Msg
::
Info
(
"Initialize Connectivity Information..."
);
clear
();
initialize_vertex_to_vertices
(
region
);
initialize_vertex_to_elements
(
region
);
}
void
clear
()
{
void
clear
()
{
vertex_to_vertices_
.
clear
();
vertex_to_elements_
.
clear
();
}
VertexSet
&
vertices_around_vertex
(
MVertex
*
v
)
{
VertexSet
&
vertices_around_vertex
(
MVertex
*
v
)
{
return
vertex_to_vertices_
[
v
];
}
TetSet
&
tets_around_vertex
(
MVertex
*
v
)
{
TetSet
&
tets_around_vertex
(
MVertex
*
v
)
{
return
vertex_to_elements_
[
v
];
}
bool
are_vertex_neighbors
(
MVertex
*
v0
,
MVertex
*
v1
)
{
bool
are_vertex_neighbors
(
MVertex
*
v0
,
MVertex
*
v1
)
{
return
vertices_around_vertex
(
v0
).
count
(
v1
)
>
0
;
}
void
vertices_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
VertexSet
&
result
)
{
void
vertices_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
VertexSet
&
result
)
{
const
VertexSet
&
neighbors0
=
vertices_around_vertex
(
v0
);
const
VertexSet
&
neighbors1
=
vertices_around_vertex
(
v1
);
std
::
set_intersection
(
neighbors0
.
begin
(),
neighbors0
.
end
(),
neighbors1
.
begin
(),
neighbors1
.
end
(),
std
::
inserter
(
result
,
result
.
end
()));
}
void
vertices_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
MVertex
*
v2
,
VertexSet
&
result
)
{
void
vertices_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
MVertex
*
v2
,
VertexSet
&
result
)
{
VertexSet
tmp
;
vertices_around_vertices
(
v0
,
v1
,
tmp
);
const
VertexSet
&
neighbors2
=
vertices_around_vertex
(
v2
);
std
::
set_intersection
(
neighbors2
.
begin
(),
neighbors2
.
end
(),
tmp
.
begin
(),
tmp
.
end
(),
std
::
inserter
(
result
,
result
.
end
()));
}
void
tets_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
TetSet
&
result
)
{
void
tets_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
TetSet
&
result
)
{
const
TetSet
&
elements0
=
tets_around_vertex
(
v0
);
const
TetSet
&
elements1
=
tets_around_vertex
(
v1
);
std
::
set_intersection
(
elements0
.
begin
(),
elements0
.
end
(),
elements1
.
begin
(),
elements1
.
end
(),
std
::
inserter
(
result
,
result
.
end
()));
}
void
tets_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
MVertex
*
v2
,
TetSet
&
result
)
{
void
tets_around_vertices
(
MVertex
*
v0
,
MVertex
*
v1
,
MVertex
*
v2
,
TetSet
&
result
)
{
TetSet
tmp
;
tets_around_vertices
(
v0
,
v1
,
tmp
);
const
TetSet
&
elements2
=
tets_around_vertex
(
v2
);
...
...
@@ -328,20 +317,20 @@ public:
elements2
.
begin
(),
elements2
.
end
(),
std
::
inserter
(
result
,
result
.
end
()));
}
private
:
private
:
// TODO Change this costly implementation
// Replace maps by vectors and store adjacent vertices whose
// index is bigger
void
initialize_vertex_to_vertices
(
GRegion
*
region
)
{
void
initialize_vertex_to_vertices
(
GRegion
*
region
)
{
int
nbtets
=
region
->
getNumMeshElements
();
for
(
unsigned
int
i
=
0
;
i
<
nbtets
;
i
++
)
{
for
(
int
i
=
0
;
i
<
nbtets
;
i
++
)
{
MElement
*
tet
=
region
->
getMeshElement
(
i
);
for
(
int
j
=
0
;
j
<
4
;
j
++
)
{
MVertex
*
a
=
tet
->
getVertex
(
j
);
MVertex
*
b
=
tet
->
getVertex
((
j
+
1
)
%
4
);
MVertex
*
c
=
tet
->
getVertex
((
j
+
2
)
%
4
);
MVertex
*
d
=
tet
->
getVertex
((
j
+
3
)
%
4
);
std
::
map
<
MVertex
*
,
std
::
set
<
MVertex
*>
>::
iterator
it
=
vertex_to_vertices_
.
find
(
a
);
if
(
it
!=
vertex_to_vertices_
.
end
())
{
it
->
second
.
insert
(
b
);
...
...
@@ -358,14 +347,14 @@ private:
}
}
}
void
initialize_vertex_to_elements
(
GRegion
*
region
)
{
void
initialize_vertex_to_elements
(
GRegion
*
region
)
{
int
nbtets
=
region
->
getNumMeshElements
();
for
(
unsigned
int
i
=
0
;
i
<
nbtets
;
i
++
)
{
for
(
int
i
=
0
;
i
<
nbtets
;
i
++
)
{
MElement
*
tet
=
region
->
getMeshElement
(
i
);
for
(
unsigned
int
j
=
0
;
j
<
4
;
j
++
)
{
MVertex
*
getVertex
=
tet
->
getVertex
(
j
);
std
::
map
<
MVertex
*
,
std
::
set
<
MElement
*>
>::
iterator
it
=
vertex_to_elements_
.
find
(
getVertex
);
if
(
it
!=
vertex_to_elements_
.
end
())
{
it
->
second
.
insert
(
tet
);
...
...
@@ -378,16 +367,13 @@ private:
}
}
}
private
:
private
:
std
::
map
<
MVertex
*
,
std
::
set
<
MVertex
*>
>
vertex_to_vertices_
;
std
::
map
<
MVertex
*
,
std
::
set
<
MElement
*>
>
vertex_to_elements_
;
};
class
Recombinator
{
public:
public:
typedef
std
::
set
<
MVertex
*>::
iterator
vertex_set_itr
;
typedef
std
::
set
<
MElement
*>::
iterator
element_set_itr
;
...
...
@@ -400,7 +386,7 @@ public:
virtual
void
execute
();
virtual
void
execute
(
GRegion
*
);
protected
:
protected
:
// ---- Initialization of the structures
virtual
void
initialize_structures
(
GRegion
*
region
)
{
set_current_region
(
region
);
...
...
@@ -411,12 +397,12 @@ protected:
}
void
init_markings
();
void
build_tuples
();
void
set_current_region
(
GRegion
*
region
)
{
current_region
=
region
;
}
void
set_current_region
(
GRegion
*
region
)
{
current_region
=
region
;
}
// ---- Create the final mesh -------
virtual
void
merge
();
virtual
void
merge
(
GRegion
*
){}
void
delete_marked_tets_in_region
()
const
;
// Check if the hex is valid and compatible with the
// previously built hexes and add it to the region
...
...
@@ -481,7 +467,7 @@ protected:
double
min_scaled_jacobian
(
Hex
&
);
void
print_statistics
();
protected
:
protected
:
// Object in charge of answering connectivity request
// in the initial region tetrahedral mesh
TetMeshConnectivity
tet_mesh
;
...
...
@@ -502,7 +488,6 @@ protected:
std
::
set
<
MElement
*>
triangles
;
};
class
PEEntity
{
protected:
vector
<
MVertex
*>
vertices
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment