Salome HOME
mg-hybrid.exe_Linux_64_juillet2014 et maj doc CASSIS_V1.0
authorChristian Van Wambeke <christian.van-wambeke@cea.fr>
Fri, 11 Jul 2014 14:25:32 +0000 (16:25 +0200)
committerChristian Van Wambeke <christian.van-wambeke@cea.fr>
Fri, 11 Jul 2014 14:25:32 +0000 (16:25 +0200)
34 files changed:
bin/CMakeLists.txt
bin/mg-hybrid.bash [new file with mode: 0755]
bin/mg-hybrid.exe [deleted file]
bin/mg-hybrid.exe_Linux_64_juillet2014 [new file with mode: 0755]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle2.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle4.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle7.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_meshes.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_vertices.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder1.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all1.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra2.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_pyramids.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_advanced.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_arguments.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png [new file with mode: 0644]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_advanced.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_basic.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf1.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf2.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf3.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf4.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf5.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf6.png [deleted file]
doc/salome/gui/HYBRIDPLUGIN/images/image2.gif [deleted file]
doc/salome/gui/HYBRIDPLUGIN/input/additional_hypo.doc
doc/salome/gui/HYBRIDPLUGIN/input/hybrid_hypo.doc
doc/salome/gui/HYBRIDPLUGIN/input/hybridplugin_python_interface.doc
doc/salome/gui/HYBRIDPLUGIN/input/index.doc
src/GUI/HYBRIDPluginGUI_HypothesisCreator.cxx
src/HYBRIDPlugin/HYBRIDPlugin_HYBRID.cxx
src/HYBRIDPlugin/HYBRIDPlugin_Hypothesis.cxx

index a3e5fd42a1f8b71fd693c93f6cefdfcd6e157e40..96b328dbbb045e716135a2f01fed1d2a4bfc17ab 100755 (executable)
@@ -24,8 +24,9 @@ SALOME_CONFIGURE_FILE(VERSION.in VERSION INSTALL ${SALOME_INSTALL_BINS})
 # temporary standalone project version of mg-hybrid.exe
 SET(_bin_SCRIPTS
   essai.bash
-  mg-hybrid.exe
+  mg-hybrid.bash
   mg-hybrid.exe_Linux_64_avril2014
+  mg-hybrid.exe_Linux_64_juillet2014
 )
 
 
