# 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
)
--- /dev/null
+#!/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)
+
+++ /dev/null
-#!/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 $*
-
/*!
-\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.
*/
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
\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"
\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
\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"
*/
\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
\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)"
*/
// 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();
&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:
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
// 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) {
#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];
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);
// 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;
// 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;
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 ";
// 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" };
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 ) {
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";
}
//================================================================================