Merge remote-tracking branch 'origin/cbr/improve_topiivol_layout'

This commit is contained in:
Afeef 2022-11-04 09:08:49 +01:00
commit f305c4406f
7 changed files with 484 additions and 491 deletions

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2013-2022 EDF R&D # Copyright (C) 2013-2022 CEA/DES, EDF R&D
# #
# This library is free software; you can redistribute it and/or # This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2013-2022 EDF R&D # Copyright (C) 2013-2022 CEA/DES, EDF R&D
# #
# This library is free software; you can redistribute it and/or # This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
@ -48,19 +48,14 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
self.qpbMeshFile.clicked.connect(self.OnQpbMeshFileClicked) self.qpbMeshFile.clicked.connect(self.OnQpbMeshFileClicked)
self.qpbMeshFile.setToolTip("Select input DEM file") self.qpbMeshFile.setToolTip("Select input DEM file")
self.qpbClose.clicked.connect(self.OnQpbCloseClicked) self.qpbClose.clicked.connect(self.OnQpbCloseClicked)
self.qcbDistributed.stateChanged[int].connect(self.OnqcbDistributedClicked) self.qrbDist.clicked.connect(self.OnqrbDistClicked)
self.qlbXParts.setVisible(False) self.qrbPar.clicked.connect(self.OnqrbParClicked)
self.qlbYParts.setVisible(False) self.qrbSeq.clicked.connect(self.OnqrbSeqClicked)
self.qlbZParts.setVisible(False)
self.qsbXParts.setVisible(False)
self.qsbYParts.setVisible(False)
self.qsbZParts.setVisible(False)
self.SALOME_TMP_DIR = None self.SALOME_TMP_DIR = None
try: try:
self.qleTmpDir.setText(os.path.join('/tmp',getpass.getuser(),'top-ii-vol')) self.qleTmpDir.setText(os.path.join('/tmp',getpass.getuser(),'top-ii-vol'))
except: except:
self.qleTmpDir.setText('/tmp') self.qleTmpDir.setText('/tmp')
self.resize(800, 500)
self.outputMesh = '' self.outputMesh = ''
def OnQpbHelpClicked(self): def OnQpbHelpClicked(self):
@ -92,7 +87,7 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
zPoints = self.qsbZPoints.value() zPoints = self.qsbZPoints.value()
depth = self.qsbDepth.value() depth = self.qsbDepth.value()
nProcs = self.qsbNBprocs.value() nProcs = self.qsbNBprocs.value()
if not self.qcbDistributed.isChecked(): if not self.qrbDist.isChecked():
if nProcs == 1: if nProcs == 1:
shellCmd = "topIIvol_Mesher" shellCmd = "topIIvol_Mesher"
else: else:
@ -122,17 +117,29 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
pathlib.Path(self.SALOME_TMP_DIR).mkdir(parents=True, exist_ok=True) pathlib.Path(self.SALOME_TMP_DIR).mkdir(parents=True, exist_ok=True)
self.outputMesh= os.path.join(self.SALOME_TMP_DIR, inputMesh.split('/').pop().replace('.xyz','.mesh')) self.outputMesh= os.path.join(self.SALOME_TMP_DIR, inputMesh.split('/').pop().replace('.xyz','.mesh'))
shellCmd+= " --out " + self.outputMesh shellCmd+= " --out " + self.outputMesh
os.chdir(self.SALOME_TMP_DIR)
print("INFO: ", shellCmd) print("INFO: ", shellCmd)
myMonitorView=TopIIVolMeshMonitor(self, shellCmd) myMonitorView=TopIIVolMeshMonitor(self, shellCmd)
def OnqcbDistributedClicked(self): def OnqrbDistClicked(self):
state = self.qcbDistributed.isChecked() state = self.qrbDist.isChecked()
self.qlbXParts.setVisible(state) self.qgbDist.setEnabled(state)
self.qlbYParts.setVisible(state) self.qsbNBprocs.setEnabled(state)
self.qlbZParts.setVisible(state) self.qlbNBprocs.setEnabled(state)
self.qsbXParts.setVisible(state)
self.qsbYParts.setVisible(state) def OnqrbParClicked(self):
self.qsbZParts.setVisible(state) state = self.qrbPar.isChecked()
self.qgbDist.setEnabled(not state)
self.qsbNBprocs.setEnabled(state)
self.qlbNBprocs.setEnabled(state)
def OnqrbSeqClicked(self):
state = self.qrbSeq.isChecked()
if state:
self.qsbNBprocs.setValue(1)
self.qgbDist.setEnabled(not state)
self.qsbNBprocs.setEnabled(not state)
self.qlbNBprocs.setEnabled(not state)
def OnQpbCloseClicked(self): def OnQpbCloseClicked(self):
self.close() self.close()

