Commit 7c52bfce authored by Christophe Geuzaine's avatar Christophe Geuzaine

new option Mesh.HighOrderPeriodic to control correction (or not) of high order periodic meshes

parent 60381f86
Pipeline #2980 passed with stage
in 56 minutes and 38 seconds
4.0.6: bug fixes.
4.0.6 (November 25, 2018): moved private API wrappers to utils/wrappers;
improved Gmsh 3 compatibility for high-order periodic meshes; fixed '-v 0' not
being completely silent; fixed rendering of image textures on some OSes; small
compilation fixes.
4.0.5 (November 17, 2018): automatic hybrid mesh generation (pyramid layer) when
3D Delaunay algorithm is applied to a volume with quadrangles on boundary;
4.0.5 (November 17, 2018): new automatic hybrid mesh generation (pyramid layer)
when 3D Delaunay algorithm is applied to a volume with quadrangles on boundary;
improved robustness of 2D MeshAdapt algorithm; bug fixes.
4.0.4 (October 19, 2018): fix physical names regression in 4.0.3.
4.0.4 (October 19, 2018): fixed physical names regression in 4.0.3.
4.0.3 (October 18, 2018): bug fixes.
......@@ -35,7 +38,7 @@ export; small improvements and bug fixes.
3.0.5 (September 6, 2017): bug fixes.
3.0.4 (July 28, 2017): moved vorometal code to plugin; openmp improvements; bug
3.0.4 (July 28, 2017): moved vorometal code to plugin; OpenMP improvements; bug
fixes.
3.0.3 (June 27, 2017): new element quality measures; Block->Box; minor fixes.
......
......@@ -30,7 +30,7 @@ struct contextMeshOptions {
int recombine3DConformity, flexibleTransfinite;
int order, secondOrderLinear, secondOrderIncomplete, secondOrderExperimental;
int meshOnlyVisible, minCircPoints, minCurvPoints;
int hoOptimize, hoNLayers, hoOptPrimSurfMesh;
int hoOptimize, hoPeriodic, hoNLayers, hoOptPrimSurfMesh;
double hoThresholdMin, hoThresholdMax, hoPoissonRatio;
std::map<int, int> algo2dPerFace;
std::map<int, int> curvatureControlPerFace;
......
......@@ -146,8 +146,8 @@ StringXString GeometryOptions_String[] = {
{ F|O, "OCCTargetUnit" , opt_geometry_occ_target_unit , "M" ,
"Length unit to which coordinates from STEP and IGES files are converted to when "
"imported by OpenCASCADE (leave empty to keep the unit defined in the STEP and "
"IGES file)"},
"imported by OpenCASCADE, e.g. 'M' for meters (leave empty to keep the unit defined "
"in the STEP and IGES file)"},
{ 0, 0 , 0 , "" , 0 }
} ;
......@@ -1054,6 +1054,8 @@ StringXNumber MeshOptions_Number[] = {
"Number of high order mesh elements to consider for optimization"},
{ F|O, "HighOrderOptimize" , opt_mesh_ho_optimize , 0.,
"Optimize high order meshes?" },
{ F|O, "HighOrderPeriodic" , opt_mesh_ho_periodic , 0.,
"Correct high order optimization for periodic connections?" },
{ F|0, "HighOrderPoissonRatio", opt_mesh_ho_poisson, 0.33,
"Poisson ratio of the material used in the elastic smoother for high order meshes"
"Must be between -1.0 and 0.5, excluded"},
......
......@@ -6178,6 +6178,13 @@ double opt_mesh_ho_optimize(OPT_ARGS_NUM)
return CTX::instance()->mesh.hoOptimize;
}
double opt_mesh_ho_periodic(OPT_ARGS_NUM)
{
if(action & GMSH_SET)
CTX::instance()->mesh.hoPeriodic = (int)val;
return CTX::instance()->mesh.hoPeriodic;
}
double opt_mesh_ho_nlayers(OPT_ARGS_NUM)
{
if(action & GMSH_SET)
......
......@@ -516,6 +516,7 @@ double opt_mesh_allow_swap_edge_angle(OPT_ARGS_NUM);
double opt_mesh_min_curv_points(OPT_ARGS_NUM);
double opt_mesh_order(OPT_ARGS_NUM);
double opt_mesh_ho_optimize(OPT_ARGS_NUM);
double opt_mesh_ho_periodic(OPT_ARGS_NUM);
double opt_mesh_ho_nlayers(OPT_ARGS_NUM);
double opt_mesh_ho_threshold_min(OPT_ARGS_NUM);
double opt_mesh_ho_threshold_max(OPT_ARGS_NUM);
......
......@@ -1309,7 +1309,7 @@ static void updatePeriodicEdgesAndFaces(GModel *m)
}
}
if(CTX::instance()->mesh.hoOptimize) {
if(CTX::instance()->mesh.hoPeriodic) {
#if defined(HAVE_OPTHOM)
std::vector<GEntity *> modelEdges(m->firstEdge(), m->lastEdge());
OptHomPeriodicity edgePeriodicity(modelEdges);
......@@ -1388,7 +1388,7 @@ static void updatePeriodicEdgesAndFaces(GModel *m)
}
}
if(CTX::instance()->mesh.hoOptimize) {
if(CTX::instance()->mesh.hoPeriodic) {
#if defined(HAVE_OPTHOM)
std::vector<GEntity *> modelFaces;
modelFaces.insert(modelFaces.end(), m->firstFace(), m->lastFace());
......
......@@ -106,21 +106,21 @@ Public License (GPL)</a>:
<ul>
<li>
<div class="highlight">
Current stable release (version 4.0.5, 17 November 2018):
Current stable release (version 4.0.6, 25 November 2018):
<ul>
<li>Download Gmsh for
<a href="bin/Windows/gmsh-4.0.5-Windows64.zip">Windows 64-bit</a>,
<a href="bin/Windows/gmsh-4.0.5-Windows32.zip">Windows 32-bit</a>,
<a href="bin/Linux/gmsh-4.0.5-Linux64.tgz">Linux 64-bit</a>,
<a href="bin/Linux/gmsh-4.0.5-Linux32.tgz">Linux 32-bit</a> or
<a href="bin/MacOSX/gmsh-4.0.5-MacOSX.dmg">MacOS</a>
<li>Download the <a href="src/gmsh-4.0.5-source.tgz">source code</a>
<a href="bin/Windows/gmsh-4.0.6-Windows64.zip">Windows 64-bit</a>,
<a href="bin/Windows/gmsh-4.0.6-Windows32.zip">Windows 32-bit</a>,
<a href="bin/Linux/gmsh-4.0.6-Linux64.tgz">Linux 64-bit</a>,
<a href="bin/Linux/gmsh-4.0.6-Linux32.tgz">Linux 32-bit</a> or
<a href="bin/MacOSX/gmsh-4.0.6-MacOSX.dmg">MacOS</a>
<li>Download the <a href="src/gmsh-4.0.6-source.tgz">source code</a>
<li>Download the Software Development Kit (SDK) for
<a href="bin/Windows/gmsh-4.0.5-Windows64-sdk.zip">Windows 64-bit</a>,
<a href="bin/Windows/gmsh-4.0.5-Windows32-sdk.zip">Windows 32-bit</a>,
<a href="bin/Linux/gmsh-4.0.5-Linux64-sdk.tgz">Linux 64-bit</a>,
<a href="bin/Linux/gmsh-4.0.5-Linux32-sdk.tgz">Linux 32-bit</a> or
<a href="bin/MacOSX/gmsh-4.0.5-MacOSX-sdk.tgz">MacOS</a>
<a href="bin/Windows/gmsh-4.0.6-Windows64-sdk.zip">Windows 64-bit</a>,
<a href="bin/Windows/gmsh-4.0.6-Windows32-sdk.zip">Windows 32-bit</a>,
<a href="bin/Linux/gmsh-4.0.6-Linux64-sdk.tgz">Linux 64-bit</a>,
<a href="bin/Linux/gmsh-4.0.6-Linux32-sdk.tgz">Linux 32-bit</a> or
<a href="bin/MacOSX/gmsh-4.0.6-MacOSX-sdk.tgz">MacOS</a>
</ul>
</div>
<p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment