\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:
+- <b>Hybrid parameters</b> - See distene documentation or MeshGems-Hybrid help command:
\verbatim
-$> mg-hybrid.exe_Linux_64_juillet2014 --help
+$> mg-hybrid.exe --help
- =============================================
- MG-Hybrid (b8) -- MeshGems 1.3-5 (July, 2014)
- =============================================
+
+ ==============================================
+ MG-Hybrid -- MeshGems 2.1-11 (September, 2015)
+ ==============================================
Distene SAS
Campus Teratec
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
+ Running MG-Hybrid (Copyright 2014-2015 by Distene SAS)
+ date of run: 26-Jan-2016 AT 12:24:16
+ running on : Linux 3.6.10-4.fc18.x86_64 x86_64
using modules:
- MeshGems-Core 1.3-4
+ MeshGems-Core 2.1-11
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>] \
+MG-HYBRID USAGE
+ mg-hybrid.exe [-h] [-v <verbose>] [-i <filein>] [-o <fileout>] \
+ [--global_physical_size <size>] \
+ [--max_number_of_threads <maxthreads>] \
+ [--boundary_layer_size_mode <mode>] \
[--number_of_boundary_layers <number>] \
- [--boundary_layers_geometric_progression <real>] [--gradation <real>] \
+ [--boundary_layer_global_initial_height <height>] \
+ [--boundary_layer_surface_tags <list>] \
+ [--boundary_layer_initial_height_on_surface_tags <list>] \
+ [--boundary_layer_imprint_tags <list>] \
+ [--boundary_layer_geometric_progression <real>] \
+ [--boundary_layer_max_element_angle <size>] \
+ [--normal_direction <dir>] [--gradation <real>] \
[--element_generation <type>] [--collision_mode <mode>] \
- [--add_multinormals <yes|no>] \
- [--multinormals_angle_threshold <angle>] [--smooth_normals <yes|no>]
+ [--add_multinormals <yes|no>] [--multinormal_angle_threshold <angle>] \
+ [--smooth_normals <yes|no>] [--optimisation <type>]
-h --help
prints this help.
Using an existing file is forbidden.
Using the same file as --in is forbidden.
+ --global_physical_size <size>
+ Sets the global physical size.
+ Default: no default.
+
--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_layer_size_mode <mode>
+ Sets the behavior for the boundary layer sizes.
+ If <mode> is:
+ global: the boundary_layer_global_initial_height is used to compute
+ the layer heights
+ local: the boundary_layer_surface_tags and
+ boundary_layer_initial_height_on_surface_tags are used to compute
+ the layer heights
+ Default: global
+
+ --number_of_boundary_layers <number>
+ Sets the number of boundary layers.
+ Default: 0
+
+ --boundary_layer_global_initial_height <height>
+ Sets the height of the first layer.
+
+ --boundary_layer_surface_tags <list>
+ Comma separated list of surface references to be used to grow
+ boundary layers.
+
+ --boundary_layer_initial_height_on_surface_tags <list>
+ Comma separated list of initial heights to be used to grow boundary
+ layers.
- --boundary_layers_imprint_ids <list>
+ --boundary_layer_imprint_tags <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
+ --boundary_layer_geometric_progression <real>
+ Sets the geometric progression for all the boundary layer growths
+ (position of layer number i is h * g^(i-1)).
+ Default: 1.0
- --height_of_the_first_layer <height>
- Sets the height of the first layer.
+ --boundary_layer_max_element_angle <size>
+ Sets the maximum internal angles of elements (in degree). This
+ setting applies to the boundary layer elements only.
+ Default: 165.
- --number_of_boundary_layers <number>
- Sets the number of boundary layers.
+ --normal_direction <dir>
+ Specifies whether mg-hybrid should use the surface normals or the
+ inverse of the surface normals.
+ if <dir> is:
+ 1 : means the layers grow in the same direction as the normals to
+ the surface
+ -1 : means the layers grow in the opposite direction to the normals
+ of the surface
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.
+ Sets the desired maximum ratio between 2 adjacent edges. It applies
+ only to the edges which belong to the tetrahedra.
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
+ 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, mixture of hexahedra and tetrahedra in the remaining
+ volume
+ cartesian_core : cartesian hexa core with tetrahedra and pyramids
+ in the remaining volume
+ extrusion_only : only prismatic or hexahedral elements near the
+ boundary are generated. The remaining volume is not filled.
+ 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
+ decrease : keeps the number of desired layer but decreases the
+ height of the layers to avoid any collision
+ stop : stops locally the generation of layers to avoid collisions;
+ the number of generated layers may differ from the specified
+ desired number
+ Default: stop
--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
- .
+ --multinormal_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> )
+ --optimisation <type>
+ sets the optimisation type.
+ If <type> is:
+ no : no optimisation is applied
+ yes : optimisation is performed upon mesh generation
+ only : only optimisation is performed to an existing volume mesh.
+ Default: yes.
+
+
+================================================================================
+ MG-Hybrid -- MeshGems 2.1-11 (September, 2015)
+ END OF SESSION - MG-Hybrid (Copyright 2014-2015 by Distene SAS)
+ compiled Sep 3 2015 13:52:38 on Linux_64
+ MeshGems is a Registered Trademark of Distene SAS
+================================================================================
+ ( Distene SAS
+ Phone: +33(0)970-650-219 Fax: +33(0)169-269-033
+ EMail: <support@distene.com> )
\endverbatim
\n
+- <b>Limitations</b> - Some of the MG-Hybrid parameters can not be changed in SALOME and are set to their default values. The parameters concerned are the following : global_physical_size, boundary_layer_size_mode, boundary_layer_initial_height_on_surface_tags, boundary_layer_max_element_angle and optimisation.
\ref hybrid_top "Back to top"
//bool p_i = ( hyp->myTextOption.find("-i") != std::string::npos );
//bool p_o = ( hyp->myTextOption.find("-o") != std::string::npos );
bool p_mnot = ( hyp->myTextOption.find("--max_number_of_threads ") != std::string::npos );
- bool p_blsi = ( hyp->myTextOption.find("--boundary_layers_surface_ids ") != std::string::npos );
- bool p_blii = ( hyp->myTextOption.find("--boundary_layers_imprint_ids ") != std::string::npos );
- bool p_blsd = ( hyp->myTextOption.find("--boundary_layers_subdomain_direction ") != std::string::npos );
- bool p_hotfl = ( hyp->myTextOption.find("--height_of_the_first_layer ") != std::string::npos );
+ bool p_blsi = ( hyp->myTextOption.find("--boundary_layer_surface_tags ") != std::string::npos );
+ bool p_blii = ( hyp->myTextOption.find("--boundary_layer_imprint_tags ") != std::string::npos );
+ bool p_blsd = ( hyp->myTextOption.find("--normal_direction ") != std::string::npos );
+ bool p_hotfl = ( hyp->myTextOption.find("--boundary_layer_global_initial_height ") != std::string::npos );
bool p_nobl = ( hyp->myTextOption.find("--number_of_boundary_layers ") != std::string::npos );
- bool p_blgp = ( hyp->myTextOption.find("--boundary_layers_geometric_progression ") != std::string::npos );
+ bool p_blgp = ( hyp->myTextOption.find("--boundary_layer_geometric_progression ") != std::string::npos );
bool p_eg = ( hyp->myTextOption.find("--element_generation ") != std::string::npos );
bool p_cm = ( hyp->myTextOption.find("--collision_mode ") != std::string::npos );
bool p_am = ( hyp->myTextOption.find("--add_multinormals ") != std::string::npos );
- bool p_mat = ( hyp->myTextOption.find("--multinormals_angle_threshold ") != std::string::npos );
+ bool p_mat = ( hyp->myTextOption.find("--multinormal_angle_threshold ") != std::string::npos );
bool p_sn = ( hyp->myTextOption.find("--smooth_normals ") != std::string::npos );
+//missing options :
+//- global_physical_size
+//- boundary_layer_size_mode
+//- boundary_layer_initial_height_on_surface_tags
+//- boundary_layer_max_element_angle
+
bool nolayers = false;
bool layersOnAllWrap = hyp->myLayersOnAllWrap;
if ( !p_blsd && hyp ) {
if ( hyp->myBoundaryLayersGrowth >= 0 && hyp->myBoundaryLayersGrowth <= 1 ) {
const char* value[] = { "1" , "-1" };
- cmd += " --boundary_layers_subdomain_direction ";
+ cmd += " --normal_direction ";
cmd += value[ hyp->myBoundaryLayersGrowth ];
}
}
if ( !p_hotfl && hyp ) {
- cmd += " --height_of_the_first_layer ";
+ cmd += " --boundary_layer_global_initial_height ";
cmd += hyp->myHeightFirstLayer;
}
}
if ( !p_blgp && hyp ) {
- cmd += " --boundary_layers_geometric_progression ";
+ cmd += " --boundary_layer_geometric_progression ";
cmd += hyp->myBoundaryLayersProgression;
}
//TODO? if ( !nolayers ) cmd += " --boundary_layers_surface_ids 5,6 "; //as all wrap shell and triangles of enforced mesh
if ( !nolayers ) {
if (layersOnAllWrap)
- cmd += " --boundary_layers_surface_ids 5 "; //as triangles of all wrap
+ cmd += " --boundary_layer_surface_tags 5 "; //as triangles of all wrap
else
- cmd += " --boundary_layers_surface_ids 6 "; //as triangles of enforced mesh
+ cmd += " --boundary_layer_surface_tags 6 "; //as triangles of enforced mesh
}
if ( !p_eg && hyp ) {
}
if ( !p_mat && hyp ) {
- cmd += " --multinormals_angle_threshold ";
+ cmd += " --multinormal_angle_threshold ";
cmd += hyp->myMultinormalsAngle;
}
std::string HYBRIDPlugin_Hypothesis::GetExeName()
{
- //call mg-hybrid.bash is script which assumes new project version(s) mg-hybrid.exe_Linux_64_avril2014 and special? licence.
+ //call mg-hybrid.bash is script which assumes new project version(s) mg-hybrid.exe in the prerequisite base and special? licence.
return "mg-hybrid.bash";
}