Skip to content

Commit 366eecd

Browse files
authored
Merge pull request #82 from janmodderman/master
added keyword for positive=true from simplexify() for GMSH mesh
2 parents f221e3b + 5cbc8a1 commit 366eecd

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/GmshDiscreteModels.jl

+7-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const UNSET = 0
99
# some cartesian-like grids can also have affine maps. You can force the creation of
1010
# affine maps by setting has_affine_map=true.
1111

12-
function GmshDiscreteModel(mshfile; renumber=true, has_affine_map=nothing)
12+
function GmshDiscreteModel(mshfile; renumber=true, has_affine_map=nothing, orient_if_simplex=nothing)
1313
@check_if_loaded
1414
if !isfile(mshfile)
1515
error("Msh file not found: $mshfile")
@@ -22,18 +22,18 @@ function GmshDiscreteModel(mshfile; renumber=true, has_affine_map=nothing)
2222
gmsh.open(mshfile)
2323
renumber && gmsh.model.mesh.renumberNodes()
2424
renumber && gmsh.model.mesh.renumberElements()
25-
model = GmshDiscreteModel(gmsh;has_affine_map)
25+
model = GmshDiscreteModel(gmsh;has_affine_map,orient_if_simplex)
2626
gmsh.finalize()
2727
model
2828
end
2929

30-
function GmshDiscreteModel(gmsh::Module; has_affine_map=nothing)
30+
function GmshDiscreteModel(gmsh::Module; has_affine_map=nothing, orient_if_simplex=nothing)
3131
Dc = _setup_cell_dim(gmsh)
3232
Dp = _setup_point_dim(gmsh,Dc)
3333
node_to_coords = _setup_node_coords(gmsh,Dp)
3434
nnodes = length(node_to_coords)
3535
vertex_to_node, node_to_vertex = _setup_nodes_and_vertices(gmsh,node_to_coords)
36-
grid, cell_to_entity = _setup_grid(gmsh,Dc,Dp,node_to_coords,node_to_vertex;has_affine_map)
36+
grid, cell_to_entity = _setup_grid(gmsh,Dc,Dp,node_to_coords,node_to_vertex;has_affine_map,orient_if_simplex)
3737
cell_to_vertices, vertex_to_node, node_to_vertex = _setup_cell_to_vertices(grid,vertex_to_node,node_to_vertex)
3838
grid_topology = UnstructuredGridTopology(grid,cell_to_vertices,vertex_to_node)
3939
labeling = _setup_labeling(gmsh,grid,grid_topology,cell_to_entity,vertex_to_node,node_to_vertex)
@@ -78,12 +78,13 @@ function _setup_nodes_and_vertices_periodic(gmsh,dimTags,nnodes)
7878
vertex_to_node, node_to_vertex
7979
end
8080

81-
function _setup_grid(gmsh,Dc,Dp,node_to_coords,node_to_vertex;has_affine_map=nothing)
81+
function _setup_grid(gmsh,Dc,Dp,node_to_coords,node_to_vertex;has_affine_map=nothing,orient_if_simplex=nothing)
8282

8383
if ( Dp == 3 && Dc == 2 ) || ( Dp == 2 && Dc == 1 )
84+
@assert isnothing(orient_if_simplex)
8485
orient_if_simplex = false
8586
else
86-
orient_if_simplex = true
87+
orient_if_simplex = isnothing(orient_if_simplex) || orient_if_simplex
8788
end
8889

8990
cell_to_nodes, nminD = _setup_connectivity(gmsh,Dc,node_to_vertex,orient_if_simplex)

0 commit comments

Comments
 (0)