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
e5cb246e
Commit
e5cb246e
authored
15 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
removed everything related to applyOCCMEshConstraints (this is now coded directly in SField)
parent
8ffe8ca1
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
CMakeLists.txt
+0
-5
0 additions, 5 deletions
CMakeLists.txt
Geo/GModel.h
+0
-1
0 additions, 1 deletion
Geo/GModel.h
Geo/GModelIO_OCC.cpp
+0
-169
0 additions, 169 deletions
Geo/GModelIO_OCC.cpp
with
0 additions
and
175 deletions
CMakeLists.txt
+
0
−
5
View file @
e5cb246e
...
@@ -33,7 +33,6 @@ option(ENABLE_METIS "Enable Metis mesh partitioner" ON)
...
@@ -33,7 +33,6 @@ option(ENABLE_METIS "Enable Metis mesh partitioner" ON)
option
(
ENABLE_NATIVE_FILE_CHOOSER
"Enable native file chooser in GUI"
ON
)
option
(
ENABLE_NATIVE_FILE_CHOOSER
"Enable native file chooser in GUI"
ON
)
option
(
ENABLE_NETGEN
"Enable Netgen mesh generator"
ON
)
option
(
ENABLE_NETGEN
"Enable Netgen mesh generator"
ON
)
option
(
ENABLE_OCC
"Enable OpenCASCADE geometrical models"
ON
)
option
(
ENABLE_OCC
"Enable OpenCASCADE geometrical models"
ON
)
option
(
ENABLE_OCC_MESH_CONSTRAINTS
"Enable OpenCASCADE mehs constraints"
OFF
)
option
(
ENABLE_OOFELIE
"Set compiler options to match oofelie settings"
OFF
)
option
(
ENABLE_OOFELIE
"Set compiler options to match oofelie settings"
OFF
)
option
(
ENABLE_OSMESA
"Use OSMesa for offscreen rendering"
OFF
)
option
(
ENABLE_OSMESA
"Use OSMesa for offscreen rendering"
OFF
)
option
(
ENABLE_PARSER
"Build the GEO file parser"
ON
)
option
(
ENABLE_PARSER
"Build the GEO file parser"
ON
)
...
@@ -525,10 +524,6 @@ if(ENABLE_OCC)
...
@@ -525,10 +524,6 @@ if(ENABLE_OCC)
elseif
(
MSVC
)
elseif
(
MSVC
)
add_definitions
(
-DHAVE_NO_OCC_CONFIG_H -DWNT
)
add_definitions
(
-DHAVE_NO_OCC_CONFIG_H -DWNT
)
endif
(
CYGWIN
)
endif
(
CYGWIN
)
if
(
ENABLE_OCC_MESH_CONSTRAINTS
)
list
(
APPEND CONFIG_OPTIONS
"OpenCascadeMeshConstraints"
)
set
(
HAVE_OCC_MESH_CONSTRAINTS TRUE
)
endif
(
ENABLE_OCC_MESH_CONSTRAINTS
)
endif
(
OCC_INC
)
endif
(
OCC_INC
)
endif
(
NUM_OCC_LIBS EQUAL NUM_OCC_LIBS_REQUIRED
)
endif
(
NUM_OCC_LIBS EQUAL NUM_OCC_LIBS_REQUIRED
)
endif
(
ENABLE_OCC
)
endif
(
ENABLE_OCC
)
...
...
This diff is collapsed.
Click to expand it.
Geo/GModel.h
+
0
−
1
View file @
e5cb246e
...
@@ -329,7 +329,6 @@ class GModel
...
@@ -329,7 +329,6 @@ class GModel
int
writeOCCSTEP
(
const
std
::
string
&
name
);
int
writeOCCSTEP
(
const
std
::
string
&
name
);
int
writeOCCBREP
(
const
std
::
string
&
name
);
int
writeOCCBREP
(
const
std
::
string
&
name
);
int
importOCCShape
(
const
void
*
shape
);
int
importOCCShape
(
const
void
*
shape
);
int
applyOCCMeshConstraints
(
const
void
*
constraints
);
void
addShape
(
std
::
string
name
,
std
::
vector
<
double
>
&
p
,
std
::
string
op
);
void
addShape
(
std
::
string
name
,
std
::
vector
<
double
>
&
p
,
std
::
string
op
);
// Gmsh mesh file format
// Gmsh mesh file format
...
...
This diff is collapsed.
Click to expand it.
Geo/GModelIO_OCC.cpp
+
0
−
169
View file @
e5cb246e
...
@@ -16,12 +16,6 @@
...
@@ -16,12 +16,6 @@
#include
"OpenFile.h"
#include
"OpenFile.h"
#include
"OCC_Connect.h"
#include
"OCC_Connect.h"
#if defined(HAVE_OCC_MESH_CONSTRAINTS)
#include
"MeshGmsh_Constrain.hxx"
#include
"MeshGmsh_VertexConstrain.hxx"
#include
"MeshGmsh_EdgeConstrain.hxx"
#endif
#if defined(HAVE_OCC)
#if defined(HAVE_OCC)
void
OCC_Internals
::
buildLists
()
void
OCC_Internals
::
buildLists
()
...
@@ -984,162 +978,6 @@ int GModel::importOCCShape(const void *shape)
...
@@ -984,162 +978,6 @@ int GModel::importOCCShape(const void *shape)
return
1
;
return
1
;
}
}
#if defined(HAVE_OCC_MESH_CONSTRAINTS)
static
void
_applyOCCMeshConstraintsOnVertices
(
GModel
*
m
,
MeshGmsh_DataMapOfShapeOfVertexConstrain
&
constraints
)
{
for
(
GModel
::
viter
it
=
m
->
firstVertex
();
it
!=
m
->
lastVertex
();
++
it
){
GVertex
*
gv
=
*
it
;
if
(
gv
->
getNativeType
()
!=
GEntity
::
OpenCascadeModel
)
continue
;
TopoDS_Shape
*
s
=
(
TopoDS_Shape
*
)
gv
->
getNativePtr
();
if
(
constraints
.
IsBound
(
*
s
))
{
Msg
::
Debug
(
"Found mesh contraints on vertex %d"
,
gv
->
tag
());
const
MeshGmsh_VertexConstrain
&
c
(
constraints
.
Find
(
*
s
));
// 1) characteristic length constraint
double
lc
=
c
.
GetSize
();
if
(
lc
>=
0.
){
Msg
::
Debug
(
"... setting mesh size = %g"
,
lc
);
gv
->
setPrescribedMeshSizeAtVertex
(
lc
);
}
// 2) embedding constraint
if
(
c
.
IsEmbedded
()
&&
!
c
.
GetFace
().
IsNull
()){
TopoDS_Shape
shape
=
c
.
GetFace
();
Standard_Integer
nodeNum
;
c
.
GetNodeNumber
(
nodeNum
);
for
(
GModel
::
fiter
it2
=
m
->
firstFace
();
it2
!=
m
->
lastFace
();
++
it2
){
GFace
*
gf
=
*
it2
;
if
(
gf
->
getNativeType
()
!=
GEntity
::
OpenCascadeModel
)
continue
;
TopoDS_Shape
*
shape2
=
(
TopoDS_Shape
*
)
gf
->
getNativePtr
();
if
(
shape
.
IsSame
(
*
shape2
)){
Msg
::
Debug
(
"... embedding vertex %d in face %d"
,
nodeNum
,
gf
->
tag
());
gv
->
mesh_vertices
[
0
]
->
forceNum
(
nodeNum
);
gf
->
addEmbeddedVertex
(
gv
);
}
}
}
}
}
}
static
void
_applyOCCMeshConstraintsOnEdges
(
GModel
*
m
,
MeshGmsh_DataMapOfShapeOfEdgeConstrain
&
constraints
)
{
for
(
GModel
::
eiter
it
=
m
->
firstEdge
();
it
!=
m
->
lastEdge
();
++
it
){
GEdge
*
ge
=
*
it
;
if
(
ge
->
getNativeType
()
!=
GEntity
::
OpenCascadeModel
)
continue
;
TopoDS_Shape
*
s
=
(
TopoDS_Shape
*
)
ge
->
getNativePtr
();
if
(
constraints
.
IsBound
(
*
s
))
{
Msg
::
Debug
(
"Found mesh contraints on edge %d"
,
ge
->
tag
());
const
MeshGmsh_EdgeConstrain
&
c
(
constraints
.
Find
(
*
s
));
// 1) prescribed mesh constraint
if
(
c
.
IsMeshImposed
()){
TColStd_SequenceOfInteger
nodeNum
;
c
.
GetNodesNumber
(
nodeNum
);
TColStd_SequenceOfReal
nodePar
;
c
.
GetParameters
(
nodePar
);
int
n
=
nodeNum
.
Length
();
if
(
n
<
2
){
Msg
::
Error
(
"We need at least two points in the edge constraint"
);
}
else
if
(
nodePar
.
Length
()
!=
n
){
Msg
::
Error
(
"Wrong number of parameters in edge constraint: %d != %d"
,
nodeNum
.
Length
(),
nodePar
.
Length
());
}
else
{
// set the mesh as immutable
ge
->
meshAttributes
.
Method
=
MESH_NONE
;
// set the correct tags on the boundary vertices
bool
invert
=
(
nodePar
.
Value
(
1
)
>
nodePar
.
Value
(
n
));
int
numbeg
=
nodeNum
.
Value
(
invert
?
n
:
1
);
int
numend
=
nodeNum
.
Value
(
invert
?
1
:
n
);
Msg
::
Debug
(
"... beg=%d end=%d"
,
numbeg
,
numend
);
ge
->
getBeginVertex
()
->
mesh_vertices
[
0
]
->
forceNum
(
numbeg
);
ge
->
getEndVertex
()
->
mesh_vertices
[
0
]
->
forceNum
(
numend
);
// set the mesh on the edge
for
(
int
i
=
2
;
i
<
n
;
i
++
){
int
num
=
nodeNum
.
Value
(
invert
?
n
-
i
+
1
:
i
);
double
u
=
nodePar
.
Value
(
invert
?
n
-
i
+
1
:
i
);
GPoint
p
=
ge
->
point
(
u
);
Msg
::
Debug
(
"... adding mesh vertex num=%d u=%g xyz=(%g,%g,%g)"
,
num
,
u
,
p
.
x
(),
p
.
y
(),
p
.
z
());
MEdgeVertex
*
v
=
new
MEdgeVertex
(
p
.
x
(),
p
.
y
(),
p
.
z
(),
ge
,
u
,
-
1.
,
num
);
ge
->
mesh_vertices
.
push_back
(
v
);
}
for
(
unsigned
int
i
=
0
;
i
<
ge
->
mesh_vertices
.
size
()
+
1
;
i
++
){
MVertex
*
v0
=
(
i
==
0
)
?
ge
->
getBeginVertex
()
->
mesh_vertices
[
0
]
:
ge
->
mesh_vertices
[
i
-
1
];
MVertex
*
v1
=
(
i
==
ge
->
mesh_vertices
.
size
())
?
ge
->
getEndVertex
()
->
mesh_vertices
[
0
]
:
ge
->
mesh_vertices
[
i
];
ge
->
lines
.
push_back
(
new
MLine
(
v0
,
v1
));
}
}
}
// 2) embedding constraint
if
(
c
.
IsEmbedded
()
&&
!
c
.
GetFace
().
IsNull
()){
TopoDS_Shape
shape
=
c
.
GetFace
();
for
(
GModel
::
fiter
it2
=
m
->
firstFace
();
it2
!=
m
->
lastFace
();
++
it2
){
GFace
*
gf
=
*
it2
;
if
(
gf
->
getNativeType
()
!=
GEntity
::
OpenCascadeModel
)
continue
;
TopoDS_Shape
*
shape2
=
(
TopoDS_Shape
*
)
gf
->
getNativePtr
();
if
(
shape
.
IsSame
(
*
shape2
)){
Msg
::
Debug
(
"... embedding edge in face %d"
,
gf
->
tag
());
gf
->
addEmbeddedEdge
(
ge
);
// the surface might have this edge as an open wire: make
// sure to remove it
gf
->
delFreeEdge
(
ge
);
}
}
}
}
}
// set better characteristic length for all edges with no imposed
// mesh
int
num_ele
=
0
;
double
lc_avg
=
0.
;
for
(
GModel
::
eiter
it
=
m
->
firstEdge
();
it
!=
m
->
lastEdge
();
++
it
){
GEdge
*
ge
=
*
it
;
for
(
unsigned
int
i
=
0
;
i
<
ge
->
lines
.
size
();
i
++
)
lc_avg
+=
ge
->
lines
[
i
]
->
getVertex
(
0
)
->
distance
(
ge
->
lines
[
i
]
->
getVertex
(
1
));
num_ele
+=
ge
->
lines
.
size
();
}
if
(
num_ele
)
lc_avg
/=
(
double
)
num_ele
;
if
(
lc_avg
){
Msg
::
Debug
(
"Setting default char length to %g"
,
lc_avg
);
for
(
GModel
::
eiter
it
=
m
->
firstEdge
();
it
!=
m
->
lastEdge
();
++
it
){
GEdge
*
ge
=
*
it
;
if
(
ge
->
meshAttributes
.
Method
==
MESH_NONE
){
ge
->
getBeginVertex
()
->
setPrescribedMeshSizeAtVertex
(
lc_avg
);
ge
->
getEndVertex
()
->
setPrescribedMeshSizeAtVertex
(
lc_avg
);
}
}
}
}
#endif
int
GModel
::
applyOCCMeshConstraints
(
const
void
*
constraints
)
{
#if defined(HAVE_OCC_MESH_CONSTRAINTS)
MeshGmsh_Constrain
*
c
=
(
MeshGmsh_Constrain
*
)
constraints
;
MeshGmsh_DataMapOfShapeOfVertexConstrain
vertexConstraints
;
c
->
GetVertexConstrain
(
vertexConstraints
);
_applyOCCMeshConstraintsOnVertices
(
this
,
vertexConstraints
);
MeshGmsh_DataMapOfShapeOfEdgeConstrain
edgeConstraints
;
c
->
GetEdgeConstrain
(
edgeConstraints
);
_applyOCCMeshConstraintsOnEdges
(
this
,
edgeConstraints
);
return
1
;
#else
return
0
;
#endif
}
#else
#else
void
GModel
::
_deleteOCCInternals
()
void
GModel
::
_deleteOCCInternals
()
...
@@ -1188,13 +1026,6 @@ int GModel::importOCCShape(const void *shape)
...
@@ -1188,13 +1026,6 @@ int GModel::importOCCShape(const void *shape)
return
0
;
return
0
;
}
}
int
GModel
::
applyOCCMeshConstraints
(
const
void
*
constraints
)
{
Msg
::
Error
(
"Gmsh must be compiled with OpenCascade support to apply "
"OCC mesh constraints"
);
return
0
;
}
void
GModel
::
addShape
(
std
::
string
name
,
std
::
vector
<
double
>
&
p
,
void
GModel
::
addShape
(
std
::
string
name
,
std
::
vector
<
double
>
&
p
,
std
::
string
op
)
std
::
string
op
)
{
{
...
...
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