diff --git a/bin/mg-hybrid.bash b/bin/mg-hybrid.bash
new file mode 100755 (executable)
index 0000000..2d8db9a
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+#bash script mg-hybrid.bash
+#we have renamed binary executable mg-hybrid.exe V1.3.0 as mg-hybrid.exe_Linux_64_juillet2014
+#to assume call of other beta-versions of distene mg-hybrid.exe code in standalone plugin HYBRIDPLUGIN sources
+#and also assume licence file set to overriding licence file of other distene products ( HEXOTIC, GHS3D, etc... )
+#all that for for only one call of mg-hybrid.bash from salome plugin HYBRIDPLUGIN
+
+#echo "mg-hybrid.bash initial parameters are:" $1 $2 $3 $4 
+echo "mg-hybrid.bash initial parameters are:" $*
+#$0 is ignored
+
+if [[ $HOSTNAME == *hpcspot* ]]
+  then
+    HOST="hpcspot"
+  else
+    HOST="STANDART_CentOs6" #CentOs6 default
+fi
+echo "HOST" $HOST
+
+#we need to licence for mg-hybrid.exe
+if [ $HOST == "hpcspot" ]
+  then
+    #env openmpi centos6.5 hpcspot.com
+    export DISTENE_LICENSE_FILE="Use global envvar: DLIM8VAR"
+    export DLIM8VAR="dlim8 1:1:29030@10.27.51.1/002590c96d98::8fbdc02cde090ca0369ad028e839065b97709e3c33e640eb6a3c2c7e40fe3985"
+  else
+    export DISTENE_LICENSE_FILE="Use global envvar: DLIM8VAR"
+    export DLIM8VAR="dlim8 1:1:29030@132.166.151.49/84c419b8::87af196ab2a936ab31363624539bff8096fbe1f3c83028c8f6b399b0a904ef85"
+fi
+
+echo "mg-hybrid.bash juillet2014 assume licence file set:"
+env | grep DLIM
+
+#mg-hybrid.exe_Linux_64_avril2014 --help
+#mg-hybrid.exe_Linux_64_avril2014 $*
+mg-hybrid.exe_Linux_64_juillet2014 $*
+
+#ldd `which mg-hybrid.exe_Linux_64_avril2014`
+#      linux-vdso.so.1 =>  (0x00007fff3bfff000)
+#      libpthread.so.0 => /lib64/libpthread.so.0 (0x000000358b400000)
+#      libm.so.6 => /lib64/libm.so.6 (0x000000358a800000)
+#      libc.so.6 => /lib64/libc.so.6 (0x000000358ac00000)
+#      /lib64/ld-linux-x86-64.so.2 (0x000000358a400000)
+
diff --git a/bin/mg-hybrid.exe b/bin/mg-hybrid.exe
deleted file mode 100755 (executable)
index 596ecc3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-
-#bash script mg-hybrid.exe
-#we have renamed binary executable mg-hybrid.exe V1.3.0 as mg-hybrid.exe_Linux_64_avril2014
-#to assume call of other beta-versions of distene mg-hybrid.exe code in standalone plugin HYBRIDPLUGIN sources
-#and also assume licence file set to overriding licence file of other distene products ( HEXOTIC, GHS3D, etc... )
-#all that for for only one call of mg-hybrid.exe from salome plugin HYBRIDPLUGIN
-
-#echo "mg-hybrid.exe initial parameters are:" $1 $2 $3 $4 
-echo "mg-hybrid.exe initial parameters are:" $*
-#$0 is ignored
-
-export DISTENE_LICENSE_FILE="Use global envvar: DLIM8VAR"
-export DLIM8VAR="dlim8 1:1:29030@132.166.151.49/84c419b8::87af196ab2a936ab31363624539bff8096fbe1f3c83028c8f6b399b0a904ef85"
-
-echo "mg-hybrid.exe assume licence file set:"
-env | grep DLIM
-
-#mg-hybrid.exe_Linux_64_avril2014 --help
-mg-hybrid.exe_Linux_64_avril2014 $*
-
diff --git a/bin/mg-hybrid.exe_Linux_64_juillet2014 b/bin/mg-hybrid.exe_Linux_64_juillet2014
new file mode 100755 (executable)
index 0000000..8960612
Binary files /dev/null and b/bin/mg-hybrid.exe_Linux_64_juillet2014 differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle2.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle2.png
new file mode 100644 (file)
index 0000000..ad7ffbe
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle2.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle4.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle4.png
new file mode 100644 (file)
index 0000000..f080dfd
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle4.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle7.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle7.png
new file mode 100644 (file)
index 0000000..4a5d56f
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_cylinder_couvercle7.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_meshes.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_meshes.png
deleted file mode 100644 (file)
index 050152e..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_meshes.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_vertices.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_vertices.png
deleted file mode 100644 (file)
index 3632608..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_enforced_vertices.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder1.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder1.png
new file mode 100644 (file)
index 0000000..213aed1
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder1.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all1.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all1.png
new file mode 100644 (file)
index 0000000..32bd0cf
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all1.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra.png
new file mode 100644 (file)
index 0000000..0433b6d
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra2.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra2.png
new file mode 100644 (file)
index 0000000..e8aa887
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_all_layers_and_tetra2.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_pyramids.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_pyramids.png
new file mode 100644 (file)
index 0000000..94a48fa
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_example_cylinder_pyramids.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_advanced.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_advanced.png
new file mode 100644 (file)
index 0000000..4775dc8
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_advanced.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_arguments.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_arguments.png
new file mode 100644 (file)
index 0000000..175ab08
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_arguments.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png
new file mode 100644 (file)
index 0000000..bee06f9
Binary files /dev/null and b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_hypothesis_layers.png differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_advanced.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_advanced.png
deleted file mode 100644 (file)
index 6ad5f89..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_advanced.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_basic.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_basic.png
deleted file mode 100644 (file)
index 450a4a1..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_parameters_basic.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot.png
deleted file mode 100644 (file)
index a9e7b97..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf1.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf1.png
deleted file mode 100644 (file)
index 8923f00..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf1.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf2.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf2.png
deleted file mode 100644 (file)
index 5daf8a2..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf2.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf3.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf3.png
deleted file mode 100644 (file)
index f6911ce..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf3.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf4.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf4.png
deleted file mode 100644 (file)
index 46f12d8..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf4.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf5.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf5.png
deleted file mode 100644 (file)
index 531b812..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf5.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf6.png b/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf6.png
deleted file mode 100644 (file)
index 003f89f..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/hybrid_screenshot_enf6.png and /dev/null differ
diff --git a/doc/salome/gui/HYBRIDPLUGIN/images/image2.gif b/doc/salome/gui/HYBRIDPLUGIN/images/image2.gif
deleted file mode 100755 (executable)
index 1983513..0000000
Binary files a/doc/salome/gui/HYBRIDPLUGIN/images/image2.gif and /dev/null differ
index 65003923cada319d9fd28b5a4c9274b3080949a0..814c56b3c075aa2b204537d717dd136808a8cb47 100644 (file)
@@ -1,18 +1,29 @@
 /*!
 
-\page additional_hypo_page Additional Hypotheses
+\page additional_hypo_page Layers Meshes
 
-\n <b>Additional Hypotheses</b> can be applied as a supplement to the
-main hypotheses, introducing additional concepts to mesh creation.
+\n <b>Layers Meshes</b> be used to set layers mesh generation.
+
+<li>
+This hypothesis allows creation of layers of highly stretched hexahedra, prisms, and tetrahedra) near
+mesh boundary (onto the wrap), which is beneficial for high quality viscous
+computations. The elements constructed on the layer mesh faces are
+actually hexahedra or prisms or tetraheda.
+</li>
+
+For more detailed description of the this additional hypothesis please refer Distene MG-hybrid User's Guide
+(not yet!, waiting for first official release).
+
+
+\image html hybrid_cylinder_couvercle2.png "Example of a Hybrid 3D mesh with a layer (on top couvercle)"
+\image html hybrid_cylinder_couvercle4.png "Example of a Hybrid 3D mesh with a layer (on top couvercle)"
+\image html hybrid_cylinder_couvercle7.png "Example of a Hybrid 3D mesh with a layer (zoom on top couvercle)"
+
+\image html hybrid_example_cylinder_all1.png "Example of a Hybrid 3D mesh with a layer (blue sky at all wrap)"
+\image html hybrid_example_cylinder_all_layers_and_tetra.png "Example of a Hybrid 3D mesh with a layer (at all wrap, zoom on top)"
+\image html hybrid_example_cylinder_all_layers_and_tetra2.png "Example of a Hybrid 3D mesh with a layer (at all wrap, another zoom on top)"
+
+\image html hybrid_example_cylinder_pyramids.png "Example of a Hybrid 3D mesh with hexa_dominant (only visualize pyramids and hexahedra)"
 
-One additional hypotheses can be used together with HYBRID algoritm:
-<ul>
-<li><b>Viscous Layers</b> additional hypothesis can be used together with HYBRID.
-This hypothesis allows creation of layers of highly stretched prisms near
-mesh boundary, which is beneficial for high quality viscous
-computations. The prisms constructed on the quadrangular mesh faces are
-actually the hexahedrons.</li>
-</ul>
 
-For more detailed description of the this additional hypothesis please refer SALOME Mesh User's Guide.
 */
