diff --git a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshMonitor.py b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshMonitor.py
index e3ff5076c..29508910f 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshMonitor.py
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshMonitor.py
@@ -1,5 +1,5 @@
# -*- 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
# modify it under the terms of the GNU Lesser General Public
diff --git a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
index 73b5fc7d2..122c90e80 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.py
@@ -1,5 +1,5 @@
# -*- 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
# 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.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'))
except:
self.qleTmpDir.setText('/tmp')
- self.resize(800, 500)
self.outputMesh = ''
def OnQpbHelpClicked(self):
@@ -92,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:
@@ -122,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 c148582f6..4a449f09e 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPluginDialog.ui
@@ -6,469 +6,450 @@
0
0
- 780
- 411
+ 758
+ 400
- Tetra Mesh from cloud of xyz points mesh generator
+ Tetrahedral mesh generator for DEM point-clouds
-
-
-
- 10
- 10
- 761
- 101
-
-
-
-
- 10
-
-
-
- Input Mesh
-
-
-
-
- 10
- 50
- 151
- 31
-
-
-
-
- 10
-
-
-
- DEM input file
-
-
-
- 18
- 18
-
-
-
-
-
-
- 170
- 50
- 531
- 31
-
-
-
-
- 10
-
-
-
-
-
-
-
- 10
- 120
- 761
- 231
-
-
-
- Options
-
-
-
-
- 10
- 30
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
-
-
- 80
- 30
- 201
- 20
-
-
-
- Number of points in X direction
-
-
-
-
-
- 10
- 70
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
-
-
- 10
- 110
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 10
-
-
-
-
-
- 80
- 70
- 211
- 20
-
-
-
- Number of points in Y direction
-
-
-
-
-
- 80
- 110
- 211
- 20
-
-
-
- Number of points in Z direction
-
-
-
-
-
- 10
- 150
- 62
- 22
-
-
-
- -999999999
-
-
- 999999999
-
-
- 0
-
-
-
-
-
- 80
- 150
- 201
- 20
-
-
-
- Depth in Z direction
-
-
-
-
-
- 630
- 30
- 91
- 21
-
-
-
-
-
-
-
-
-
- 370
- 30
- 151
- 16
-
-
-
- Number of processors
-
-
-
-
-
- 660
- 30
- 101
- 16
-
-
-
- Distributed
-
-
-
-
-
- 370
- 70
- 261
- 16
-
-
-
- Number of partitions in X direction
-
-
-
-
-
- 370
- 110
- 251
- 16
-
-
-
- Number of partitions in Y direction
-
-
-
-
-
- 370
- 150
- 251
- 16
-
-
-
- Number of partitions in Z direction
-
-
-
-
-
- 300
- 30
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
-
-
- 300
- 70
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
-
-
- 300
- 110
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
-
-
- 300
- 150
- 62
- 22
-
-
-
- 0
-
-
- 999999999
-
-
- 1
-
-
-
-
-
- 10
- 200
- 611
- 23
-
-
-
-
-
-
-
-
-
- 10
- 180
- 391
- 16
-
-
-
- Workspace
-
-
-
-
-
- 630
- 70
- 91
- 21
-
-
-
-
-
-
-
-
-
- 660
- 70
- 101
- 16
-
-
-
- Display mesh
-
-
-
-
-
-
- 10
- 370
- 761
- 27
-
-
-
- -
-
-
- Compute
-
-
-
- -
-
-
- Close
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- 10
-
-
-
- Help
-
-
-
-
-
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ Input Mesh
+
+
+
-
+
+
+
+ 10
+
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ DEM input file
+
+
+
+ 18
+ 18
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
-
+
+
+ Compute
+
+
+
+ -
+
+
+ Close
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 10
+
+
+
+ Help
+
+
+
+
+
+ -
+
+
+ Options
+
+
+
-
+
+
+ Number of points
+
+
+
-
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ X direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ Y direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 10
+
+
+
+ -
+
+
+ Z direction
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 0
+ 20
+
+
+
+
+ -
+
+
+ Meshing
+
+
+
-
+
+
+ Sequential
+
+
+ true
+
+
+
+ -
+
+
+ Parallel
+
+
+
+ -
+
+
+ Parallel distributed
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 0
+ 20
+
+
+
+
+ -
+
+
+ false
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+ -
+
+
+ false
+
+
+ Number of processors
+
+
+
+ -
+
+
+ false
+
+
+ Number of partitions
+
+
+ false
+
+
+
-
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+ -
+
+
+ Y direction
+
+
+
+ -
+
+
+ X direction
+
+
+
+ -
+
+
+ Z direction
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+ 1
+
+
+
+
+
+
+ -
+
+
+ -999999999
+
+
+ 999999999
+
+
+ 0
+
+
+
+ -
+
+
+ Depth in Z direction
+
+
+
+ -
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ Display mesh
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 60
+ 20
+
+
+
+
+ -
+
+
+ Workspace
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ qpbMeshFile
+ qleMeshFile
+ qsbXPoints
+ qsbYPoints
+ qsbZPoints
+ qsbDepth
+ qsbNBprocs
+ qsbXParts
+ qsbYParts
+ qsbZParts
+ qleTmpDir
+ qpbCompute
+ qpbClose
+ qpbHelp
+
diff --git a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPlugin_plugin.py b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPlugin_plugin.py
index a7da12718..0db8f9d3c 100644
--- a/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPlugin_plugin.py
+++ b/src/Tools/TopIIVolMeshPlug/TopIIVolMeshPlugin_plugin.py
@@ -1,5 +1,5 @@
# -*- 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
# modify it under the terms of the GNU Lesser General Public
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: