Skip to content

Commit 46f83aa

Browse files
committed
added keyword for positive=true from simplexify() for GMSH
1 parent f221e3b commit 46f83aa

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/GmshDiscreteModels.jl

+8-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, positive=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,positive)
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, positive=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,positive)
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,14 @@ 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,positive=nothing)
8282

8383
if ( Dp == 3 && Dc == 2 ) || ( Dp == 2 && Dc == 1 )
8484
orient_if_simplex = false
85-
else
85+
elseif isnothing(positive)
8686
orient_if_simplex = true
87+
else
88+
orient_if_simplex = !positive
8789
end
8890

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

0 commit comments

Comments
 (0)