index 4d7252dbaa21e411b1ffd60906db8c73b12de207..36f1c37a7c111eb0cedd62a45c53c65b924d9b54 100644 (file)
 HYBRID Parameters hypothesis works only with <b>MeshGems-Hybrid</b> 
 algorithm. This algorithm is a commercial software.
 
-To get a licence, visit http://www.distene.com/en/corp/eval-distene.html
+To get a licence, visit http://www.distene.com and http://www.meshgems.com/
 
 \tableofcontents
 
 \section hybrid_general_parameters General parameters
 
-\image html hybrid_parameters_basic.png
-
-- <b>Name</b> - allows to define the name of the hypothesis (HYBRID 
-Parameters by default).
-
-<b>This section is obsolete... TODO!!!...</b>
-
-- <b>Mesh holes</b> - if checked, the algorithm will 
-create mesh in the holes inside a solid shape, else only the outermost
-shape will be meshed. Volumic elements created within holes are bound
-to the solid.
-
-- <b>Make groups of domains</b> - if checked, the algorithm will
-create groups of just generated elements corresponding to each mesh
-domain.<br>
-
-- <b>Optimization level</b> - allows choosing the required
-optimization level (higher level of optimisation provides better mesh,
-but can be time-consuming):
-
-  - none
-
-  - light
-
-  - medium (standard)
-
-  - standard+
-
-  - strong
+\image html hybrid_hypothesis_arguments.png
+
+- <b>hybrid parameters</b> - MeshGems-Hybrid is actually a project, waiting for a distene documentation.
+See MeshGems-Hybrid help command:
+
+\verbatim
+
+$> mg-hybrid.exe_Linux_64_juillet2014 --help
+
+    =============================================
+    MG-Hybrid (b8) -- MeshGems 1.3-5 (July, 2014)
+    =============================================
+
+        Distene SAS
+           Campus Teratec
+           2, rue de la Piquetterie
+           91680 Bruyeres le Chatel
+           FRANCE
+        Phone: +33(0)970-650-219   Fax: +33(0)169-269-033
+        EMail: <support@distene.com>
+
+        Running MG-Hybrid (b8) (Copyright 2014 by Distene SAS)
+           date of run: 10-Jul-2014 AT 13:46:28
+           running on : Linux 2.6.32-431.11.2.el6.centos.plus.x86_64 x86_64
+           using modules: 
+                MeshGems-Core 1.3-4
+
+        MeshGems is a Registered Trademark of Distene SAS
+
+
+
+MeshGems-Hybrid USAGE
+    mg-hybrid.exe_Linux_64_juillet2014 [-h] [-v <verbose>] [-i <filein>] \
+        [-o <fileout>] [--max_number_of_threads <maxthreads>] \
+        [--boundary_layers_surface_ids <list>] \
+        [--boundary_layers_imprint_ids <list>] \
+        [--boundary_layers_subdomain_direction <dir>] \
+        [--height_of_the_first_layer <height>] \
+        [--number_of_boundary_layers <number>] \
+        [--boundary_layers_geometric_progression <real>] [--gradation <real>] \
+        [--element_generation <type>] [--collision_mode <mode>] \
+        [--add_multinormals <yes|no>] \
+        [--multinormals_angle_threshold <angle>] [--smooth_normals <yes|no>]
+
+  -h --help
+          prints this help.
+
+  -v --verbose <verbose>
+          Sets the verbosity level parameter.
+          The <verbose> parameter must be in the range 0 to 10:
+            0 : no detail
+            10 : very detailed
+          Default: 3
+
+  -i --in <filein>
+          Sets the input file.
+          (MANDATORY)
+
+  -o --out <fileout>
+          Sets the output file.
+          If unset, _hybrid is appended to the input file basename.
+          Using an existing file is forbidden.
+          Using the same file as --in is forbidden.
+
+     --max_number_of_threads <maxthreads>
+          Sets the maximum number of threads to be used in parallel.
+          Default: 4
+
+     --boundary_layers_surface_ids <list>
+          Comma separated list of surface references to be used to grow layer.
+
+     --boundary_layers_imprint_ids <list>
+          Comma separated list of surface references that are imprinted by
+          boundary layers.
+
+     --boundary_layers_subdomain_direction <dir>
+          Describes whether the layers grow inwards or outwards.
+          if <dir> is:
+           1 : means the layers grow inward
+          -1 : means the layers grow outward
+          Default: 1
+
+     --height_of_the_first_layer <height>
+          Sets the height of the first layer.
+
+     --number_of_boundary_layers <number>
+          Sets the number of boundary layers.
+          Default: 1
+
+     --boundary_layers_geometric_progression <real>
+          Sets the geometric progression for the boundary layer growth (layer
+          number i position is i * h * g^i).
+          Default: 1.0
+
+     --gradation <real>
+          Sets the gradation for the boundary layer height.
+          Default: 2.0
+
+     --element_generation <type>
+          Sets the element type for the mesh generation.
+          If <type> is:
+          tetra-dominant : prismatic or hexahedral elements in the boundary
+          layers, tetrahedra in the remaining volume
+          hexa-dominant : prismatic or hexahedral elements in the boundary
+          layers, hexcore in the remaining volume
+          Default: tetra-dominant
+
+     --collision_mode <mode>
+          Sets the behavior in case of collision between layers.
+          If <mode> is:
+          decrease : keep the number of desired layer but decrease the height
+          of the layers to avoid collision
+          stop : stop locally the layers generation; the number of desired
+          layer may not be respected
+          Default: skip
+
+     --add_multinormals <yes|no>
+          Add extra normals at opening ridges and corners.
+          Default: no
+
+     --multinormals_angle_threshold <angle>
+          Set the maximum angle between the multiple normals at opening ridges
+          .
+          Default: 30
+
+     --smooth_normals <yes|no>
+          Smooth normals at closed ridges and corners.
+          Default: no
+
+
+ ==============================================================================
+                   MeshGems-Hybrid SOFTWARE 1.3-5 (July, 2014) 
+                      compiled Jul  4 2014 14:33:45 GMT
+                                 END OF SESSION
+           Copyright 2014 by Distene SAS  All Rights Reserved
+ ==============================================================================
+      ( Distene SAS
+       Phone: +33(0)164-908-596     Fax: +33(0)169-269-033
+       EMail: <support@distene.com> )
+
+\endverbatim
+\n
 
 \ref hybrid_top "Back to top"
 
 \section hybrid_advanced_parameters Advanced parameters
 