View File

@ -6,22 +6,29 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>780</width> <width>758</width>
<height>411</height> <height>400</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Tetra Mesh from cloud of xyz points mesh generator</string> <string>Tetrahedral mesh generator for DEM point-clouds</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>761</width>
<height>101</height>
</rect>
</property>
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>10</pointsize>
@ -30,15 +37,18 @@
<property name="title"> <property name="title">
<string>Input Mesh</string> <string>Input Mesh</string>
</property> </property>
<widget class="QPushButton" name="qpbMeshFile"> <layout class="QGridLayout" name="gridLayout_2">
<property name="geometry"> <item row="0" column="1">
<rect> <widget class="QLineEdit" name="qleMeshFile">
<x>10</x> <property name="font">
<y>50</y> <font>
<width>151</width> <pointsize>10</pointsize>
<height>31</height> </font>
</rect>
</property> </property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="qpbMeshFile">
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>10</pointsize>
@ -54,378 +64,24 @@
</size> </size>
</property> </property>
</widget> </widget>
<widget class="QLineEdit" name="qleMeshFile"> </item>
<property name="geometry"> </layout>
<rect>
<x>170</x>
<y>50</y>
<width>531</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
</widget> </widget>
</widget> </item>
<widget class="QGroupBox" name="gbOptions"> <item row="3" column="0">
<property name="geometry"> <spacer name="verticalSpacer_2">
<rect> <property name="orientation">
<x>10</x> <enum>Qt::Vertical</enum>
<y>120</y>
<width>761</width>
<height>231</height>
</rect>
</property> </property>
<property name="title"> <property name="sizeHint" stdset="0">
<string>Options</string> <size>
</property> <width>20</width>
<widget class="QSpinBox" name="qsbXPoints"> <height>40</height>
<property name="geometry"> </size>
<rect>
<x>10</x>
<y>30</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
<widget class="QLabel" name="qlXpoints">
<property name="geometry">
<rect>
<x>80</x>
<y>30</y>
<width>201</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Number of points in X direction</string>
</property>
</widget>
<widget class="QSpinBox" name="qsbYPoints">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
<widget class="QSpinBox" name="qsbZPoints">
<property name="geometry">
<rect>
<x>10</x>
<y>110</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
<widget class="QLabel" name="qlYpoints">
<property name="geometry">
<rect>
<x>80</x>
<y>70</y>
<width>211</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Number of points in Y direction</string>
</property>
</widget>
<widget class="QLabel" name="qlZpoints">
<property name="geometry">
<rect>
<x>80</x>
<y>110</y>
<width>211</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Number of points in Z direction</string>
</property>
</widget>
<widget class="QSpinBox" name="qsbDepth">
<property name="geometry">
<rect>
<x>10</x>
<y>150</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>-999999999</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
<widget class="QLabel" name="qlDepth">
<property name="geometry">
<rect>
<x>80</x>
<y>150</y>
<width>201</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Depth in Z direction</string>
</property>
</widget>
<widget class="QCheckBox" name="qcbDistributed">
<property name="geometry">
<rect>
<x>630</x>
<y>30</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="qlbNbProcs">
<property name="geometry">
<rect>
<x>370</x>
<y>30</y>
<width>151</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Number of processors</string>
</property>
</widget>
<widget class="QLabel" name="qlDistributed">
<property name="geometry">
<rect>
<x>660</x>
<y>30</y>
<width>101</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Distributed</string>
</property>
</widget>
<widget class="QLabel" name="qlbXParts">
<property name="geometry">
<rect>
<x>370</x>
<y>70</y>
<width>261</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Number of partitions in X direction</string>
</property>
</widget>
<widget class="QLabel" name="qlbYParts">
<property name="geometry">
<rect>
<x>370</x>
<y>110</y>
<width>251</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Number of partitions in Y direction</string>
</property>
</widget>
<widget class="QLabel" name="qlbZParts">
<property name="geometry">
<rect>
<x>370</x>
<y>150</y>
<width>251</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Number of partitions in Z direction</string>
</property>
</widget>
<widget class="QSpinBox" name="qsbNBprocs">
<property name="geometry">
<rect>
<x>300</x>
<y>30</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
<widget class="QSpinBox" name="qsbXParts">
<property name="geometry">
<rect>
<x>300</x>
<y>70</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
<widget class="QSpinBox" name="qsbYParts">
<property name="geometry">
<rect>
<x>300</x>
<y>110</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
<widget class="QSpinBox" name="qsbZParts">
<property name="geometry">
<rect>
<x>300</x>
<y>150</y>
<width>62</width>
<height>22</height>
</rect>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
<widget class="QLineEdit" name="qleTmpDir">
<property name="geometry">
<rect>
<x>10</x>
<y>200</y>
<width>611</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="qlTmpDir">
<property name="geometry">
<rect>
<x>10</x>
<y>180</y>
<width>391</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Workspace</string>
</property>
</widget>
<widget class="QCheckBox" name="qcbDisplayMesh">
<property name="geometry">
<rect>
<x>630</x>
<y>70</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="qlDisplayMesh">
<property name="geometry">
<rect>
<x>660</x>
<y>70</y>
<width>101</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Display mesh</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>370</y>
<width>761</width>
<height>27</height>
</rect>
</property> </property>
</spacer>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QPushButton" name="qpbCompute"> <widget class="QPushButton" name="qpbCompute">
@ -467,8 +123,333 @@
</widget> </widget>
</item> </item>
</layout> </layout>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="gbOptions">
<property name="title">
<string>Options</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="0" rowspan="2" colspan="2">
<widget class="QGroupBox" name="qgbNBpoints">
<property name="title">
<string>Number of points</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QSpinBox" name="qsbXPoints">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget> </widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="qlXpoints">
<property name="text">
<string>X direction</string>
</property>
</widget> </widget>
</item>
<item row="1" column="0">
<widget class="QSpinBox" name="qsbYPoints">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="qlYpoints">
<property name="text">
<string>Y direction</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="qsbZPoints">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="qlZpoints">
<property name="text">
<string>Z direction</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="3" rowspan="2" colspan="3">
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Meshing</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QRadioButton" name="qrbSeq">
<property name="text">
<string>Sequential</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="qrbPar">
<property name="text">
<string>Parallel</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="qrbDist">
<property name="text">
<string>Parallel distributed</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="6">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="7">
<widget class="QSpinBox" name="qsbNBprocs">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="0" column="8">
<widget class="QLabel" name="qlbNBprocs">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Number of processors</string>
</property>
</widget>
</item>
<item row="1" column="7" rowspan="3" colspan="2">
<widget class="QGroupBox" name="qgbDist">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>Number of partitions</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="1" column="0" colspan="2">
<widget class="QSpinBox" name="qsbYParts">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="1" column="2" colspan="2">
<widget class="QLabel" name="qlbYParts">
<property name="text">
<string>Y direction</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QLabel" name="qlbXParts">
<property name="text">
<string>X direction</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="qlbZParts">
<property name="text">
<string>Z direction</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QSpinBox" name="qsbZParts">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QSpinBox" name="qsbXParts">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="qsbDepth">
<property name="minimum">
<number>-999999999</number>
</property>
<property name="maximum">
<number>999999999</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="qlDepth">
<property name="text">
<string>Depth in Z direction</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QCheckBox" name="qcbDisplayMesh">
<property name="text">
<string/>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QLabel" name="qlDisplayMesh">
<property name="text">
<string>Display mesh</string>
</property>
</widget>
</item>
<item row="2" column="5">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>60</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<widget class="QLabel" name="qlTmpDir">
<property name="text">
<string>Workspace</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="9">
<widget class="QLineEdit" name="qleTmpDir">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>qpbMeshFile</tabstop>
<tabstop>qleMeshFile</tabstop>
<tabstop>qsbXPoints</tabstop>
<tabstop>qsbYPoints</tabstop>
<tabstop>qsbZPoints</tabstop>
<tabstop>qsbDepth</tabstop>
<tabstop>qsbNBprocs</tabstop>
<tabstop>qsbXParts</tabstop>
<tabstop>qsbYParts</tabstop>
<tabstop>qsbZParts</tabstop>
<tabstop>qleTmpDir</tabstop>
<tabstop>qpbCompute</tabstop>
<tabstop>qpbClose</tabstop>
<tabstop>qpbHelp</tabstop>
</tabstops>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (C) 2013-2022 EDF R&D # Copyright (C) 2013-2022 CEA/DES, EDF R&D
# #
# This library is free software; you can redistribute it and/or # This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public

