diff --git a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
index 4e370d04e..122c90e80 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
@@ -48,13 +48,9 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
self.qpbMeshFile.clicked.connect(self.OnQpbMeshFileClicked)
self.qpbMeshFile.setToolTip("Select input DEM file")
self.qpbClose.clicked.connect(self.OnQpbCloseClicked)
- self.qcbDistributed.stateChanged[int].connect(self.OnqcbDistributedClicked)
- self.qlbXParts.setVisible(False)
- self.qlbYParts.setVisible(False)
- self.qlbZParts.setVisible(False)
- self.qsbXParts.setVisible(False)
- self.qsbYParts.setVisible(False)
- self.qsbZParts.setVisible(False)
+ self.qrbDist.clicked.connect(self.OnqrbDistClicked)
+ self.qrbPar.clicked.connect(self.OnqrbParClicked)
+ self.qrbSeq.clicked.connect(self.OnqrbSeqClicked)
self.SALOME_TMP_DIR = None
try:
self.qleTmpDir.setText(os.path.join('/tmp',getpass.getuser(),'top-ii-vol'))
@@ -91,7 +87,7 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
zPoints = self.qsbZPoints.value()
depth = self.qsbDepth.value()
nProcs = self.qsbNBprocs.value()
- if not self.qcbDistributed.isChecked():
+ if not self.qrbDist.isChecked():
if nProcs == 1:
shellCmd = "topIIvol_Mesher"
else:
@@ -121,18 +117,30 @@ class TopIIVolMeshPluginDialog(Ui_TopIIVolMeshMainFrame,QWidget):
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'))
shellCmd+= " --out " + self.outputMesh
+ os.chdir(self.SALOME_TMP_DIR)
print("INFO: ", shellCmd)
myMonitorView=TopIIVolMeshMonitor(self, shellCmd)
- def OnqcbDistributedClicked(self):
- state = self.qcbDistributed.isChecked()
- self.qlbXParts.setVisible(state)
- self.qlbYParts.setVisible(state)
- self.qlbZParts.setVisible(state)
- self.qsbXParts.setVisible(state)
- self.qsbYParts.setVisible(state)
- self.qsbZParts.setVisible(state)
+ def OnqrbDistClicked(self):
+ state = self.qrbDist.isChecked()
+ self.qgbDist.setEnabled(state)
+ self.qsbNBprocs.setEnabled(state)
+ self.qlbNBprocs.setEnabled(state)
+ def OnqrbParClicked(self):
+ 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):
self.close()
diff --git a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui
index b046f0eb5..4a449f09e 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui
@@ -6,12 +6,12 @@
0
0
- 663
- 298
+ 758
+ 400
- Tetra Mesh from cloud of xyz points mesh generator
+ Tetrahedral mesh generator for DEM point-clouds
-
@@ -129,25 +129,74 @@
Options
-
-
-
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
- -
-
-
- Number of points in X direction
+
+
-
+
+
+ Number of points
+
+
-
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ X direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ Y direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ Z direction
+
+
+
+
-
@@ -157,41 +206,63 @@
- 40
+ 0
20
- -
-
-
-
+
-
+
+
+ Meshing
+
+
-
+
+
+ Sequential
+
+
+ true
+
+
+
+ -
+
+
+ Parallel
+
+
+
+ -
+
+
+ Parallel distributed
+
+
+
+
- -
-
-
- Distributed
-
-
-
- -
-
+
-
+
Qt::Horizontal
- 40
+ 0
20
- -
+
-
+
+ false
+
0
@@ -203,121 +274,92 @@
- -
-
+
-
+
+
+ false
+
Number of processors
- -
-
-
- Qt::Horizontal
+
-
+
+
+ false
-
-
- 45
- 20
-
+
+ Number of partitions
-
-
- -
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
- -
-
-
- Number of points in Y direction
-
-
-
- -
-
-
-
-
-
-
- -
-
-
- Display mesh
-
-
-
- -
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
- -
-
-
- Number of partitions in X direction
+
+ false
+
+
-
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+ -
+
+
+ Y direction
+
+
+
+ -
+
+
+ X direction
+
+
+
+ -
+
+
+ Z direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+
-
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
- -
-
-
- Number of points in Z direction
-
-
-
- -
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
- -
-
-
- Number of partitions in Y direction
-
-
-
- -
-999999999
@@ -330,41 +372,51 @@
- -
+
-
Depth in Z direction
- -
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
- -
-
+
-
+
- Number of partitions in Z direction
+
+
+
+ true
- -
+
-
+
+
+ Display mesh
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 60
+ 20
+
+
+
+
+ -
Workspace
- -
+
-
@@ -389,12 +441,10 @@
qsbYPoints
qsbZPoints
qsbDepth
- qcbDistributed
qsbNBprocs
qsbXParts
qsbYParts
qsbZParts
- qcbDisplayMesh
qleTmpDir
qpbCompute
qpbClose
diff --git a/src/Tools/TopIIVolMeshPlug/doc/TopIIVolMesh.rst b/src/Tools/TopIIVolMeshPlug/doc/TopIIVolMesh.rst
index 48e3f873a..b9d871d31 100644
--- a/src/Tools/TopIIVolMeshPlug/doc/TopIIVolMesh.rst
+++ b/src/Tools/TopIIVolMeshPlug/doc/TopIIVolMesh.rst
@@ -1,7 +1,7 @@
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
========================
@@ -15,49 +15,54 @@ Running topIIvol Plug-in
**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
---------------
-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:
-- 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 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;
- temporary directory for calculation.
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:
-- 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 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 MPI ranks
- 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:
-- 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 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 Y direction;
- Number of partitions in Z direction;
-- Depth of the mesh needed;
- Number of MPI ranks
- temporary directory for calculation.
diff --git a/src/Tools/TopIIVolMeshPlug/doc/images/callTopIIVolMesh.png b/src/Tools/TopIIVolMeshPlug/doc/images/callTopIIVolMesh.png
index 72a9d5d943..867b73af2 100644
Binary files a/src/Tools/TopIIVolMeshPlug/doc/images/callTopIIVolMesh.png and b/src/Tools/TopIIVolMeshPlug/doc/images/callTopIIVolMesh.png differ
diff --git a/src/Tools/TopIIVolMeshPlug/doc/index.rst b/src/Tools/TopIIVolMeshPlug/doc/index.rst
index 3cd237947..a54ffdb8a 100644
--- a/src/Tools/TopIIVolMeshPlug/doc/index.rst
+++ b/src/Tools/TopIIVolMeshPlug/doc/index.rst
@@ -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
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.
Contents: