[FEM] add GMSH mesh order setting to dialog
- also set default to 1st order mesh
This commit is contained in:
committed by
Bernd Hahnebach
parent
af3643853c
commit
7fb5a2d72a
@@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>400</width>
|
<width>400</width>
|
||||||
<height>439</height>
|
<height>475</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@@ -41,14 +41,14 @@
|
|||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QComboBox" name="cb_dimension"/>
|
<widget class="QComboBox" name="cb_dimension"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="l_max">
|
<widget class="QLabel" name="l_max">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Max element size (0.0 = Auto):</string>
|
<string>Max element size (0.0 = Auto):</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="1">
|
||||||
<widget class="Gui::InputField" name="if_max">
|
<widget class="Gui::InputField" name="if_max">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
@@ -85,14 +85,14 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="l_min">
|
<widget class="QLabel" name="l_min">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Min element size (0.0 = Auto):</string>
|
<string>Min element size (0.0 = Auto):</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="Gui::InputField" name="if_min">
|
<widget class="Gui::InputField" name="if_min">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
@@ -129,6 +129,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -153,6 +163,13 @@
|
|||||||
</property>
|
</property>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<layout class="QGridLayout" name="gl_actions">
|
<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">
|
<item row="5" column="0">
|
||||||
<widget class="QLabel" name="l_time">
|
<widget class="QLabel" name="l_time">
|
||||||
<property name="font">
|
<property name="font">
|
||||||
@@ -165,26 +182,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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">
|
<item row="6" column="0">
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -198,7 +195,20 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</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>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ class MeshGmsh(base_fempythonobject.BaseFemPythonObject):
|
|||||||
"Order of mesh elements"
|
"Order of mesh elements"
|
||||||
)
|
)
|
||||||
obj.ElementOrder = MeshGmsh.known_element_orders
|
obj.ElementOrder = MeshGmsh.known_element_orders
|
||||||
obj.ElementOrder = "2nd"
|
obj.ElementOrder = "1st"
|
||||||
|
|
||||||
if not hasattr(obj, "OptimizeStd"):
|
if not hasattr(obj, "OptimizeStd"):
|
||||||
obj.addProperty(
|
obj.addProperty(
|
||||||
|
|||||||
@@ -77,6 +77,11 @@ class _TaskPanel:
|
|||||||
QtCore.SIGNAL("activated(int)"),
|
QtCore.SIGNAL("activated(int)"),
|
||||||
self.choose_dimension
|
self.choose_dimension
|
||||||
)
|
)
|
||||||
|
QtCore.QObject.connect(
|
||||||
|
self.form.cb_order,
|
||||||
|
QtCore.SIGNAL("activated(int)"),
|
||||||
|
self.choose_order
|
||||||
|
)
|
||||||
QtCore.QObject.connect(
|
QtCore.QObject.connect(
|
||||||
self.Timer,
|
self.Timer,
|
||||||
QtCore.SIGNAL("timeout()"),
|
QtCore.SIGNAL("timeout()"),
|
||||||
@@ -92,6 +97,10 @@ class _TaskPanel:
|
|||||||
mesh_gmsh.MeshGmsh.known_element_dimensions
|
mesh_gmsh.MeshGmsh.known_element_dimensions
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.form.cb_order.addItems(
|
||||||
|
mesh_gmsh.MeshGmsh.known_element_orders
|
||||||
|
)
|
||||||
|
|
||||||
self.get_mesh_params()
|
self.get_mesh_params()
|
||||||
self.get_active_analysis()
|
self.get_active_analysis()
|
||||||
self.update()
|
self.update()
|
||||||
@@ -126,11 +135,13 @@ class _TaskPanel:
|
|||||||
self.clmax = self.mesh_obj.CharacteristicLengthMax
|
self.clmax = self.mesh_obj.CharacteristicLengthMax
|
||||||
self.clmin = self.mesh_obj.CharacteristicLengthMin
|
self.clmin = self.mesh_obj.CharacteristicLengthMin
|
||||||
self.dimension = self.mesh_obj.ElementDimension
|
self.dimension = self.mesh_obj.ElementDimension
|
||||||
|
self.order = self.mesh_obj.ElementOrder
|
||||||
|
|
||||||
def set_mesh_params(self):
|
def set_mesh_params(self):
|
||||||
self.mesh_obj.CharacteristicLengthMax = self.clmax
|
self.mesh_obj.CharacteristicLengthMax = self.clmax
|
||||||
self.mesh_obj.CharacteristicLengthMin = self.clmin
|
self.mesh_obj.CharacteristicLengthMin = self.clmin
|
||||||
self.mesh_obj.ElementDimension = self.dimension
|
self.mesh_obj.ElementDimension = self.dimension
|
||||||
|
self.mesh_obj.ElementOrder = self.order
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"fills the widgets"
|
"fills the widgets"
|
||||||
@@ -138,6 +149,8 @@ class _TaskPanel:
|
|||||||
self.form.if_min.setText(self.clmin.UserString)
|
self.form.if_min.setText(self.clmin.UserString)
|
||||||
index_dimension = self.form.cb_dimension.findText(self.dimension)
|
index_dimension = self.form.cb_dimension.findText(self.dimension)
|
||||||
self.form.cb_dimension.setCurrentIndex(index_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"):
|
def console_log(self, message="", color="#000000"):
|
||||||
if (not isinstance(message, bytes)) and (sys.version_info.major < 3):
|
if (not isinstance(message, bytes)) and (sys.version_info.major < 3):
|
||||||
@@ -168,6 +181,12 @@ class _TaskPanel:
|
|||||||
self.form.cb_dimension.setCurrentIndex(index)
|
self.form.cb_dimension.setCurrentIndex(index)
|
||||||
self.dimension = str(self.form.cb_dimension.itemText(index)) # form returns unicode
|
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):
|
def get_gmsh_version(self):
|
||||||
from femmesh import gmshtools
|
from femmesh import gmshtools
|
||||||
version, full_message = gmshtools.GmshTools(self.mesh_obj, self.analysis).get_gmsh_version()
|
version, full_message = gmshtools.GmshTools(self.mesh_obj, self.analysis).get_gmsh_version()
|
||||||
|
|||||||
Reference in New Issue
Block a user