Salome HOME
merge V5_1_4
[modules/smesh.git] / doc / salome / gui / SMESH / input / ghs3dprl_hypo.doc
index 40ffb918ce86645b45ac4a36f6ee7209c728867b..a7f69dfc82c2de5129847ae1627beef252381da5 100644 (file)
@@ -2,20 +2,23 @@
 
 \page ghs3dprl_hypo_page GHS3DPRL Parameters hypothesis
 
-\n GHS3DPRL Parameters hypothesis works only with <b>Tetrahedron (Tepal with TetMesh-GHS3D)</b> algorithm.
+\n GHS3DPRL Parameters hypothesis works only with <b>Tetrahedron (Tepal with TetMesh-GHS3D)</b> algorithm. 
+This algorithm is a commercial software, its use requires a licence (http://www.distene.com/fr/build/offer.html).
+\n Tepal_V1.4 gives the possibility to generate a partitioned
+mesh with 200 million tetrahedrons on a computer with average memory size
+(2Go RAM) in about 50 hours on one CPU (Xeon, 2008).
+\n New Tepal_V2.0 gives the possibility to generate a partitioned mesh with (for the moment) no more than 100 million 
+tetrahedrons on computers using MPI, (Total 16 Go RAM) 
+in about 900 seconds (!yes! : !seconds!) on 2 octo processors (Xeon, 2009).
+The launch of this beta-version is described below.
+\n This is a serious alternative to GHS3D, which requires a much less common
+configuration with 64Go RAM to only try to make a partition of a mesh with
+200 million tetrahedrons, no result guaranteed.
 \n
-\n This algorithm is a commercial software, its use requires a licence (http://www.distene.com/fr/build/offer.html).
-\n The advantage of Tepal is the possibility to generate (for example) a <em>partitioned</em> 
-200 million tetrahedra mesh on a not-so-big memory computer (2Go RAM) 
-...in something like 50 hours of <em>one</em> CPU (Xeon, 2008). 
-This is an alternative to Pluging GHS3D where you should need something like a not-so-common CPU with 64Go RAM 
-<em>to try</em> to do a one-partitionned 200 million tetrahedra mesh ...in a much less time indeed.
-\n
-\n Notes:
-\n This Plugin <em>doesn't</em> load in Memory the supposed plentiful big resulting meshes. 
-It's user choice: (in GUI Mesh mode) menu File-Import-MED Files.
-\n Beware, to load one 5 millions tetrahedra MED file, GUI Salome needs 2Go RAM.
-\n A new true parallel faster version of Tepal, using MPI, is expected in 2009.
+\note The Plugin doesn't load in the Memory the supposedly large resulting meshes. 
+The meshes are saved in MED files and can be imported in the user-defined location via menu File-Import-MED Files.
+\n Pay attention, that Salome GUI needs 2Go RAM to load a MED
+file with 5 million tetrahedrons.
 
 \image html ghs3dprl_parameters_basic.png
 
@@ -24,39 +27,44 @@ It's user choice: (in GUI Mesh mode) menu File-Import-MED Files.
 <b>Name</b> - allows to define the name of the hypothesis (GHS3DPRL Parameters by default).
 </li>
 <li>
-<b>MED_Name</b> - allows to define the path and the basename of the 
-generated resulted MED files ("DOMAIN" by default). 
-Undefined path means environment variable $SALOME_TMP_DIR (or $TMP by default).
+<b>MED_Name</b> - allows to define the path and the prefix of the 
+resulting MED files ("DOMAIN" by default). 
+If the path is not defined, the environment variable $SALOME_TMP_DIR
+is used. If $SALOME_TMP_DIR is not defined as well, the environment
+variable $TMP is used.
 </li>
 <li>
-<b>Nb_Part</b> - allows to define the number of MED files generated, 
-the initial skin (triangles) will be meshed (tetrahedra) and partitioned 
-in Nb_Part by the <i>elementary</i> algorithm implemented in Tepal.<br>
-Beware, the (expected) number of total tetrahedra versus this parameter 
-involves the maximum tepal RAM use.
+<b>Nb_Part</b> - allows to define the number of generated MED files.
+The initial skin (triangles) will be meshed (tetrahedrons) and partitioned 
+in Nb_Part by the elementary algorithm implemented in Tepal.<br>
 </li>
 <li>
 <b>Keep_Files</b> - if this box is checked, input files of Tepal 
-(GHS3DPRL.points and GHS3DPRL.faces) are deleted after use (...if no backgrounding).
+(GHS3DPRL.points and GHS3DPRL.faces) are not deleted after use (...if the
+background mode was not used).
 </li>
 <li>
-<b>Tepal_in_Background</b> - if this box is checked, for big meshes, 
-launch Tepal execution and MED file generation in background, 
-allows user exiting of Salome. In this case, beware of the 
-job Tepal is "killSalome.py" <i>independent</i>, sometimes on other host.
+<b>Tepal_in_Background</b> - if this box is checked, Tepal execution
+and MED file generation are launched in background mode and the user
+can even exit Salome. Pay attention that in this case Tepal algorithm works
+independently of "killSalome.py", and sometimes on another host.
 </li>
 <li>
-<b>To_Mesh_Holes</b> - if this box is checked, force parameter component 
-of tetmesh-ghs3d to mesh holes.
+<b>To_Mesh_Holes</b> - if this box is checked, the parameter component 
+of tetmesh-ghs3d will mesh holes.
 </li>
 
 <h1>Modifying GHS3DPRL Advanced Parameters</h1><br>
-GHS3DPRL Plugin launches standalone binary executable tepal2med which launches binary executable tepal.<br>
-tepal2med launches tepal, wait for the end of computation, and converts resulting output tepal files in expected MED files.<br>
-Some advanced optional parameters are accessibles as arguments.<br>
-If keep_files checked you a posteriori can always re-launch tepal2med in a Terminal as a command with yours parameters.<br>Idem for tepal.<br><br>
+GHS3DPRL Plugin launches a standalone binary executable tepal2med.<br>
+tepal2med launches tepal, waits for the end of computation, and
+converts the resulting output tepal files into MED files.<br>
+Some advanced optional parameters are accessible as arguments.<br>
+
+If keep_files option is checked, it is possible to re-launch tepal2med
+or tepal in the Terminal as a command with custom parameters.<br>
+
 <li>
-<b>Advanced tepal2med Parameters</b> - type "tepal2med --help" in a Terminal. <p>
+<b>Advanced tepal2med Parameters</b> - type "tepal2med --help" in the Terminal. <p>
 
 \verbatim
 myname@myhost > /export/home/myname/salome_5/GHS3DPRLPLUGIN_5/bin/salome/tepal2med --help
@@ -83,86 +91,62 @@ example:
              --verbose=0 --test=yes --menu=no --launchtepal=no
 
 \endverbatim
-
+\n
 </li>
 <li>
-<p>
-<b>Advanced tepal Parameters</b> - type "tepal" in a Terminal. <p>
+<b>Advanced Tepal_V1.4 Parameters</b> <p>
 
 \verbatim
-myname@myhost > tepal
-    =====================================
-    GHS3D-TEPAL 1.4.2 (Dec, 2006)               10-Dec-2008 AT 12:59:48
-    =====================================
-
- Distene SAS
-         Pole Teratec - BARD-1
-         Domaine du Grand Rue
-         91680 Bruyeres le Chatel
-         FRANCE
- Phone: +33(0)1-69-26-62-10   Fax: +33(0)1-69-26-90-33
- EMail: support@distene.com
-
-  COPYRIGHT (C)2006 DISTENE ALL RIGHTS RESERVED
-
 
 USAGE : tepal options
 
-With options in :
+With options :
      --filename name (-f name) :
-          Basename of the input case (MANDATORY)
+          Prefix of the input case (MANDATORY)
 
      --ndom n (-n n) :
           Number of subdomains to make (MANDATORY)
 
      --ghs3d ghs3d options (-g ghs3d options) :
-          Run temesh ghs3d on a previously generated subdomain. (ghs3d options must be "quoted")
+          Runs temesh ghs3d on a previously generated subdomain. (ghs3d options must be "quoted")
 
      --memory m (-m m) :
           Max amount of memory (megabytes) allowed for ghs in the cutting process. (default is 0 : unlimited)
 
      --mesh_only  (-Z ) :
-          Only (re)mesh all subdomains and update communications messages
+          Only (re)meshes all subdomains and updates communications messages
 
      --mesh_call command (-c command) :
-          Call the user specified command for meshing all the subomains after their skin was generated
+          Calls the user specified command for meshing all the
+          subomains after their skin has been generated
 
      --stats_only  (-S ) :
-          Only compute and show some statistics on subdomains
+          Only computes and shows some statistics on subdomains
 
      --rebuild  (-r ) :
-          Merge final subdomains skins
+          Merges final subdomains skins
 
      --rebuild_tetra  (-R ) :
-          Merge final subdomains skins and tetraedra
+          Merges final subdomains skins and tetraedra
 
      --rebuild_iface  (-i ) :
-          Include interfaces in final subdomains merge
+          Includes interfaces in final subdomains merge
 
      --rebuild_retag  (-t ) :
-          Tag vertices, faces (and tetra if selected) with their subdomain number in final subdomains merge (keeps the lowest tag for shared elements)
+          Tags vertices, faces (and tetra if selected) with their
+          subdomain number in the final merge of subdomains (keeps the lowest tag for shared elements)
 
      --rebuild_ensight_parts  (-e ) :
-          Build ensight geom file with parts
+          Builds ensight geom file with parts
 
      --tetmesh_args str (-G str) :
           Arguments to pass to Tetmesh during cutting process
 
- ==============================================================================
-                   GHS3D-TEPAL SOFTWARE 1.4.2 (Dec, 2006)
-                                 END OF SESSION
-                COPYRIGHT (C)2006 DISTENE ALL RIGHTS RESERVED
- ==============================================================================
-      ( Distene SAS
-        Phone: +33(0)1-69-26-62-10   Fax: +33(0)1-69-26-90-33
-        EMail: support@distene.com )
-
 \endverbatim
-
+\n
 </li>
 <li>
-<p>
-<b>Advanced ghs3d Parameters (through tepal's --tetmesh_args)</b> - type "ghs3d -h" in a Terminal. <p>
+<b>Advanced ghs3d Parameters (through Tepal_V1.4's --tetmesh_args)</b> - type "ghs3d -h" in a Terminal. <p>
 
 \verbatim
 myname@myhost > ghs3d -h
@@ -177,7 +161,7 @@ DESCRIPTION
 
  -u (-h)        : prints this message.
 
- -m memory      : launches the software with memory Megabytes of work space.
+ -m memory      : launches the software with memory in Megabytes.
                   The default value of this parameter is 64 Megabytes and its
                   minimum value is 10 Megabytes.
                   It is also possible to set this parameter with the
@@ -187,48 +171,46 @@ DESCRIPTION
                   the value specified in the command line has the priority on
                   the environment variable.
 
- -M MEMORY      : uses the automatic memory adjustment feature.
-                  If MEMORY is zero, the size of the work space is initially
-                  guessed from the input. If MEMORY is not zero, the
-                  software starts with MEMORY Megabytes of work space.
-                  The software then reallocates more and more memory as
-                  needed.
-                  The starting value when MEMORY equals 0 is 64 Megabytes,
-                  the maximum is given with memory of the -m option if used
-                  and the actual memory available.
+ -M MEMORY      : provides the automatic memory adjustment feature.
+                  If MEMORY (in Megabytes) is equal to zero, the size of the work space is
+                  calculated from the input. If MEMORY is not equal to
+                  zero, the software starts with MEMORY amount of work space.
+                  The software reallocates memory as necessary.
+                  The start value of  MEMORY can range from 0 to 64 Megabytes,
+                  the maximum depends on -m option and the actual memory available.
 
  -f prefix      : defines the generic prefix of the files.
 
  -v verbose     : sets the output level parameter (the verbose parameter
                   must be in the range 0 to 10).
 
- -c component   : chooses the meshed component. If component is
-                      0, all components to be meshed
-                      1, only the main (outermost) component to be meshed
+ -c component   : chooses the meshed component. If the parameter is
+                      0, all components will be meshed, if
+                      1, only the main (outermost) component will be meshed
 
  -p0            : disables creation of internal points.
 
- -C             : uses alternate boundary recovery version. To be used only
-                  when the boundary recovery of the standard version fails.
+ -C             : uses an alternative boundary recovery mechanism. It should be used only
+                  when the standard boundary recovery fails.
 
  -E count       : sets the extended output for error messages. If -E is used,
-                  the error messages found will be printed, up to a maximum
-                  count of errors between 1 and 100.
+                  the error messages will be printed, it is possible
+                  to indicate the maximum number of printed messages between 1 and 100.
 
  -t             : generates an error file prefix.Log
 
- -o level       : sets the desired optimisation level.
+ -o level       : sets the required optimisation level.
                   Valid optimisation levels are:
-                  none, light, medium or standard, strong,
-                  in increasing order of "quality vs speed" ratio.
+                  none, light, standard or strong,
+                  with increase of "quality vs speed" ratio.
 
  -I filetype    : defines the input mesh format as follows:
                     -IP input files are ascii files, named prefix.points
-                     and prefix.faces - this is the default
+                     and prefix.faces - this is the default type of files
                     -IPb input files are binary files, named prefix.pointsb
                      and prefix.facesb
                     -IM input file is ascii file, named prefix.mesh
-                  where prefix is given with the -f option
+                  where prefix is defined with -f option
 
  -a/-b          : selects the output file type:
                     -a for ascii (the default) and
@@ -249,13 +231,16 @@ DESCRIPTION
         EMail: support@distene.com )
 
 \endverbatim
-
+\n
 </li>
 <h1>Saving user's preferred GHS3DPRL Advanced Parameters</h1><br>
 GHS3DPRL Plugin launches standalone binary executable tepal2med.<br>
-you may rename tepal2med as tepal2med.exe for example, and replace tepal2med by a shell script at your convenience to overriding parameters.<br>... or else $PATH modification... .<br>Idem for tepal.<br><br>
+You may rename file tepal2med as tepal2med.exe for example, and replace
+tepal2med by a shell script at your convenience to overriding parameters.
+<br>... or else $PATH modification... .<br>Idem for file tepal.<br><br>
 <li>
 <b>Advanced tepal2med Parameters</b> - overriding parameter deletegroups<p>
+You may rename tepal2med as tepal2med.exe for example.
 
 \code
 #!/bin/bash
@@ -267,11 +252,11 @@ you may rename tepal2med as tepal2med.exe for example, and replace tepal2med by
 tepal2med.exe $* --deletegroups="(\bAll_Nodes|\bAll_Faces)"
 
 \endcode
-
+\n
 </li>
 <li>
-<p>
-<b>Advanced tepal Parameters</b> - overriding parameter component of ghs3d (to mesh holes). <p>
+<b>Advanced Tepal_V1.4 Parameters</b> - overriding parameter component of ghs3d (to mesh holes). <p>
+You may rename tepal as tepal.exe for example.
 
 \code
 #!/bin/bash
@@ -286,11 +271,11 @@ SIMULOGD_LICENSE_FILE=29029@is142356
 tepal.exe $* --tetmesh_args "-c 0"
 
 \endcode
-
+\n
 </li>
 <li>
-<p>
 <b>Advanced tepal Parameters</b> - overriding launching tepal on other host. <p>
+You may rename tepal as tepal.exe for example.
 
 \code
 #!/bin/bash
@@ -310,13 +295,107 @@ ssh otherhost "tepal.exe $* > /home/myname/tmp/tepal.log"
 #ssh otherhost "tepal.exe $* --tetmesh_args \"-c 0\"" > /home/myname/tmp/tepal.log
 
 \endcode
+\n
+</li>
+
+<h1>Tepal_V2.0 and MPI use.</h1><br>
+This all new beta-version needs MPI, (openmpi-1.3.1 was used). To use it you have to proceed 
+as done in "overriding parameter component of ghs3d".
+Advanced ghs3d Parameters (through Tepal_V1.4's --tetmesh_args) are not assumed yet.
+It meshes holes.
+\n You may rename tepal as tepal64_v2.exe for example, and replace tepal by a shell script like below.
+
+<li>
+<b>example tepal_v2_mpirun.</b><p>
+
+\code
+
+#!/bin/bash
+#script tepal overriding launching Tepal_V2.0 with MPI (tepal run 64 bits only).
+#we have renamed binary executable tepal as tepal64_v2.exe.
+#typical command to launch tepal v1 :
+#tepal -f /tmp/myname/GHS3DPRL -n 16 > /tmp/myname/tepal.log
+#this file is an exemple to transform this call for tepal v2.0, 
+#   (beta version using .mesh input file)
+#you have to adapt for your convenience.
+
+#first problem  is convert v1 input files GHS3DPRL.faces and GHS3DPRL.points 
+#               to v2 input file GHS3DPRL.mesh.
+#second problem is to launch on heterogeneous system linux cluster of 
+#               2 hosts (64 bits) of 8 nodes (by example)
+#               with different 2 executables codes linked on 2 different
+#               openmpi shared library codes.
+#third problem  is convert tepal v2 output files GHS3DPRL*.mesh
+#               to v1 input files GHS3DPRL*.faces an GHS3DPRL*.points.
+
+#you have to work on the same physical disk and same path input and ouput files : $SAME_DIR
+#you have to work on different physical disk but same path and name for executable files 
+#    (and shared libraries) : $DIFF_DIR
+
+echo "parameter 0="$0
+echo "parameter 1="$1
+echo "parameter 2="$2
+echo "parameter 3="$3
+echo "parameter 4="$4
+
+export SAME_DIR=/same_physical_disk_and_same path/tmp
+export DIFF_DIR=/different_physical_disk_but_same path/myname
+
+#copy input local files from local current directory (something like /tmp/myname)
+#in this case we need /tmp/myname and $SAME_DIR different
+cd $SAME_DIR
+rm *
+cp $2* .
+
+export IN_FILES=`basename $2`
+export IN_DIR=`dirname $2`
+#created .mesh from .faces et .points
+/through_salome_path/facespoints2mesh.py $IN_FILES
+
+#there are 2 executable openmpi and library through 2 physical DIFF_DIR
+export PATH=$DIFF_DIR/openmpi-1.3.1_install/bin:${PATH}
+export LD_LIBRARY_PATH=$DIFF_DIR/openmpi-1.3.1_install/lib:${LD_LIBRARY_PATH}
+
+#there are 2 executables tepal_v2 through 2 physical DIFF_DIR
+export LD_LIBRARY_PATH=$DIFF_DIR/tepal-2.0.0/bin/Linux_64:${LD_LIBRARY_PATH}
+export PATH=$DIFF_DIR/tepal-2.0.0/bin/Linux_64:$PATH
+
+#small test betweeen friends
+#rm hostnames.log
+#mpirun -n $4 hostname >> hostnames.log
+
+#there necessary set env licence file for tepal v2
+export DISTENE_LICENSE_FILE="Use global envvar: DLIM8VAR"
+export DLIM8VAR="dlim8 1:1:29030@is142356/0016175ef08c::a1ba...9e19"
+export SIMULOGD_LICENSE_FILE=29029@is142356 
+export LICENSE_FILE=/product/distene/dlim8.var.sh
+
+#mpirun with necessary set envenvironment
+export TMP_ENV="-x PATH -x LD_LIBRARY_PATH -x DISTENE_LICENSE_FILE -x DLIM8VAR \
+                -x SIMULOGD_LICENSE_FILE -x LICENSE_FILE"
+#mpirun $TMPENV -n $4 which tepal64_v2.exe >> hostnames.log
+
+#real mpirun uncomment after verify small test
+mpirun $TMPENV -n $4 tepal64_v2.exe --in $IN_FILES.mesh --out $IN_FILES.mesh --verbose 100
+
+#convert output files tepalv1 format
+/through_salome_path/mesh2facespoints.py $IN_FILES
+
+#copy ouputs files from $SAME_DIR to local current directory (something like /tmp/myname)
+cp -f hostnames.log $IN_DIR
+cp -f $IN_FILES* $IN_DIR
+
+#ls -al $SAME_DIR
+#cat $SAME_DIR/hostnames.log
+#cat /tmp/myname/tepal.log
 
+\endcode
+\n
 </li>
 
 <h1>TUI use.</h1><br>
 
 <li>
-<p>
 <b>example ex30_tepal.py.</b><p>
 
 \code
@@ -384,7 +463,7 @@ if os.access(results+".xml", os.F_OK):
 else:
     print "KO: tepal"
 \endcode
-
+\n
 </li>
 </ul>