-\image html hybrid_parameters_advanced.png
-
-\subsection memory_settings Memory settings
-
-- <b>Maximum memory size</b> - launches hybrid software with
-work space limited to the specified amount of RAM, in Mbytes. If this option is
-checked off, the software will be launched with 7O% of the total RAM space.
-
-- <b>Initial memory size</b> - starts hybrid software with
-the specified amount of work space, in Mbytes. If this option is checked off, the
-software will be started with 100 Megabytes of working space.
+\image html hybrid_hypothesis_advanced.png
 
 \subsection log Logs and debug
 
@@ -90,85 +193,22 @@ launch of the mesher. The log file (if any) is also kept if this option is check
 
 \subsection advanced_meshing_options Advanced meshing options
 
-- <b>Create new nodes</b> - if this option is checked off, hybrid
-tries to create tetrahedrons using only the nodes of the 2D mesh.
-
-- <b>Remove the initial central point</b> TetMesh-HYBRID adds an internal point 
-at the gravity centre of the bounding box to speed up and to simplify 
-the meshing process. However, it is possible to refrain from creating 
-this point by using the command line option -no initial central point. This can be
-particularly useful to generate a volume mesh without internal points at all and in some rare cases
-at the boundary regeneration phase when it is impossible to proceed
-with the standard options
-(for example, when one dimension of the domain is more than 20 times greater than the other two).
-Use this option if the boundary regeneration has failed with the standard parameters and before using
-the recovery version (command line option -C).
-Note: when using this option, the speed of the meshing process may
-decrease, and the quality may change.
-Note: the boundary regeneration may fail with this option, in some rare cases.
-
-- <b>Use boundary recovery version</b> - enables using a
-boundary recovery module which tries to
-create volume meshes starting from very poor quality surface meshes
-(almost flat triangles on the surface, high density propagation,
-extreme aspect ratios, etc.) which fails with the standard version. The
-resulting volume mesh will however most likely have a very poor
-quality (poor aspect ratio of elements, tetrahedra with a very small
-positive volume).
-
-- <b>Use FEM correction</b> - Applies finite-element correction by 
-replacing overconstrained elements where it is possible. At first the process 
-slices the overconstrained edges and at second the overconstrained 
-facets. This ensures that there are no edges with two boundary
-vertices and that there are no facets with three boundary vertices. TetMesh-HYBRID gives the initial 
-and final overconstrained edges and facets. It also gives the facets
-which have three edges on the boundary.
-Note: when using this option, the speed of the meshing process may 
-decrease, quality may change, and the smallest volume may be smaller.
-By default, the FEM correction is not used.
-
-- <b>Volumic gradation</b> - Defines the volumic ratio between 2 consecutive elements.
-WARNING: Changing the default value of this parameter may dramatically decrease the quality of the resulting mesh.
-
 - <b>Option as text</b> - allows to input in the command line any text
