@@ -2994,7 +2994,7 @@ def refine_marked_elements(self, mark, netgen_flags=None):
29942994 utils .check_netgen_installed ()
29952995
29962996 if netgen_flags is None :
2997- netgen_flags = {}
2997+ netgen_flags = self . netgen_flags
29982998 DistParams = self ._distribution_parameters
29992999 netgen_mesh = self .netgen_mesh .Copy ()
30003000 els = {2 : netgen_mesh .Elements2D , 3 : netgen_mesh .Elements3D }
@@ -3023,9 +3023,11 @@ def refine_marked_elements(self, mark, netgen_flags=None):
30233023 netgen_mesh .Elements2D ().NumPy ()["refine" ] = 0
30243024 netgen_mesh .Refine (adaptive = True )
30253025 mark = mark - np .ones (mark .shape )
3026- return fd .Mesh (netgen_mesh , distribution_parameters = DistParams , comm = self .comm )
3026+ return fd .Mesh (netgen_mesh , distribution_parameters = DistParams ,
3027+ netgen_flags = netgen_flags , comm = self .comm )
30273028 return fd .Mesh (netgen .libngpy ._meshing .Mesh (dim ),
3028- distribution_parameters = DistParams , comm = self .comm )
3029+ distribution_parameters = DistParams ,
3030+ netgen_flags = netgen_flags , comm = self .comm )
30293031 else :
30303032 raise NotImplementedError ("No implementation for dimension other than 2 and 3." )
30313033
@@ -3432,6 +3434,24 @@ def Mesh(meshfile, **kwargs):
34323434
34333435 if from_netgen :
34343436 mesh .netgen_mesh = netgen_firedrake_mesh .meshMap .ngMesh
3437+ mesh .netgen_flags = netgen_flags
3438+
3439+ # Curve the mesh, if requested
3440+ degree = netgen_flags .get ("degree" , 1 )
3441+ if degree != 1 :
3442+ permutation_tol = netgen_flags .get ("permutation_tol" , 1e-8 )
3443+ cg = netgen_flags .get ("cg" , False )
3444+ ho_field = mesh .curve_field (
3445+ order = degree ,
3446+ permutation_tol = permutation_tol ,
3447+ cg_field = cg
3448+ )
3449+ temp = Mesh (ho_field , distribution_parameters = mesh ._distribution_parameters ,
3450+ comm = mesh .comm )
3451+ temp .netgen_mesh = mesh .netgen_mesh
3452+ temp .netgen_flags = netgen_flags
3453+ temp ._tolerance = mesh .tolerance
3454+ mesh = temp
34353455
34363456 mesh .submesh_parent = submesh_parent
34373457 mesh ._tolerance = tolerance
0 commit comments