Skip to content

Commit

Permalink
FEM: gmsh mesh obj, use 2nd order as standard and remove Automatic
Browse files Browse the repository at this point in the history
  • Loading branch information
berndhahnebach authored and yorikvanhavre committed Dec 21, 2016
1 parent d64e2cf commit a8b61ba
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 30 deletions.
4 changes: 2 additions & 2 deletions src/Mod/Fem/FemGmshTools.py
Expand Up @@ -58,11 +58,11 @@ def __init__(self, gmsh_mesh_obj, analysis=None):
self.clmin = Units.Quantity(self.mesh_obj.CharacteristicLengthMin).Value

# order
# known_element_orders = ['Automatic', '1st', '2nd']
# known_element_orders = ['1st', '2nd']
self.order = self.mesh_obj.ElementOrder
if self.order == '1st':
self.order = '1'
elif self.order == 'Automatic' or self.order == '2nd':
elif self.order == '2nd':
self.order = '2'
else:
print('Error in order')
Expand Down
16 changes: 3 additions & 13 deletions src/Mod/Fem/TaskPanelFemMeshGmsh.ui
Expand Up @@ -42,23 +42,13 @@
<widget class="QComboBox" name="cb_dimension"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="l_order">
<property name="text">
<string>Mesh element order:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cb_order"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="l_max">
<property name="text">
<string>Max element size (0.0 = Auto):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="2" column="1">
<widget class="Gui::InputField" name="if_max">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
Expand Down Expand Up @@ -95,14 +85,14 @@
</property>
</widget>
</item>
<item row="4" column="0">
<item row="3" column="0">
<widget class="QLabel" name="l_min">
<property name="text">
<string>Min element size (0.0 = Auto):</string>
</property>
</widget>
</item>
<item row="4" column="1">
<item row="3" column="1">
<widget class="Gui::InputField" name="if_min">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
Expand Down
6 changes: 3 additions & 3 deletions src/Mod/Fem/_FemMeshGmsh.py
Expand Up @@ -34,7 +34,7 @@ class _FemMeshGmsh():

# they will be used from the task panel too, thus they need to be outside of the __init__
known_element_dimensions = ['Automatic', '1D', '2D', '3D']
known_element_orders = ['Automatic', '1st', '2nd']
known_element_orders = ['1st', '2nd']
known_mesh_algorithm_2D = ['Automatic', 'MeshAdapt', 'Delaunay', 'Frontal', 'BAMG', 'DelQuad']
known_mesh_algorithm_3D = ['Automatic', 'Delaunay', 'New Delaunay', 'Frontal', 'Frontal Delaunay', 'Frontal Hex', 'MMG3D', 'R-tree']

Expand All @@ -59,9 +59,9 @@ def __init__(self, obj):
obj.ElementDimension = _FemMeshGmsh.known_element_dimensions
obj.ElementDimension = 'Automatic' # according ShapeType of Part to mesh

obj.addProperty("App::PropertyEnumeration", "ElementOrder", "FEM GMSH Mesh Params", "Order of mesh elements (Auto will be 2nd)")
obj.addProperty("App::PropertyEnumeration", "ElementOrder", "FEM GMSH Mesh Params", "Order of mesh elements")
obj.ElementOrder = _FemMeshGmsh.known_element_orders
obj.ElementOrder = 'Automatic' # = 2nd
obj.ElementOrder = '2nd'

obj.addProperty("App::PropertyBool", "OptimizeStd", "FEM GMSH Mesh Params", "Optimize tetra elements")
obj.OptimizeStd = True
Expand Down
12 changes: 0 additions & 12 deletions src/Mod/Fem/_TaskPanelFemMeshGmsh.py
Expand Up @@ -51,11 +51,9 @@ def __init__(self, obj):
QtCore.QObject.connect(self.form.if_max, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.max_changed)
QtCore.QObject.connect(self.form.if_min, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.min_changed)
QtCore.QObject.connect(self.form.cb_dimension, QtCore.SIGNAL("activated(int)"), self.choose_dimension)
QtCore.QObject.connect(self.form.cb_order, QtCore.SIGNAL("activated(int)"), self.choose_order)
QtCore.QObject.connect(self.Timer, QtCore.SIGNAL("timeout()"), self.update_timer_text)

self.form.cb_dimension.addItems(_FemMeshGmsh._FemMeshGmsh.known_element_dimensions)
self.form.cb_order.addItems(_FemMeshGmsh._FemMeshGmsh.known_element_orders)

self.get_mesh_params()
self.get_active_analysis()
Expand All @@ -80,13 +78,11 @@ def clicked(self, button):
def get_mesh_params(self):
self.clmax = self.mesh_obj.CharacteristicLengthMax
self.clmin = self.mesh_obj.CharacteristicLengthMin
self.order = self.mesh_obj.ElementOrder
self.dimension = self.mesh_obj.ElementDimension

def set_mesh_params(self):
self.mesh_obj.CharacteristicLengthMax = self.clmax
self.mesh_obj.CharacteristicLengthMin = self.clmin
self.mesh_obj.ElementOrder = self.order
self.mesh_obj.ElementDimension = self.dimension

def update(self):
Expand All @@ -95,8 +91,6 @@ def update(self):
self.form.if_min.setText(self.clmin.UserString)
index_dimension = self.form.cb_dimension.findText(self.dimension)
self.form.cb_dimension.setCurrentIndex(index_dimension)
index_order = self.form.cb_order.findText(self.order)
self.form.cb_order.setCurrentIndex(index_order)

def console_log(self, message="", color="#000000"):
self.console_message_gmsh = self.console_message_gmsh + '<font color="#0000FF">{0:4.1f}:</font> <font color="{1}">{2}</font><br>'.\
Expand All @@ -123,12 +117,6 @@ def choose_dimension(self, index):
self.form.cb_dimension.setCurrentIndex(index)
self.dimension = str(self.form.cb_dimension.itemText(index)) # form returns unicode

def choose_order(self, index):
if index < 0:
return
self.form.cb_order.setCurrentIndex(index)
self.order = str(self.form.cb_order.itemText(index)) # form returns unicode

def run_gmsh(self):
QApplication.setOverrideCursor(Qt.WaitCursor)
self.Start = time.time()
Expand Down

0 comments on commit a8b61ba

Please sign in to comment.