-for hybrid, for example, advanced options.
+for hybrid argument from "mg-hybrid.exe help", and future advanced options...
 
 \ref hybrid_top "Back to top"
 
-\section hybrid_enforced_vertices Enforced vertices
-
-\image html hybrid_enforced_vertices.png
-
-HYBRID algorithm can locally make the mesh finer. It is possible to
-define enforced vertices in the volume where the mesh will be detailed.
-A node will be created at the enforced vertex coordinates.
-
-An enforced vertex is defined by:
-- A vertex
-  - from GEOM (Vertex, Compound) - only avaible on meshes with no
-  geometry attached
-  - or from (x,y,z) cartesian coordinates
-- A constant physical size
-- If a group name is given, the created node will be added to the
-group. If the group does not exist, it is created.
-
-\ref hybrid_top "Back to top"
+\section hybrid_layers_meshes Layers meshes
 
-\section hybrid_enforced_meshes Enforced Meshes
+\image html hybrid_hypothesis_layers.png
 
-\image html hybrid_enforced_meshes.png
+HYBRID algorithm mesh layers on groups of faces. Pay attention: theses groups should be defined
+into the shell mesh from a previous group defined in the geometry.
 
-HYBRID algorithm can be forced by other meshes, sub-meshes or
-groups. The constraint elements should be contained
-entirely into the solid mesh.
-- The constraint element types are:
-  - NODE
-  - EDGE
-  - FACE
-- If a group name is given, the enforced elements will be added to
-the group. If the group does not exist, it is created.
+- If a group is added, their faces will be source to generate layers
+the group.
 