View File

@ -1,7 +1,7 @@
Introduction Introduction
============ ============
**topIIvol** meshing tool provides sequential/parallel tools for creating volumetric tetrahedral meshes from a given topology (point-cloud `*.xyz`). **topIIvol** meshing tool provides sequential and parallel tools for creating volumetric tetrahedral meshes from a given terrain topology via digital elevation model (DEM point-cloud `*.xyz`). Via this plugin one could produce distributed meshes suitable for domain-decomposition based solvers or simply non distributed meshes (single mesh) suitable for a sequential/parallel solver.
Running topIIvol Plug-in Running topIIvol Plug-in
======================== ========================
@ -15,49 +15,54 @@ Running topIIvol Plug-in
**topIIVolMesh** Options **topIIVolMesh** Options
======================== ========================
Users have option of performing meshing via:
- *Sequential* mode: mesh computation in sequential and outputs a single mesh.
- *Parallel* mode: mesh computation in parallel and outputs a single mesh.
- *Parallel distributed* mode: mesh computation in parallel and outputs partitioned meshes.
Sequential mode Sequential mode
--------------- ---------------
If the number of processors is set to 1, **topIIvol_Mesher** sequential tool is called for creating volumetric tetrahedral meshes from a given topology. The volumetric mesh can be displayed in SALOME by ticking the "Display mesh" check-box. By default sequential meshing mode is activated. **topIIvol_Mesher** sequential tool is called for creating volumetric tetrahedral mesh for the given DEM point-cloud. The volumetric mesh can be displayed in SALOME by ticking the "Display mesh" check-box.
The list of input parameters are: The list of input parameters are:
- DEM input file: input point cloud file; - DEM input file: input point cloud file in .xyz format;
- Number of X points present in the input point cloud; - Number of X points present in the input point cloud;
- Number of Y points present in the input point cloud; - Number of Y points present in the input point cloud;
- Number of Z points intended in the z direction; - Number of Z points intended in the Z direction;
- Depth of the mesh needed; - Depth of the mesh needed;
- temporary directory for calculation. - temporary directory for calculation.
Parallel mode Parallel mode
--------------- ---------------
If the number of processors is greater than one, **topIIvol_ParMesher** parallel computing tool is called for creating volumetric tetrahedral meshes from a given topology. The volumetric mesh can be displayed in SALOME by ticking the "Display mesh" check-box. For larger meshes the parallel meshing mode can be activated via the check-box **Parallel**. Additionally, this requires the user to provide the number of processors to be used for parallel meshing. Then, **topIIvol_ParMesher** parallel computing tool is called for creating volumetric tetrahedral mesh for the given DEM point-cloud. The volumetric mesh can be displayed in SALOME by ticking the "Display mesh" check-box.
The list of input parameters are: The list of input parameters are:
- DEM input file: input point cloud file; - DEM input file: input point cloud file in .xyz format;
- Number of X points present in the input point cloud; - Number of X points present in the input point cloud;
- Number of Y points present in the input point cloud; - Number of Y points present in the input point cloud;
- Number of Z points intended in the z direction; - Number of Z points intended in the Z direction;
- Depth of the mesh needed; - Depth of the mesh needed;
- Number of MPI ranks - Number of MPI ranks
- temporary directory for calculation. - temporary directory for calculation.
Distributed mode Parallel distributed mode
----------------- -----------------
If the check-box **Distributed** is ticked, **topIIvol_DistMesher** computing tool is called for creating embarassingly parallel distributed meshes from a given topology. For larger meshes suitable for distributed-memory solvers (domain-decomposition) the distributed parallel meshing mode can be activated via the check-box **Parallel distributed**. This requires the user to provide the number of processors to be used for parallel meshing and how to partition the mesh in each direction (X, Y, Z). Then, **topIIvol_DistMesher** computing tool is called for creating embarassingly parallel distributed meshes for the given DEM point-cloud. These volumetric mesh partitions can be displayed in SALOME by ticking the "Display mesh" check-box.
The list of input parameters are: The list of input parameters are:
- DEM input file: input point cloud file; - DEM input file: input point cloud file in .xyz format;
- Number of X points present in the input point cloud; - Number of X points present in the input point cloud;
- Number of Y points present in the input point cloud; - Number of Y points present in the input point cloud;
- Number of Z points intended in the z direction; - Number of Z points intended in the Z direction;
- Depth of the mesh needed;
- Number of partitions in X direction; - Number of partitions in X direction;
- Number of partitions in Y direction; - Number of partitions in Y direction;
- Number of partitions in Z direction; - Number of partitions in Z direction;
- Depth of the mesh needed;
- Number of MPI ranks - Number of MPI ranks
- temporary directory for calculation. - temporary directory for calculation.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -8,7 +8,7 @@ topIIvol plugin documentation
This documentation covers the usage of **top-ii-vol** as plug-in in SALOME that can be used within the SALOME This documentation covers the usage of **top-ii-vol** as plug-in in SALOME that can be used within the SALOME
Mesh module. Mesh module.
TopIIVolMesh plug-in uses CEA **top-ii-Vol** meshing tool,which provides sequential/parallel tools for creating volumetric tetrahedral meshes from a given topology. TopIIVolMesh plug-in uses CEA **top-ii-Vol** meshing tool, which provides sequential and parallel tools for creating volumetric tetrahedral meshes for a given terrain topology.
This plug-in offers only the most common functionalities of the tool. This plug-in offers only the most common functionalities of the tool.
Contents: Contents: