diff --git a/src/Mod/Fem/femmesh/gmshtools.py b/src/Mod/Fem/femmesh/gmshtools.py index 54ebc6e231ee..5e90e035726a 100644 --- a/src/Mod/Fem/femmesh/gmshtools.py +++ b/src/Mod/Fem/femmesh/gmshtools.py @@ -757,6 +757,16 @@ def write_geo(self): geo.write("Coherence Mesh; // Remove duplicate vertices\n") else: geo.write("Mesh " + self.dimension + ";\n") + if hasattr(self.mesh_obj, "SecondOrderLinear") and self.mesh_obj.SecondOrderLinear is True: + geo.write( + "Mesh.SecondOrderLinear = 1; // Second order nodes are created " + "by linear interpolation instead by curvilinear\n" + ) + else: + geo.write( + "Mesh.SecondOrderLinear = 0; // Second order nodes are created " + "by linear interpolation instead by curvilinear\n" + ) geo.write("\n") # save mesh diff --git a/src/Mod/Fem/femobjects/_FemMeshGmsh.py b/src/Mod/Fem/femobjects/_FemMeshGmsh.py index 655d8cdc5644..f9d082d4aec9 100644 --- a/src/Mod/Fem/femobjects/_FemMeshGmsh.py +++ b/src/Mod/Fem/femobjects/_FemMeshGmsh.py @@ -174,6 +174,14 @@ def __init__(self, obj): ) obj.GeometryTolerance = 1e-06 + obj.addProperty( + "App::PropertyBool", + "SecondOrderLinear", + "FEM Gmsh Mesh Params", + "Second order nodes are created by linear interpolation" + ) + obj.SecondOrderLinear = True + obj.addProperty( "App::PropertyEnumeration", "Algorithm2D",