SMESH_MesherHelper helper( aMesh );
// do not call helper.IsQuadraticSubMesh() because sub-meshes
// may be cleaned and helper.myTLinkNodeMap gets invalid in such a case
- const bool haveQuadraticSubMesh = SMESH_MesherHelper( aMesh ).IsQuadraticSubMesh( aShape );
+ bool haveQuadraticSubMesh = SMESH_MesherHelper( aMesh ).IsQuadraticSubMesh( aShape );
+ bool quadraticSubMeshAndViscousLayer = false;
bool needMerge = false;
set< SMESHDS_SubMesh* > edgeSubmeshes, proxySubmeshes;
set< SMESHDS_SubMesh* >& mergeSubmeshes = edgeSubmeshes;
_hypothesis, css, pcs, aMesh, &use_precad);
MESSAGE("END SetParameters");
- helper.SetIsQuadratic( haveQuadraticSubMesh || (_hypothesis != NULL && _hypothesis->GetQuadraticMesh()) );
+ haveQuadraticSubMesh = haveQuadraticSubMesh || (_hypothesis != NULL && _hypothesis->GetQuadraticMesh());
+ helper.SetIsQuadratic( haveQuadraticSubMesh );
+ // To remove as soon as quadratic mesh is allowed - BEGIN
+ // GDD: Viscous layer is not allowed with quadratic mesh
+ if (_haveViscousLayers && haveQuadraticSubMesh ) {
+ quadraticSubMeshAndViscousLayer = true;
+ _haveViscousLayers = !haveQuadraticSubMesh;
+ _comment += "Warning: Viscous layer is not possible with a quadratic mesh, it is ignored.";
+ error(COMPERR_WARNING, _comment);
+ }
+ // To remove as soon as quadratic mesh is allowed - END
+
// needed to prevent the opencascade memory managmement from freeing things
vector<Handle(Geom2d_Curve)> curves;
vector<Handle(Geom_Surface)> surfaces;
*/
MESSAGE("END OF BLSURFPlugin_BLSURF::Compute()");
- return ( status == STATUS_OK );
+ return ( status == STATUS_OK && !quadraticSubMeshAndViscousLayer );
}
//================================================================================