From: vsr Date: Tue, 19 Mar 2013 16:22:36 +0000 (+0000) Subject: Merge from V6_main 19/03/2013 X-Git-Tag: V7_1_0~1 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=de9ffb069970832333c79d37f00ea789c0095275;p=modules%2Fsmesh.git Merge from V6_main 19/03/2013 --- diff --git a/doc/salome/examples/CMakeLists.txt b/doc/salome/examples/CMakeLists.txt new file mode 100644 index 000000000..1a1c79544 --- /dev/null +++ b/doc/salome/examples/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (C) 2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +SET(docdir ${CMAKE_INSTALL_PREFIX}/share/doc/salome) +FILE(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/*.py") +INSTALL(FILES ${files} DESTINATION ${docdir}/examples/SMESH) + diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx index d6bb729e4..49bf5c41a 100644 --- a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx @@ -18,12 +18,11 @@ // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// // SMESH DriverMED : driver to read and write 'med' files // File : DriverMED_R_SMESHDS_Mesh.cxx // Module : SMESH -// + #include "DriverMED_R_SMESHDS_Mesh.h" #include "SMESHDS_Mesh.hxx" #include "utilities.h" @@ -36,6 +35,8 @@ #include "MED_CoordUtils.hxx" #include "MED_Utilities.hxx" +#include + #include #ifdef _DEBUG_ @@ -71,7 +72,7 @@ DriverMED_R_SMESHDS_Mesh ::Perform() { Status aResult = DRS_FAIL; - bool isDescConn = false; + bool isDescConn = false; // Mantis issue 0020483 #ifndef _DEXCEPT_ try{ #endif @@ -175,13 +176,17 @@ DriverMED_R_SMESHDS_Mesh } // Are there any MED cells in descending connectivity + // Mantis issue 0020483 //--------------------------------------------------- + NCollection_Map aDescendingEntitiesMap; if (!isDescConn) { MED::TEntityInfo aEntityInfoDesc = aMed->GetEntityInfo(aMeshInfo, eDESC); MED::TEntityInfo::iterator anEntityIterDesc = aEntityInfoDesc.begin(); - for (; anEntityIterDesc != aEntityInfoDesc.end() && !isDescConn; anEntityIterDesc++) { + //for (; anEntityIterDesc != aEntityInfoDesc.end() && !isDescConn; anEntityIterDesc++) { + for (; anEntityIterDesc != aEntityInfoDesc.end(); anEntityIterDesc++) { const EEntiteMaillage& anEntity = anEntityIterDesc->first; - if (anEntity != eNOEUD) isDescConn = true; + aDescendingEntitiesMap.Add(anEntity); + //if (anEntity != eNOEUD) isDescConn = true; } } @@ -193,6 +198,7 @@ DriverMED_R_SMESHDS_Mesh MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin(); for (; anEntityIter != aEntityInfo.end(); anEntityIter++) { const EEntiteMaillage& anEntity = anEntityIter->first; + aDescendingEntitiesMap.Remove(anEntity); // Mantis issue 0020483 if (anEntity == eNOEUD) continue; // Reading MED cells to the corresponding SMDS structure //------------------------------------------------------ @@ -904,8 +910,9 @@ DriverMED_R_SMESHDS_Mesh }} } } - } - } + if (aDescendingEntitiesMap.Extent()) isDescConn = true; // Mantis issue 0020483 + } // for(int iMesh = 0; iMesh < aNbMeshes; iMesh++) + } // if aNbMeshes #ifndef _DEXCEPT_ }catch(const std::exception& exc){ INFOS("The following exception was caught:\n\t"<compactMesh(); + // Mantis issue 0020483 if (aResult == DRS_OK && isDescConn) { INFOS("There are some elements in descending connectivity in med file. They were not read !!!"); aResult = DRS_WARN_DESCENDING; @@ -944,10 +952,10 @@ list DriverMED_R_SMESHDS_Mesh::GetMeshNames(Status& theStatus) aMeshNames.push_back(aMeshInfo->GetName()); } } - }catch(const std::exception& exc){ + } catch(const std::exception& exc) { INFOS("Following exception was caught:\n\t"<Initialize(); myGrid->Allocate(); vtkPoints* points = vtkPoints::New(); - // rnv: to fix bug "21125: EDF 1233 SMESH: Degrardation of precision in a test case for quadratic conversion" - // using double type for storing coordinates of nodes instead float. + // bug "21125: EDF 1233 SMESH: Degrardation of precision in a test case for quadratic conversion" + // Use double type for storing coordinates of nodes instead of float. points->SetDataType(VTK_DOUBLE); - points->SetNumberOfPoints(SMDS_Mesh::chunkSize); + points->SetNumberOfPoints(0 /*SMDS_Mesh::chunkSize*/); myGrid->SetPoints( points ); points->Delete(); myGrid->BuildLinks(); diff --git a/src/StdMeshers/StdMeshers_AutomaticLength.cxx b/src/StdMeshers/StdMeshers_AutomaticLength.cxx index 5d2543666..5f37f19b0 100644 --- a/src/StdMeshers/StdMeshers_AutomaticLength.cxx +++ b/src/StdMeshers/StdMeshers_AutomaticLength.cxx @@ -117,6 +117,19 @@ namespace { */ //================================================================================ + const double a14divPI = 14. / M_PI; + + + inline double segLength(double S0, double edgeLen, double minLen ) + { + // PAL10237 + // S = S0 * f(L/Lmin) where f(x) = 1 + (2/Pi * 7 * atan(x/5) ) + + // => + // S = S0 * ( 1 + 14/PI * atan( L / ( 5 * Lmin ))) + return S0 * ( 1. + a14divPI * atan( edgeLen / ( 5 * minLen ))); + } +#if 0 //const double a14divPI = 14. / M_PI; const double a2div7divPI = 2. / 7. / M_PI; @@ -141,7 +154,7 @@ namespace { const double Lratio = edgeLen / minLen; return S0 * ( 1. + a2div7divPI * Lratio * atan( 5 * Lratio )); } - +#endif //================================================================================ /*! * \brief Compute segment length for all edges