-<br><b>See Also</b> a sample TUI Script of the \ref tui_hybrid "creation of a MG-Hybrid hypothesis", including enforced vertices and meshes.
+<br><b>See Also</b> a sample TUI Script of the \ref tui_hybrid "creation of a MG-Hybrid hypothesis".
 
 \ref hybrid_top "Back to top"
 
index dd43d175a0efc9f27d5d13f71015899bfb1a5981..66bed127368868dc3cde5c5cff5b6db9a6021c01 100644 (file)
@@ -11,8 +11,6 @@ Below you can see an example of usage of the HYBRIDPluginBuilder Python API for
 \anchor tui_hybrid
 
 -# \ref tui_hybrid_basic
--# \ref tui_hybrid_enforced_vertices
--# \ref tui_hybrid_enforced_meshes
 
 \section tui_hybrid_basic Construction of Mesh using MG-Hybrid algorithm
 
@@ -21,31 +19,6 @@ Below you can see an example of usage of the HYBRIDPluginBuilder Python API for
 \tui_script{hybriddemo.py}
 
 
-\image html hybrid_screenshot.png Hybrid mesh without hypothesis
-
-\ref tui_hybrid "Back to top"
-
-\section tui_hybrid_enforced_vertices Adding enforced vertices
-
-<h2>Example of enforced vertices with HYBRID algorithm:</h2>
-\tui_script{hybrid_enfvert.py}
-
-
-\image html hybrid_screenshot_enf1.png Hybrid mesh with enforced vertex
-\image html hybrid_screenshot_enf2.png Hybrid mesh with enforced vertex from GEOM vertex
-
-\ref tui_hybrid "Back to top"
-
-\section tui_hybrid_enforced_meshes Adding enforced mesh
-
-<h2>Example of enforced meshes with HYBRID algorithm:</h2>
-\tui_script{hybrid_enfmesh.py}
-
-\image html hybrid_screenshot_enf3.png
-\image html hybrid_screenshot_enf4.png
-\image html hybrid_screenshot_enf5.png
-\image html hybrid_screenshot_enf6.png
-
 \ref tui_hybrid "Back to top"
 
 */
index 47b61c4e1e79fb05ed83d8f01768aae015a3257d..3a8175121fb7d255ad3b4146ae17c57efef7231e 100644 (file)
@@ -2,11 +2,14 @@
 
 \mainpage Introduction to HYBRIDPLUGIN
 
-\b HYBRIDPLUGIN plugin is destined for:
-- Meshing 3D geometric entities: volumes are split into tetrahedral and hexaheral elements.
-- Generating 3D meshes from 2D meshes (triangles and quadrangles), working without geometrical objects.
-
-\note HYBRIDPLUGIN plugin used MeshGems-Hybrid commercial mesher and require a
+\b HYBRIDPLUGIN plugin is designed for:
+- Meshing 3D geometric closed entities: volumes are split into tetrahedra, 
+pyramids, prisms and hexahedra elements.
+- Generating 3D meshes from 2D meshes of a wrap (triangles and quadrangles), 
+working with geometrical objects for setting and meshing layers.
+
+\note HYBRIDPLUGIN plugin used MeshGems-Hybrid commercial mesher, 
+which is a project in 2014, and require a 
 license to be used within the Mesh module.
 
 To manage parameters of the HYBRIDPLUGIN use \subpage hybrid_hypo_page and \subpage additional_hypo_page
@@ -15,7 +18,7 @@ Also all HYBRIDPLUGIN functionalities are accessible via
 \subpage hybridplugin_python_interface_page "HYBRIDPLUGIN Python interface".
 
 
-\image html image2.gif "Example of a tetrahedral 3D mesh"
+\image html hybrid_example_cylinder_all1.png "Example of a Hybrid 3D mesh with a layer (sky blue on all wrap, clipped for view)"
 
 
 */
index f905e21f9f3ccbb870ba3dfbb7ddf1bf030373ed..4e2b8140be36e9b6e4493310b01f0930eef5d3ff 100644 (file)
@@ -1245,9 +1245,8 @@ void HYBRIDPluginGUI_HypothesisCreator::onAddEnforcedMesh()
 //     groupName = myGlobalGroupName->text().toStdString();
 
   if (boost::trim_copy(groupName).empty())
