[FEM] add GMSH mesh order setting to dialog

- also set default to 1st order mesh
This commit is contained in:
donovaly
2021-03-24 01:57:05 +01:00
committed by Bernd Hahnebach
parent af3643853c
commit 7fb5a2d72a
3 changed files with 56 additions and 27 deletions

View File

@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>400</width>
<height>439</height>
<height>475</height>
</rect>
</property>
<property name="windowTitle">
@@ -41,14 +41,14 @@
<item row="1" column="1">
<widget class="QComboBox" name="cb_dimension"/>
</item>
<item row="2" column="0">
<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="2" column="1">
<item row="3" column="1">
<widget class="Gui::InputField" name="if_max">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
@@ -85,14 +85,14 @@
</property>
</widget>
</item>
<item row="3" column="0">
<item row="4" column="0">
<widget class="QLabel" name="l_min">
<property name="text">
<string>Min element size (0.0 = Auto):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="4" column="1">
<widget class="Gui::InputField" name="if_min">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
@@ -129,6 +129,16 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cb_order"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="I_order">
<property name="text">
<string>Mesh order</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
@@ -153,6 +163,13 @@
</property>
<item row="1" column="1">
<layout class="QGridLayout" name="gl_actions">
<item row="0" column="0">
<widget class="QTextEdit" name="te_output">
<property name="lineWrapMode">
<enum>QTextEdit::NoWrap</enum>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="l_time">
<property name="font">
@@ -165,26 +182,6 @@
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QTextEdit" name="te_output">
<property name="lineWrapMode">
<enum>QTextEdit::NoWrap</enum>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QPushButton" name="pb_get_gmsh_version">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Gmsh version</string>
</property>
</widget>
</item>
<item row="6" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
@@ -198,7 +195,20 @@
</property>
</spacer>
</item>
</layout>
<item row="7" column="0">
<widget class="QPushButton" name="pb_get_gmsh_version">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Gmsh version</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>

View File

@@ -141,7 +141,7 @@ class MeshGmsh(base_fempythonobject.BaseFemPythonObject):
"Order of mesh elements"
)
obj.ElementOrder = MeshGmsh.known_element_orders
obj.ElementOrder = "2nd"
obj.ElementOrder = "1st"
if not hasattr(obj, "OptimizeStd"):
obj.addProperty(

View File

@@ -77,6 +77,11 @@ class _TaskPanel:
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()"),
@@ -92,6 +97,10 @@ class _TaskPanel:
mesh_gmsh.MeshGmsh.known_element_dimensions
)
self.form.cb_order.addItems(
mesh_gmsh.MeshGmsh.known_element_orders
)
self.get_mesh_params()
self.get_active_analysis()
self.update()
@@ -126,11 +135,13 @@ class _TaskPanel:
self.clmax = self.mesh_obj.CharacteristicLengthMax
self.clmin = self.mesh_obj.CharacteristicLengthMin
self.dimension = self.mesh_obj.ElementDimension
self.order = self.mesh_obj.ElementOrder
def set_mesh_params(self):
self.mesh_obj.CharacteristicLengthMax = self.clmax
self.mesh_obj.CharacteristicLengthMin = self.clmin
self.mesh_obj.ElementDimension = self.dimension
self.mesh_obj.ElementOrder = self.order
def update(self):
"fills the widgets"
@@ -138,6 +149,8 @@ class _TaskPanel:
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"):
if (not isinstance(message, bytes)) and (sys.version_info.major < 3):
@@ -168,6 +181,12 @@ class _TaskPanel:
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 get_gmsh_version(self):
from femmesh import gmshtools
version, full_message = gmshtools.GmshTools(self.mesh_obj, self.analysis).get_gmsh_version()