-    groupName = "";
+    groupName = "LayersGroup"; //have to be not empty until non used
 
-  
   int elementType = myEnfMeshConstraint->currentIndex();
   
   
index 769bea33fd0cd14412fb060d06093fd987e33c48..eb3454332cd4678b2da17526f43a036bcabf3aa9 100644 (file)
@@ -862,7 +862,7 @@ static bool readGMFFile(const char*                     theFile,
                   &id[iElem*tabRef[token]+4], &id[iElem*tabRef[token]+5], &id[iElem*tabRef[token]+6], &id[iElem*tabRef[token]+7], &domainID[iElem]);
     }
     std::cout << tmpStr << std::endl;
-    std::cout << std::endl;
+    //std::cout << std::endl;
 
     switch (token) {
     case GmfCorners:
@@ -1105,8 +1105,8 @@ static bool writeGMFFile(const char*                                     theMesh
                          std::map<std::vector<double>, std::string> &    enfVerticesWithGroup,
                          HYBRIDPlugin_Hypothesis::THYBRIDEnforcedVertexCoordsValues & theEnforcedVertices)
 {
-  MESSAGE("writeGMFFile w/o geometry");
-  std::cout << "!!!!!!!!!!!writeGMFFile w/o geometry..." << std::endl;
+  //MESSAGE("writeGMFFile w/o geometry");
+  std::cout << "!!!!!!!!!!!writeGMFFile w/o geometry for HYBRIDPLUGIN..." << std::endl;
   std::string tmpStr;
   int idx, idxRequired = 0, idxSol = 0;
   //tabg each dummyint
@@ -1489,17 +1489,17 @@ static bool writeGMFFile(const char*                                     theMesh
   
   
   // GmfVertices
-  std::cout << "Begin writting required nodes in GmfVertices" << std::endl;
+  std::cout << "Begin writing required nodes in GmfVertices" << std::endl;
   std::cout << "Nb vertices: " << theOrderedNodes.size() << std::endl;
   GmfSetKwd(idx, GmfVertices, theOrderedNodes.size()); //theOrderedNodes.size()+solSize)
   for (hybridNodeIt = theOrderedNodes.begin();hybridNodeIt != theOrderedNodes.end();++hybridNodeIt) {
     GmfSetLin(idx, GmfVertices, (*hybridNodeIt)->X(), (*hybridNodeIt)->Y(), (*hybridNodeIt)->Z(), dummyint1);
   }
 
-  std::cout << "End writting required nodes in GmfVertices" << std::endl;
+  std::cout << "End writing required nodes in GmfVertices" << std::endl;
 
   if (requiredNodes + solSize) {
-    std::cout << "Begin writting in req and sol file" << std::endl;
+    std::cout << "Begin writing in req and sol file" << std::endl;
     aNodeGroupByHybridId.resize( requiredNodes + solSize );
     idxRequired = GmfOpenMesh(theRequiredFileName, GmfWrite, GMFVERSION, GMFDIMENSION);
     if (!idxRequired) {
@@ -1542,7 +1542,7 @@ static bool writeGMFFile(const char*                                     theMesh
 #endif
       usedEnforcedNodes++;
     }
-    std::cout << "End writting in req and sol file" << std::endl;
+    std::cout << "End writing in req and sol file" << std::endl;
   }
 
   int nedge[2], ntri[3];
@@ -1611,8 +1611,9 @@ static bool writeGMFFile(const char*                                     theMesh
       GmfSetLin(idx, GmfTriangles, ntri[0], ntri[1], ntri[2], dummyint5);
       aFaceGroupByHybridId[k] = "";
     }
-    if ( !theHelper.GetMesh()->HasShapeToMesh() )
-      SMESHUtils::FreeVector( theFaceByHybridId );
+    
+    if ( !theHelper.GetMesh()->HasShapeToMesh() ) SMESHUtils::FreeVector( theFaceByHybridId ); 
+    std::cout << "Enforced triangles size " << theKeptEnforcedTriangles.size() << std::endl;
     if (theKeptEnforcedTriangles.size()) {
       for(elemSetIt = theKeptEnforcedTriangles.begin() ; elemSetIt != theKeptEnforcedTriangles.end() ; ++elemSetIt,++k) {
         elem = (*elemSetIt);
@@ -3092,7 +3093,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   //  cmd += TCollection_AsciiString(" --required_vertices ") + aGenericNameRequired;
   cmd += TCollection_AsciiString(" --out ") + aResultFileName;
   if ( !_logInStandardOutput )
-    cmd += TCollection_AsciiString(" &>" ) + aLogFileName;  // dump into file
+    cmd += TCollection_AsciiString(" 1>" ) + aLogFileName;  // dump into file
 
   std::cout << std::endl;
   std::cout << "Hybrid execution with geometry..." << std::endl;
@@ -3359,7 +3360,7 @@ bool HYBRIDPlugin_HYBRID::Compute(SMESH_Mesh&         theMesh,
   //  cmd += TCollection_AsciiString(" --required_vertices ") + aGenericNameRequired;
   cmd += TCollection_AsciiString(" --out ") + aResultFileName;
   if ( !_logInStandardOutput )
-    cmd += TCollection_AsciiString(" &>" ) + aLogFileName;  // dump into file
+    cmd += TCollection_AsciiString(" 1> " ) + aLogFileName;  // dump into file
 
   std::cout << std::endl;
   std::cout << "Hybrid execution w/o geometry..." << std::endl;
index 3f9f83b802699af7fdde45d421c256192b5ff845..6354f5f5837b1f76ff46ed560dfc80a56a5d6702 100644 (file)
@@ -1742,6 +1742,8 @@ std::string HYBRIDPlugin_Hypothesis::CommandToRun(const HYBRIDPlugin_Hypothesis*
   bool p_mat   = ( hyp->myTextOption.find("--multinormals_angle_threshold ")  != std::string::npos );
   bool p_sn    = ( hyp->myTextOption.find("--smooth_normals ")  != std::string::npos );
 
+  bool nolayers = false;
+  
   //help mode
   if ( p_h ) {
     cmd += " --help ";
@@ -1772,8 +1774,14 @@ std::string HYBRIDPlugin_Hypothesis::CommandToRun(const HYBRIDPlugin_Hypothesis*
   //  cmd += 0; //TODO hyp->my;
   //}
   
-  cmd += " --boundary_layers_surface_ids 6 "; //as triangles of enforced mesh
-  
+  //no layers?
+  if ( !p_nobl && hyp ) {
+    if ( hyp->myNbOfBoundaryLayers < 1 ) nolayers = true;
+  }
+  if ( !p_hotfl && hyp ) {
+    if ( hyp->myHeightFirstLayer < 1e-50 ) nolayers = true;
+  }
+    
   if ( !p_blsd && hyp ) {
     if ( hyp->myBoundaryLayersGrowth >= 0 && hyp->myBoundaryLayersGrowth <= 1 ) {
       const char* value[] = { "1" , "-1" };
@@ -1789,13 +1797,21 @@ std::string HYBRIDPlugin_Hypothesis::CommandToRun(const HYBRIDPlugin_Hypothesis*
   
   if ( !p_nobl && hyp ) {
     cmd += " --number_of_boundary_layers ";
-    cmd += hyp->myNbOfBoundaryLayers;
+    if ( nolayers )
+      cmd += 0;
+    else
+      cmd += hyp->myNbOfBoundaryLayers;
   }
   
   if ( !p_blgp && hyp ) {
     cmd += " --boundary_layers_geometric_progression ";
     cmd += hyp->myBoundaryLayersProgression;
   }
+
+  //--boundary_layers_surface_ids 5 #for all wrap shell
+  //--boundary_layers_surface_ids 6 #for all enfMeshList
+  //TODO if ( !nolayers ) cmd += " --boundary_layers_surface_ids 5,6 "; //as all wrap shell and triangles of enforced mesh
+  if ( !nolayers ) cmd += " --boundary_layers_surface_ids 6 "; //as triangles of enforced mesh
   
   if ( !p_eg && hyp ) {
     if ( hyp->myElementGeneration >= 0 && hyp->myElementGeneration <= 1 ) {
@@ -1873,7 +1889,8 @@ std::string HYBRIDPlugin_Hypothesis::GetFileName(const HYBRIDPlugin_Hypothesis*
 
 std::string HYBRIDPlugin_Hypothesis::GetExeName()
 {
-  return "mg-hybrid.exe";
+  //call mg-hybrid.bash is script which assumes new project version(s) mg-hybrid.exe_Linux_64_avril2014 and special? licence.
+  return "mg-hybrid.bash";
 }
 
 //================================================================================