diff --git a/CMakeLists.txt b/CMakeLists.txt index a88f8c23a..03e0f5357 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 @@ -28,8 +28,8 @@ CMAKE_POLICY(SET CMP0003 NEW) STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC) SET(${PROJECT_NAME_UC}_MAJOR_VERSION 7) -SET(${PROJECT_NAME_UC}_MINOR_VERSION 4) -SET(${PROJECT_NAME_UC}_PATCH_VERSION 1) +SET(${PROJECT_NAME_UC}_MINOR_VERSION 7) +SET(${PROJECT_NAME_UC}_PATCH_VERSION 0) SET(${PROJECT_NAME_UC}_VERSION ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION}) SET(${PROJECT_NAME_UC}_VERSION_DEV 1) @@ -42,6 +42,8 @@ IF(EXISTS ${KERNEL_ROOT_DIR}) INCLUDE(SalomeMacros) FIND_PACKAGE(SalomeKERNEL REQUIRED) KERNEL_WITH_CORBA() #check whether KERNEL builded with CORBA + ADD_DEFINITIONS(${KERNEL_DEFINITIONS}) + INCLUDE_DIRECTORIES(${KERNEL_INCLUDE_DIRS}) ELSE(EXISTS ${KERNEL_ROOT_DIR}) MESSAGE(FATAL_ERROR "We absolutely need a Salome KERNEL, please define KERNEL_ROOT_DIR") ENDIF(EXISTS ${KERNEL_ROOT_DIR}) @@ -101,9 +103,6 @@ FIND_PACKAGE(SalomeLibXml2 REQUIRED) FIND_PACKAGE(SalomeHDF5 REQUIRED COMPONENTS C) # Other KERNEL optionals: -IF(SALOME_USE_MPI) - FIND_PACKAGE(SalomeMPI) # needed for doc generation by Sphinx -ENDIF() IF(SALOME_BUILD_TESTS) ENABLE_TESTING() FIND_PACKAGE(SalomeCppUnit) @@ -122,7 +121,9 @@ IF(SALOME_BUILD_GUI) IF(EXISTS ${GUI_ROOT_DIR}) LIST(APPEND CMAKE_MODULE_PATH "${GUI_ROOT_DIR}/adm_local/cmake_files") FIND_PACKAGE(SalomeGUI) - FULL_GUI(TRUE) #check whether GUI builded in full mode and with CORBA + SALOME_GUI_WITH_CORBA() #check whether GUI builded with CORBA + SALOME_GUI_MODE(SALOME_USE_VTKVIEWER SALOME_USE_SALOMEOBJECT + OPTIONAL SALOME_USE_PLOT2DVIEWER SALOME_USE_PYCONSOLE) ## ## Prerequisites From GUI: ## diff --git a/SMESH_version.h.in b/SMESH_version.h.in index ddf1bff09..79e9367d3 100644 --- a/SMESH_version.h.in +++ b/SMESH_version.h.in @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/SalomeSMESHConfig.cmake.in b/SalomeSMESHConfig.cmake.in index 204cb8816..8a8827406 100644 --- a/SalomeSMESHConfig.cmake.in +++ b/SalomeSMESHConfig.cmake.in @@ -5,7 +5,7 @@ # ############################################################### -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/CMakeLists.txt b/adm_local/CMakeLists.txt index bedde74e0..3f181513f 100755 --- a/adm_local/CMakeLists.txt +++ b/adm_local/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/cmake_files/CMakeLists.txt b/adm_local/cmake_files/CMakeLists.txt index 3ccd4f39d..9be31435b 100755 --- a/adm_local/cmake_files/CMakeLists.txt +++ b/adm_local/cmake_files/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 diff --git a/adm_local/cmake_files/FindCGNS.cmake b/adm_local/cmake_files/FindCGNS.cmake index 84471e631..94535f27e 100644 --- a/adm_local/cmake_files/FindCGNS.cmake +++ b/adm_local/cmake_files/FindCGNS.cmake @@ -5,7 +5,7 @@ # ######################################################################### -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/cmake_files/FindSMESH.cmake b/adm_local/cmake_files/FindSMESH.cmake index aeb4ee6e0..e05012824 100644 --- a/adm_local/cmake_files/FindSMESH.cmake +++ b/adm_local/cmake_files/FindSMESH.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 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 diff --git a/adm_local/cmake_files/FindSalomeCGNS.cmake b/adm_local/cmake_files/FindSalomeCGNS.cmake index 1f5ced5b4..a49239168 100644 --- a/adm_local/cmake_files/FindSalomeCGNS.cmake +++ b/adm_local/cmake_files/FindSalomeCGNS.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2013-2015 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 diff --git a/adm_local/cmake_files/FindSalomeSMESH.cmake b/adm_local/cmake_files/FindSalomeSMESH.cmake index c433652b2..dc63bd2fa 100644 --- a/adm_local/cmake_files/FindSalomeSMESH.cmake +++ b/adm_local/cmake_files/FindSalomeSMESH.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 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 diff --git a/adm_local/cmake_files/FindSalomeTBB.cmake b/adm_local/cmake_files/FindSalomeTBB.cmake index c7486e9a1..0fc8270ee 100644 --- a/adm_local/cmake_files/FindSalomeTBB.cmake +++ b/adm_local/cmake_files/FindSalomeTBB.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2013-2015 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 diff --git a/adm_local/cmake_files/FindSalomef2c.cmake b/adm_local/cmake_files/FindSalomef2c.cmake index 1de9cd94c..4deefa22e 100755 --- a/adm_local/cmake_files/FindSalomef2c.cmake +++ b/adm_local/cmake_files/FindSalomef2c.cmake @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2013-2015 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 diff --git a/adm_local/cmake_files/FindTBB.cmake b/adm_local/cmake_files/FindTBB.cmake index 2fa30c576..a1592539f 100644 --- a/adm_local/cmake_files/FindTBB.cmake +++ b/adm_local/cmake_files/FindTBB.cmake @@ -5,7 +5,7 @@ # ######################################################################### -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -41,21 +41,65 @@ ENDIF(TBB_ROOT_DIR) FIND_PATH(TBB_INCLUDE_DIRS tbb/tbb.h PATH_SUFFIXES include) -SET(TBBKERNEL cc4.1.0_libc2.4_kernel2.6.16.21) - IF(MACHINE_IS_64) - SET(LIB_SUFFIX lib/intel64/${TBBKERNEL}) + SET(PLT_SUFFIX intel64) ELSE(MACHINE_IS_64) - SET(LIB_SUFFIX lib/ia32/${TBBKERNEL}) + SET(PLT_SUFFIX ia32) ENDIF(MACHINE_IS_64) -FIND_LIBRARY(TBB_LIBRARY_tbb NAMES tbb PATH_SUFFIXES "${LIB_SUFFIX}") -FIND_LIBRARY(TBB_LIBRATY_tbbmalloc NAMES tbbmalloc PATH_SUFFIXES "${LIB_SUFFIX}") +include(CheckCXXSourceCompiles) -SET(TBB_LIBRARIES - ${TBB_LIBRARY_tbb} - ${TBB_LIBRATY_tbbmalloc} -) +FOREACH(_kernel cc4.1.0_libc2.4_kernel2.6.16.21 gcc4.4 gcc4.1) + + FIND_LIBRARY(_tbb_library_tbb${_kernel} NAMES tbb PATH_SUFFIXES lib/${PLT_SUFFIX}/${_kernel}) + FIND_LIBRARY(_tbb_library_tbbmalloc${_kernel} NAMES tbbmalloc PATH_SUFFIXES lib/${PLT_SUFFIX}/${_kernel}) + + SET(_tbb_libraries${_kernel} ${_tbb_library_tbb${_kernel}} ${_tbb_library_tbbmalloc${_kernel}}) + + IF(_tbb_libraries${_kernel}) + + SET(CMAKE_REQUIRED_INCLUDES_SAVE ${CMAKE_REQUIRED_INCLUDES}) + SET(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) + SET(CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES} ${TBB_INCLUDE_DIRS}") + SET(CMAKE_REQUIRED_LIBRARIES "${_tbb_libraries${_kernel}}") + + CHECK_CXX_SOURCE_COMPILES(" + #include + using namespace tbb; + size_t testme(size_t n) + { + return n*n; + } + int main(int argc, char* argv[]) + { + parallel_for( 1, 10, 1, testme ); + } + " + _tbb_link_ok${_kernel} + ) + + SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_SAVE}) + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE}) + + IF(_tbb_link_ok${_kernel}) + SET(_tbb_link_ok ${_tbb_link_ok${_kernel}}) + SET(TBB_LIBRARY_tbb ${_tbb_library_tbb${_kernel}} CACHE FILEPATH "Path to a library") + SET(TBB_LIBRARY_tbbmalloc ${_tbb_library_tbbmalloc${_kernel}} CACHE FILEPATH "Path to a library") + SET(TBB_LIBRARIES ${TBB_LIBRARY_tbb} ${TBB_LIBRARY_tbbmalloc}) + ENDIF() + + UNSET(_tbb_link_ok${_kernel} CACHE) + + ENDIF(_tbb_libraries${_kernel}) + + UNSET(_tbb_library_tbb${_kernel} CACHE) + UNSET(_tbb_library_tbbmalloc${_kernel} CACHE) + + IF(_tbb_link_ok) + BREAK() + ENDIF() + +ENDFOREACH() INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(TBB REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARY_tbb TBB_LIBRATY_tbbmalloc) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(TBB REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARY_tbb TBB_LIBRARY_tbbmalloc) diff --git a/adm_local/cmake_files/Findf2c.cmake b/adm_local/cmake_files/Findf2c.cmake index 896f1e349..8510af1c7 100755 --- a/adm_local/cmake_files/Findf2c.cmake +++ b/adm_local/cmake_files/Findf2c.cmake @@ -6,7 +6,7 @@ # ######################################################################### -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/CMakeLists.txt b/adm_local/unix/CMakeLists.txt index eb508c1f4..0e7521931 100755 --- a/adm_local/unix/CMakeLists.txt +++ b/adm_local/unix/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 diff --git a/adm_local/unix/config_files/CMakeLists.txt b/adm_local/unix/config_files/CMakeLists.txt index a734dfab3..28926ce57 100755 --- a/adm_local/unix/config_files/CMakeLists.txt +++ b/adm_local/unix/config_files/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_Platform.m4 b/adm_local/unix/config_files/check_Platform.m4 index 16344da79..37cb27288 100755 --- a/adm_local/unix/config_files/check_Platform.m4 +++ b/adm_local/unix/config_files/check_Platform.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_SMESH.m4 b/adm_local/unix/config_files/check_SMESH.m4 index 7e9d4eefa..189e12c85 100644 --- a/adm_local/unix/config_files/check_SMESH.m4 +++ b/adm_local/unix/config_files/check_SMESH.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_cgal.m4 b/adm_local/unix/config_files/check_cgal.m4 index ca787993f..3f5d6b0eb 100644 --- a/adm_local/unix/config_files/check_cgal.m4 +++ b/adm_local/unix/config_files/check_cgal.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_cgns.m4 b/adm_local/unix/config_files/check_cgns.m4 index 4f27dc6bd..27d5741bc 100644 --- a/adm_local/unix/config_files/check_cgns.m4 +++ b/adm_local/unix/config_files/check_cgns.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_f77.m4 b/adm_local/unix/config_files/check_f77.m4 index 99f34c0fa..9c74dee19 100644 --- a/adm_local/unix/config_files/check_f77.m4 +++ b/adm_local/unix/config_files/check_f77.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_padder.m4 b/adm_local/unix/config_files/check_padder.m4 index ca8ace8ba..5c65463f2 100644 --- a/adm_local/unix/config_files/check_padder.m4 +++ b/adm_local/unix/config_files/check_padder.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/adm_local/unix/config_files/check_qwt.m4 b/adm_local/unix/config_files/check_qwt.m4 index 8990bffad..43595035b 100644 --- a/adm_local/unix/config_files/check_qwt.m4 +++ b/adm_local/unix/config_files/check_qwt.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt index 4af8a501e..1b651f73d 100755 --- a/bin/CMakeLists.txt +++ b/bin/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 diff --git a/bin/smesh_setenv.py b/bin/smesh_setenv.py index b58c8e412..bdb3afd23 100644 --- a/bin/smesh_setenv.py +++ b/bin/smesh_setenv.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 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 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 27aa5730a..8bfe7cab7 100755 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/CMakeLists.txt b/doc/salome/CMakeLists.txt index 197a24a4f..1ccad11e2 100755 --- a/doc/salome/CMakeLists.txt +++ b/doc/salome/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/examples/CMakeLists.txt b/doc/salome/examples/CMakeLists.txt index 7aa063689..65d8e52e2 100644 --- a/doc/salome/examples/CMakeLists.txt +++ b/doc/salome/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 @@ -49,121 +49,123 @@ SET(GOOD_TESTS creating_meshes_ex02.py creating_meshes_ex04.py creating_meshes_ex06.py - creating_meshes_ex07.py - creating_meshes_ex08.py - defining_hypotheses_ex01.py - defining_hypotheses_ex02.py - defining_hypotheses_ex03.py - defining_hypotheses_ex04.py - defining_hypotheses_ex05.py - defining_hypotheses_ex07.py - defining_hypotheses_ex08.py - defining_hypotheses_ex10.py - defining_hypotheses_ex11.py - defining_hypotheses_ex12.py - defining_hypotheses_ex13.py - defining_hypotheses_ex14.py - defining_hypotheses_ex15.py - defining_hypotheses_ex16.py + creating_meshes_ex07.py + creating_meshes_ex08.py + defining_hypotheses_ex01.py + defining_hypotheses_ex02.py + defining_hypotheses_ex03.py + defining_hypotheses_ex04.py + defining_hypotheses_ex05.py + defining_hypotheses_ex07.py + defining_hypotheses_ex08.py + defining_hypotheses_ex10.py + defining_hypotheses_ex11.py + defining_hypotheses_ex12.py + defining_hypotheses_ex13.py + defining_hypotheses_ex14.py + defining_hypotheses_ex15.py + defining_hypotheses_ex16.py defining_hypotheses_adaptive1d.py - filters_ex01.py - filters_ex03.py - filters_ex04.py - filters_ex05.py - filters_ex06.py - filters_ex07.py - filters_ex09.py - filters_ex10.py - filters_ex11.py - filters_ex12.py - filters_ex13.py - filters_ex14.py - filters_ex15.py - filters_ex16.py - filters_ex17.py - filters_ex18.py - filters_ex19.py - filters_ex20.py - filters_ex21.py - filters_ex22.py - filters_ex26.py - filters_ex27.py - filters_ex28.py - filters_ex29.py - filters_ex30.py - filters_ex31.py - filters_ex33.py - filters_ex34.py - filters_ex36.py - grouping_elements_ex01.py - grouping_elements_ex02.py - grouping_elements_ex03.py - grouping_elements_ex04.py - grouping_elements_ex05.py - grouping_elements_ex06.py - grouping_elements_ex07.py - grouping_elements_ex08.py - measurements_ex01.py - measurements_ex02.py - modifying_meshes_ex01.py - modifying_meshes_ex02.py - modifying_meshes_ex03.py - modifying_meshes_ex04.py - modifying_meshes_ex05.py - modifying_meshes_ex06.py - modifying_meshes_ex07.py - modifying_meshes_ex08.py - modifying_meshes_ex09.py - modifying_meshes_ex10.py - modifying_meshes_ex11.py - modifying_meshes_ex12.py - modifying_meshes_ex13.py - modifying_meshes_ex14.py - modifying_meshes_ex15.py - modifying_meshes_ex16.py - modifying_meshes_ex17.py - modifying_meshes_ex18.py - modifying_meshes_ex19.py - modifying_meshes_ex20.py - modifying_meshes_ex21.py - modifying_meshes_ex22.py - modifying_meshes_ex23.py - modifying_meshes_ex24.py - modifying_meshes_ex25.py - prism_3d_algo.py - quality_controls_ex01.py - quality_controls_ex02.py - quality_controls_ex03.py - quality_controls_ex04.py - quality_controls_ex05.py - quality_controls_ex07.py - quality_controls_ex08.py - quality_controls_ex09.py - quality_controls_ex10.py - quality_controls_ex11.py - quality_controls_ex12.py - quality_controls_ex13.py - quality_controls_ex14.py - quality_controls_ex15.py - quality_controls_ex16.py - quality_controls_ex17.py - quality_controls_ex18.py - quality_controls_ex19.py - transforming_meshes_ex01.py - transforming_meshes_ex02.py - transforming_meshes_ex03.py - transforming_meshes_ex04.py - transforming_meshes_ex05.py - transforming_meshes_ex06.py - transforming_meshes_ex07.py - transforming_meshes_ex08.py - transforming_meshes_ex09.py - transforming_meshes_ex10.py - transforming_meshes_ex11.py - transforming_meshes_ex12.py - transforming_meshes_ex13.py - use_existing_faces.py + filters_ex01.py + filters_ex03.py + filters_ex04.py + filters_ex05.py + filters_ex06.py + filters_ex07.py + filters_ex09.py + filters_ex10.py + filters_ex11.py + filters_ex12.py + filters_ex13.py + filters_ex14.py + filters_ex15.py + filters_ex16.py + filters_ex17.py + filters_ex18.py + filters_ex19.py + filters_ex20.py + filters_ex21.py + filters_ex22.py + filters_ex26.py + filters_ex27.py + filters_ex28.py + filters_ex29.py + filters_ex30.py + filters_ex31.py + filters_ex33.py + filters_ex34.py + filters_ex36.py + filters_belong2group.py + grouping_elements_ex01.py + grouping_elements_ex02.py + grouping_elements_ex03.py + grouping_elements_ex04.py + grouping_elements_ex05.py + grouping_elements_ex06.py + grouping_elements_ex07.py + grouping_elements_ex08.py + measurements_ex01.py + measurements_ex02.py + modifying_meshes_ex01.py + modifying_meshes_ex02.py + modifying_meshes_ex03.py + modifying_meshes_ex04.py + modifying_meshes_ex05.py + modifying_meshes_ex06.py + modifying_meshes_ex07.py + modifying_meshes_ex08.py + modifying_meshes_ex09.py + modifying_meshes_ex10.py + modifying_meshes_ex11.py + modifying_meshes_ex12.py + modifying_meshes_ex13.py + modifying_meshes_ex14.py + modifying_meshes_ex15.py + modifying_meshes_ex16.py + modifying_meshes_ex17.py + modifying_meshes_ex18.py + modifying_meshes_ex19.py + modifying_meshes_ex20.py + modifying_meshes_ex21.py + modifying_meshes_ex22.py + modifying_meshes_ex23.py + modifying_meshes_ex24.py + modifying_meshes_ex25.py + prism_3d_algo.py + quality_controls_ex01.py + quality_controls_ex02.py + quality_controls_ex03.py + quality_controls_ex04.py + quality_controls_ex05.py + quality_controls_ex07.py + quality_controls_ex08.py + quality_controls_ex09.py + quality_controls_ex10.py + quality_controls_ex11.py + quality_controls_ex12.py + quality_controls_ex13.py + quality_controls_ex14.py + quality_controls_ex15.py + quality_controls_ex16.py + quality_controls_ex17.py + quality_controls_ex18.py + quality_controls_ex19.py + transforming_meshes_ex01.py + transforming_meshes_ex02.py + transforming_meshes_ex03.py + transforming_meshes_ex04.py + transforming_meshes_ex05.py + transforming_meshes_ex06.py + transforming_meshes_ex07.py + transforming_meshes_ex08.py + transforming_meshes_ex09.py + transforming_meshes_ex10.py + transforming_meshes_ex11.py + transforming_meshes_ex12.py + transforming_meshes_ex13.py + use_existing_faces.py viewing_meshes_ex02.py + split_biquad.py ) SET(EXAMPLES_TESTS ${BAD_TESTS} ${GOOD_TESTS} testme.py) @@ -172,10 +174,19 @@ SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env) FOREACH(test ${GOOD_TESTS}) GET_FILENAME_COMPONENT(testname ${test} NAME_WE) - ADD_TEST(NAME ${testname} + ADD_TEST(NAME ${testname} COMMAND ${PYTHON_EXECUTABLE} -B ${CMAKE_SOURCE_DIR}/doc/salome/examples/testme.py ${CMAKE_CURRENT_SOURCE_DIR}/${test}) SET_TESTS_PROPERTIES(${testname} PROPERTIES ENVIRONMENT "${tests_env}") ENDFOREACH() # install Python scripts SALOME_INSTALL_SCRIPTS("${EXAMPLES_TESTS}" ${SALOME_INSTALL_DOC}/examples/SMESH) + +# Application tests + +SET(TEST_INSTALL_DIRECTORY ${SALOME_INSTALL_SCRIPT_SCRIPTS}/test) +INSTALL(FILES ${GOOD_TESTS} DESTINATION ${TEST_INSTALL_DIRECTORY}) + +INSTALL(FILES CTestTestfileInstall.cmake + DESTINATION ${TEST_INSTALL_DIRECTORY} + RENAME CTestTestfile.cmake) diff --git a/doc/salome/examples/CTestTestfileInstall.cmake b/doc/salome/examples/CTestTestfileInstall.cmake new file mode 100644 index 000000000..ef512ff06 --- /dev/null +++ b/doc/salome/examples/CTestTestfileInstall.cmake @@ -0,0 +1,150 @@ +# Copyright (C) 2015 CEA/DEN, EDF R&D +# +# 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, or (at your option) any later version. +# +# 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(SALOME_TEST_DRIVER "$ENV{ABSOLUTE_APPLI_PATH}/bin/salome/appliskel/salome_test_driver.py") +SET(COMPONENT_NAME SMESH) +SET(TIMEOUT 300) + +SET(GOOD_TESTS + cartesian_algo + creating_meshes_ex02 + creating_meshes_ex04 + creating_meshes_ex06 + creating_meshes_ex07 + creating_meshes_ex08 + defining_hypotheses_ex01 + defining_hypotheses_ex02 + defining_hypotheses_ex03 + defining_hypotheses_ex04 + defining_hypotheses_ex05 + defining_hypotheses_ex07 + defining_hypotheses_ex08 + defining_hypotheses_ex10 + defining_hypotheses_ex11 + defining_hypotheses_ex12 + defining_hypotheses_ex13 + defining_hypotheses_ex14 + defining_hypotheses_ex15 + defining_hypotheses_ex16 + defining_hypotheses_adaptive1d + filters_ex01 + filters_ex03 + filters_ex04 + filters_ex05 + filters_ex06 + filters_ex07 + filters_ex09 + filters_ex10 + filters_ex11 + filters_ex12 + filters_ex13 + filters_ex14 + filters_ex15 + filters_ex16 + filters_ex17 + filters_ex18 + filters_ex19 + filters_ex20 + filters_ex21 + filters_ex22 + filters_ex26 + filters_ex27 + filters_ex28 + filters_ex29 + filters_ex30 + filters_ex31 + filters_ex33 + filters_ex34 + filters_ex36 + grouping_elements_ex01 + grouping_elements_ex02 + grouping_elements_ex03 + grouping_elements_ex04 + grouping_elements_ex05 + grouping_elements_ex06 + grouping_elements_ex07 + grouping_elements_ex08 + measurements_ex01 + measurements_ex02 + modifying_meshes_ex01 + modifying_meshes_ex02 + modifying_meshes_ex03 + modifying_meshes_ex04 + modifying_meshes_ex05 + modifying_meshes_ex06 + modifying_meshes_ex07 + modifying_meshes_ex08 + modifying_meshes_ex09 + modifying_meshes_ex10 + modifying_meshes_ex11 + modifying_meshes_ex12 + modifying_meshes_ex13 + modifying_meshes_ex14 + modifying_meshes_ex15 + modifying_meshes_ex16 + modifying_meshes_ex17 + modifying_meshes_ex18 + modifying_meshes_ex19 + modifying_meshes_ex20 + modifying_meshes_ex21 + modifying_meshes_ex22 + modifying_meshes_ex23 + modifying_meshes_ex24 + modifying_meshes_ex25 + prism_3d_algo + quality_controls_ex01 + quality_controls_ex02 + quality_controls_ex03 + quality_controls_ex04 + quality_controls_ex05 + quality_controls_ex07 + quality_controls_ex08 + quality_controls_ex09 + quality_controls_ex10 + quality_controls_ex11 + quality_controls_ex12 + quality_controls_ex13 + quality_controls_ex14 + quality_controls_ex15 + quality_controls_ex16 + quality_controls_ex17 + quality_controls_ex18 + quality_controls_ex19 + transforming_meshes_ex01 + transforming_meshes_ex02 + transforming_meshes_ex03 + transforming_meshes_ex04 + transforming_meshes_ex05 + transforming_meshes_ex06 + transforming_meshes_ex07 + transforming_meshes_ex08 + transforming_meshes_ex09 + transforming_meshes_ex10 + transforming_meshes_ex11 + transforming_meshes_ex12 + transforming_meshes_ex13 + use_existing_faces + viewing_meshes_ex02 +) + +FOREACH(tfile ${GOOD_TESTS}) + SET(TEST_NAME SMESH_${tfile}) + ADD_TEST(${TEST_NAME} python ${SALOME_TEST_DRIVER} ${TIMEOUT} ${tfile}.py) + SET_TESTS_PROPERTIES(${TEST_NAME} PROPERTIES LABELS "${COMPONENT_NAME}") +ENDFOREACH() diff --git a/doc/salome/examples/creating_meshes_ex07.py b/doc/salome/examples/creating_meshes_ex07.py index 65a4f742e..3b003961e 100644 --- a/doc/salome/examples/creating_meshes_ex07.py +++ b/doc/salome/examples/creating_meshes_ex07.py @@ -1,5 +1,4 @@ # Building a compound of meshes -# Note: it is a copy of 'SMESH_BuildCompound.py' from SMESH_SWIG import salome salome.salome_init() @@ -69,11 +68,14 @@ Gsup2=Mesh_sup.Group(Fsup2, "Sup") Ginf2=Mesh_sup.Group(Finf2, "Inf") ## create compounds -# create a compound of two meshes with renaming groups with the same names and +# create a compound of two meshes with renaming namesake groups and # merging of elements with the given tolerance -Compound1 = smesh.Concatenate([Mesh_inf.GetMesh(), Mesh_sup.GetMesh()], 0, 1, 1e-05) -smesh.SetName(Compound1, 'Compound_with_RenamedGrps_and_MergeElems') -# create a compound of two meshes with uniting groups with the same names and +Compound1 = smesh.Concatenate([Mesh_inf, Mesh_sup], 0, 1, 1e-05, + name='Compound_with_RenamedGrps_and_MergeElems') +# create a compound of two meshes with uniting namesake groups and # creating groups of all elements -Compound2 = smesh.Concatenate([Mesh_inf.GetMesh(), Mesh_sup.GetMesh()], 1, 0, 1e-05, True) -smesh.SetName(Compound2, 'Compound_with_UniteGrps_and_GrpsOfAllElems') +Compound2 = smesh.Concatenate([Mesh_inf, Mesh_sup], 1, 0, 1e-05, True, + name='Compound_with_UniteGrps_and_GrpsOfAllElems') + +if salome.sg.hasDesktop(): + salome.sg.updateObjBrowser(1) diff --git a/doc/salome/examples/filters_belong2group.py b/doc/salome/examples/filters_belong2group.py new file mode 100644 index 000000000..889c0aef7 --- /dev/null +++ b/doc/salome/examples/filters_belong2group.py @@ -0,0 +1,18 @@ +# Belong to Mesh Group criterion + +# create mesh +from SMESH_mechanic import * + +# create a group of all faces (quadrangles) generated on sub_face3 +faces_on_face3 = mesh.MakeGroup("faces_on_face3", SMESH.FACE, SMESH.FT_BelongToGeom,'=',sub_face3) +print "There are %s quadrangles generated on '%s' and included in the group '%s'" % ( faces_on_face3.Size(), sub_face3.GetName(), faces_on_face3.GetName() ) + +# create a group of all the rest quadrangles, generated on other faces by combining 2 criteria: +# - negated FT_BelongToMeshGroup to select elements not included in faces_on_face3 +# - FT_ElemGeomType to select quadrangles +not_on_face3 = smesh.GetCriterion( SMESH.FACE, SMESH.FT_BelongToMeshGroup,'=',faces_on_face3, SMESH.FT_LogicalNOT ) +quadrangles = smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=',SMESH.Geom_QUADRANGLE ) + +rest_quads = mesh.MakeGroupByCriteria("rest_quads", [ not_on_face3, quadrangles ]) +print "'%s' group includes all the rest %s quadrangles" % ( rest_quads.GetName(), rest_quads.Size() ) + diff --git a/doc/salome/examples/filters_ex01.py b/doc/salome/examples/filters_ex01.py index 03f6c7477..88305c97f 100644 --- a/doc/salome/examples/filters_ex01.py +++ b/doc/salome/examples/filters_ex01.py @@ -9,12 +9,12 @@ ids = mesh.GetIdsFromFilter(filter) print "Number of faces with aspect ratio > 1.5:", len(ids) # copy the faces with aspect ratio > 1.5 to another mesh; -# this demostrates that a filter can be used where usually a group or submesh is acceptable +# this demostrates that a filter can be used where usually a group or sub-mesh is acceptable filter.SetMesh( mesh.GetMesh() ) mesh2 = smesh.CopyMesh( filter, "AR > 1.5" ) print "Number of copied faces with aspect ratio > 1.5:", mesh2.NbFaces() -# create a Group of faces with Aspect Ratio < 1.5 +# create a group (Group on Filter) of faces with Aspect Ratio < 1.5 group = mesh.MakeGroup("AR < 1.5", SMESH.FACE, SMESH.FT_AspectRatio, '<', 1.5) print "Number of faces with aspect ratio < 1.5:", group.Size() @@ -22,7 +22,13 @@ print "Number of faces with aspect ratio < 1.5:", group.Size() # note that contents of a GroupOnFilter is dynamically updated as the mesh changes crit = [ smesh.GetCriterion( SMESH.FACE, SMESH.FT_AspectRatio, '<', 1.5, BinaryOp=SMESH.FT_LogicalAND ), smesh.GetCriterion( SMESH.FACE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_TRIANGLE ) ] -filter = smesh.GetFilterFromCriteria( crit ) -triaGroup = mesh.GroupOnFilter( SMESH.FACE, "Tria AR < 1.5", filter ) +triaGroup = mesh.MakeGroupByCriteria( "Tria AR < 1.5", crit ) print "Number of triangles with aspect ratio < 1.5:", triaGroup.Size() +# get range of values of Aspect Ratio of all faces in the mesh +aspects = mesh.GetMinMax( SMESH.FT_AspectRatio ) +print "MESH: Min aspect = %s, Max aspect = %s" % ( aspects[0], aspects[1] ) + +# get max value of Aspect Ratio of faces in triaGroup +grAspects = mesh.GetMinMax( SMESH.FT_AspectRatio, triaGroup ) +print "GROUP: Max aspect = %s" % grAspects[1] diff --git a/doc/salome/examples/filters_ex36.py b/doc/salome/examples/filters_ex36.py index 3dc8e4fc6..ec1e2b4fb 100644 --- a/doc/salome/examples/filters_ex36.py +++ b/doc/salome/examples/filters_ex36.py @@ -1,13 +1,17 @@ -# Combine filters with Criterion structures using of "criteria". +# Combine several criteria into a filter # create mesh from SMESH_mechanic import * + # get all the quadrangle faces ... criterion1 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_ElemGeomType, SMESH.Geom_QUADRANGLE, SMESH.FT_LogicalAND) -# ... AND do NOT get those from sub_face3 +# ... but those from sub_face3 criterion2 = smesh.GetCriterion(SMESH.FACE, SMESH.FT_BelongToGeom, sub_face3, SMESH.FT_LogicalNOT) -filter = smesh.CreateFilterManager().CreateFilter() -filter.SetCriteria([criterion1,criterion2]) -ids = mesh.GetIdsFromFilter(filter) -myGroup = mesh.MakeGroupByIds("Quads_on_cylindrical_faces",SMESH.FACE,ids) +quadFilter = smesh.GetFilterFromCriteria([criterion1,criterion2]) + +# get faces satisfying the criteria +ids = mesh.GetIdsFromFilter(quadFilter) + +# create a group of faces satisfying the criteria +myGroup = mesh.GroupOnFilter(SMESH.FACE,"Quads_on_cylindrical_faces",quadFilter) diff --git a/doc/salome/examples/grouping_elements_ex08.py b/doc/salome/examples/grouping_elements_ex08.py index fa78d72f3..92dd71ce0 100644 --- a/doc/salome/examples/grouping_elements_ex08.py +++ b/doc/salome/examples/grouping_elements_ex08.py @@ -1,4 +1,4 @@ -# Creating groups of entities from existing groups of superior dimensions +# Creating groups of entities basing on nodes of other groups import SMESH_mechanic import SMESH @@ -10,22 +10,17 @@ salome = SMESH_mechanic.salome # Criterion : AREA > 100 aFilter = smesh.GetFilter(SMESH.FACE, SMESH.FT_Area, SMESH.FT_MoreThan, 100.) -anIds = mesh.GetIdsFromFilter(aFilter) - -print "Criterion: Area > 100, Nb = ", len(anIds) - # create a group by adding elements with area > 100 -aSrcGroup1 = mesh.MakeGroupByIds("Area > 100", SMESH.FACE, anIds) +aSrcGroup1 = mesh.GroupOnFilter(SMESH.FACE, "Area > 100", aFilter) +print "Criterion: Area > 100, Nb = ", aSrcGroup1.Size() # Criterion : AREA < 30 aFilter = smesh.GetFilter(SMESH.FACE, SMESH.FT_Area, SMESH.FT_LessThan, 30.) -anIds = mesh.GetIdsFromFilter(aFilter) - -print "Criterion: Area < 30, Nb = ", len(anIds) - # create a group by adding elements with area < 30 -aSrcGroup2 = mesh.MakeGroupByIds("Area < 30", SMESH.FACE, anIds) +aSrcGroup2 = mesh.GroupOnFilter(SMESH.FACE, "Area < 30", aFilter) +print "Criterion: Area < 30, Nb = ", aSrcGroup2.Size() + # Create group of edges using source groups of faces aGrp = mesh.CreateDimGroup( [aSrcGroup1, aSrcGroup2], SMESH.EDGE, "Edges" ) diff --git a/doc/salome/examples/split_biquad.py b/doc/salome/examples/split_biquad.py new file mode 100644 index 000000000..e53e7b0b1 --- /dev/null +++ b/doc/salome/examples/split_biquad.py @@ -0,0 +1,37 @@ +# Split bi-quadratic to linear + +import salome +salome.salome_init() + +from salome.geom import geomBuilder +geompy = geomBuilder.New(salome.myStudy) + +from salome.smesh import smeshBuilder +smesh = smeshBuilder.New(salome.myStudy) + +# make a shape consisting of two quadranges +OY = geompy.MakeVectorDXDYDZ(0, 1, 0) +OY1 = geompy.MakeTranslation( OY, 1, 0, 0 ) +OY2 = geompy.MakeTranslation( OY, 2, 0, 0 ) +q1 = geompy.MakeQuad2Edges( OY, OY1 ) +q2 = geompy.MakeQuad2Edges( OY1, OY2 ) + +shape = geompy.Partition( [q1,q2], theName='shape' ) +ff = geompy.SubShapeAll( shape, geompy.ShapeType["FACE"], theName="quad" ) + +# mesh one quadrange with quadrangless and the other with triangles +mesh = smesh.Mesh( shape ) +mesh.Segment().NumberOfSegments(1) +mesh.Quadrangle() +mesh.Triangle( ff[1] ) +mesh.Compute() + +# make group of quadrangles and extrude them into a hexahedron +quadGroup = mesh.Group( ff[0], "quads") +mesh.ExtrusionSweepObject2D( quadGroup, [0,0,1], 1 ) + +# make the mesh bi-quadratic +mesh.ConvertToQuadratic( theToBiQuad=True ) + +# split all elements into linear ones +mesh.SplitBiQuadraticIntoLinear() diff --git a/doc/salome/examples/testme.py b/doc/salome/examples/testme.py index 7fca21f06..cd74c4495 100755 --- a/doc/salome/examples/testme.py +++ b/doc/salome/examples/testme.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 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 @@ -24,11 +24,21 @@ import unittest, sys, os class SalomeSession(object): def __init__(self, script): import runSalome - sys.argv = ["runSalome.py"] + run_script = "runSalome.py" + if sys.platform == 'win32': + module_dir = os.getenv("KERNEL_ROOT_DIR") + if module_dir: run_script = os.path.join(module_dir, "bin", "salome", run_script) + pass + sys.argv = [run_script] sys.argv += ["--terminal"] sys.argv += ["--modules=GEOM,MED,SMESH"] sys.argv += ["%s" % script] + if sys.platform == 'win32': + main_module_path = sys.modules['__main__'].__file__ + sys.modules['__main__'].__file__ = '' clt, d = runSalome.main() + if sys.platform == 'win32': + sys.modules['__main__'].__file__ = main_module_path return def __del__(self): diff --git a/doc/salome/examples/transforming_meshes_ex01.py b/doc/salome/examples/transforming_meshes_ex01.py index dc61324ec..93f5196c0 100644 --- a/doc/salome/examples/transforming_meshes_ex01.py +++ b/doc/salome/examples/transforming_meshes_ex01.py @@ -1,16 +1,11 @@ # Translation import SMESH_mechanic -import SMESH -smesh = SMESH_mechanic.smesh mesh = SMESH_mechanic.mesh # define translation vector -point = SMESH.PointStruct(-150., -150., 0.) -vector =SMESH.DirStruct(point) +vector = [-150., -150., 0.] -# translate a mesh -doCopy = 1 - -mesh.Translate([], vector, doCopy) +# make a translated copy of all elements of the mesh +mesh.TranslateObject(mesh, vector, Copy=True) diff --git a/doc/salome/examples/transforming_meshes_ex05.py b/doc/salome/examples/transforming_meshes_ex05.py index f99d50b6a..deba1c407 100644 --- a/doc/salome/examples/transforming_meshes_ex05.py +++ b/doc/salome/examples/transforming_meshes_ex05.py @@ -1,10 +1,14 @@ # Merging Nodes -import SMESH_mechanic +import SMESH_mechanic, SMESH mesh = SMESH_mechanic.mesh # merge nodes -Tolerance = 25.0 +Tolerance = 4.0 + +# prevent nodes located on geom edges from removal during merge: +# create a group including all nodes on edges +allSegs = mesh.MakeGroup( "all segments", SMESH.EDGE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_EDGE ) GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance) -mesh.MergeNodes(GroupsOfNodes) +mesh.MergeNodes(GroupsOfNodes, NodesToKeep=allSegs) diff --git a/doc/salome/examples/transforming_meshes_ex09.py b/doc/salome/examples/transforming_meshes_ex09.py index 62fea88d1..9264a5c4c 100644 --- a/doc/salome/examples/transforming_meshes_ex09.py +++ b/doc/salome/examples/transforming_meshes_ex09.py @@ -11,35 +11,40 @@ import SMESH, SALOMEDS from salome.smesh import smeshBuilder smesh = smeshBuilder.New(salome.myStudy) -# create two faces of the box -box1 = geompy.MakeBox(0., 0., 0., 20., 20., 15.) -facesList1 = geompy.SubShapeAll(box1, geompy.ShapeType["FACE"]) -face1 = facesList1[2] +# make two not sewed quadranges +OY0 = geompy.MakeVectorDXDYDZ(0, 1, 0) +OY1 = geompy.MakeTranslation( OY0, 1, 0, 0, theName="OY1" ) +OY2 = geompy.MakeTranslation( OY0, 1.01, 0, 0, theName="OY2" ) +OY3 = geompy.MakeTranslation( OY0, 2, 0, 0 ) +q1 = geompy.MakeQuad2Edges( OY0, OY1 ) +q2 = geompy.MakeQuad2Edges( OY2, OY3 ) -box2 = geompy.MakeBox(0., 5., 0., 20., 20., 15.) -facesList2 = geompy.SubShapeAll(box2, geompy.ShapeType["FACE"]) -face2 = facesList2[1] - -edgesList = geompy.SubShapeAll(face2, geompy.ShapeType["EDGE"]) -edge1 = edgesList[2] - -aComp = geompy.MakeCompound([face1, face2]) -geompy.addToStudy(aComp, "Two faces") - -# create a mesh on two faces -mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") - -algo1D = mesh.Segment() -algo1D.NumberOfSegments(4) -algo2D = mesh.Quadrangle() - -algo_local = mesh.Segment(edge1) -algo_local.Arithmetic1D(1, 4) -algo_local.Propagation() +shape = geompy.MakeCompound( [q1,q2], theName='shape' ) +# make a non-uniform quadrangle mesh on two faces +mesh = smesh.Mesh(shape, "Two faces : quadrangle mesh") +mesh.Segment().Arithmetic1D( 0.1, 0.4 ) +mesh.Segment(q1).NumberOfSegments( 5 ) +mesh.Quadrangle() mesh.Compute() # sew free borders -# FirstNodeID1, SecondNodeID1, LastNodeID1, -# FirstNodeID2, SecondNodeID2, LastNodeID2, CreatePolygons, CreatePolyedrs -mesh.SewFreeBorders(6, 21, 5, 1, 12, 3, 0, 0) + +segs1 = mesh.GetSubMeshElementsId( OY1 ) # mesh segments generated on borders +segs2 = mesh.GetSubMeshElementsId( OY2 ) + +FirstNodeID1 = mesh.GetElemNode( segs1[0], 0 ) +SecondNodeID1 = mesh.GetElemNode( segs1[0], 1 ) +LastNodeID1 = mesh.GetElemNode( segs1[-1], 1 ) +FirstNodeID2 = mesh.GetElemNode( segs2[0], 0 ) +SecondNodeID2 = mesh.GetElemNode( segs2[0], 1 ) +LastNodeID2 = mesh.GetElemNode( segs2[-1], 1 ) +CreatePolygons = True +CreatePolyedrs = False + +res = mesh.SewFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1, + FirstNodeID2, SecondNodeID2, LastNodeID2, + CreatePolygons, CreatePolyedrs ) +print res +print "nb polygons:", mesh.NbPolygons() + diff --git a/doc/salome/examples/transforming_meshes_ex10.py b/doc/salome/examples/transforming_meshes_ex10.py index 426a011a6..e0120b481 100644 --- a/doc/salome/examples/transforming_meshes_ex10.py +++ b/doc/salome/examples/transforming_meshes_ex10.py @@ -20,7 +20,7 @@ aComp = geompy.MakeCompound([box1, box2]) geompy.addToStudy(aComp, "Two boxes") # create a mesh on two boxes -mesh = smesh.Mesh(aComp, "Two faces : quadrangle mesh") +mesh = smesh.Mesh(aComp, "Sew Side Elements") algo1D = mesh.Segment() algo1D.NumberOfSegments(2) @@ -33,6 +33,31 @@ algo_local.Propagation() mesh.Compute() # sew side elements -# IDsOfSide1Elements, IDsOfSide2Elements, -# NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge -mesh.SewSideElements([69, 70, 71, 72], [91, 92, 89, 90], 8, 38, 23, 58) + +# find elements to sew +face1 = geompy.GetFaceNearPoint( aComp, geompy.MakeVertex( 5, 10, 5 )) +IDsOfSide1Elements = mesh.GetSubMeshElementsId( face1 ) +print "side faces 1:",IDsOfSide1Elements + +face1Translated = geompy.MakeTranslation( face1, 0,5,0 ) +faceFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_BelongToGeom,'=', face1Translated ) +IDsOfSide2Elements = mesh.GetIdsFromFilter( faceFilter ) +print "side faces 2:",IDsOfSide2Elements + +# find corresponding nodes on sides +edge1 = geompy.GetEdgeNearPoint( aComp, geompy.MakeVertex( 0, 10, 5 )) +segs1 = mesh.GetSubMeshElementsId( edge1 ) # mesh segments generated on edge1 +NodeID1OfSide1ToMerge = mesh.GetElemNode( segs1[0], 0 ) +NodeID2OfSide1ToMerge = mesh.GetElemNode( segs1[0], 1 ) +print "nodes of side1:", [NodeID1OfSide1ToMerge,NodeID2OfSide1ToMerge] + +edge2 = geompy.GetEdgeNearPoint( aComp, geompy.MakeVertex( 0, 15, 5 )) +segs2 = mesh.GetSubMeshElementsId( edge2 ) # mesh segments generated on edge2 +NodeID1OfSide2ToMerge = mesh.GetElemNode( segs2[0], 0 ) +NodeID2OfSide2ToMerge = mesh.GetElemNode( segs2[0], 1 ) +print "nodes of side2:", [NodeID1OfSide2ToMerge,NodeID2OfSide2ToMerge] + +res = mesh.SewSideElements(IDsOfSide1Elements, IDsOfSide2Elements, + NodeID1OfSide1ToMerge, NodeID1OfSide2ToMerge, + NodeID2OfSide1ToMerge, NodeID2OfSide2ToMerge) +print res diff --git a/doc/salome/gui/CMakeLists.txt b/doc/salome/gui/CMakeLists.txt index 3347fdcc5..1a8d6cf4d 100755 --- a/doc/salome/gui/CMakeLists.txt +++ b/doc/salome/gui/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/gui/SMESH/CMakeLists.txt b/doc/salome/gui/SMESH/CMakeLists.txt index 380fb6bbd..47c517cff 100644 --- a/doc/salome/gui/SMESH/CMakeLists.txt +++ b/doc/salome/gui/SMESH/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 diff --git a/doc/salome/gui/SMESH/collect_mesh_methods.py b/doc/salome/gui/SMESH/collect_mesh_methods.py index 6e2b7a481..0d55a3c74 100755 --- a/doc/salome/gui/SMESH/collect_mesh_methods.py +++ b/doc/salome/gui/SMESH/collect_mesh_methods.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2012-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 diff --git a/doc/salome/gui/SMESH/doxyfile.in b/doc/salome/gui/SMESH/doxyfile.in index e3b5ae87f..03d6398e0 100755 --- a/doc/salome/gui/SMESH/doxyfile.in +++ b/doc/salome/gui/SMESH/doxyfile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -41,7 +41,7 @@ WARNINGS = YES INPUT = @CMAKE_CURRENT_SOURCE_DIR@/input @CMAKE_SOURCE_DIR@/src/Tools/padder/doc/input $(GEOM_ROOT_DIR)/share/doc/salome/gui/GEOM/input FILE_PATTERNS = *.doc EXCLUDE = -IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images @CMAKE_SOURCE_DIR@/src/Tools/padder/doc/images $(GEOM_ROOT_DIR)/share/doc/salome/gui/GEOM +IMAGE_PATH = $(GEOM_ROOT_DIR)/share/doc/salome/gui/GEOM @CMAKE_SOURCE_DIR@/src/Tools/padder/doc/images @CMAKE_CURRENT_SOURCE_DIR@/images EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/doc/salome/examples @CMAKE_SOURCE_DIR@/src/SMESH_SWIG #--------------------------------------------------------------------------- diff --git a/doc/salome/gui/SMESH/doxyfile_py.in b/doc/salome/gui/SMESH/doxyfile_py.in index da7bdc731..6cb04289b 100755 --- a/doc/salome/gui/SMESH/doxyfile_py.in +++ b/doc/salome/gui/SMESH/doxyfile_py.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS diff --git a/doc/salome/gui/SMESH/images/2d_from_3d_example.png b/doc/salome/gui/SMESH/images/2d_from_3d_example.png new file mode 100644 index 000000000..d01efd538 Binary files /dev/null and b/doc/salome/gui/SMESH/images/2d_from_3d_example.png differ diff --git a/doc/salome/gui/SMESH/images/a-arithmetic1d.png b/doc/salome/gui/SMESH/images/a-arithmetic1d.png old mode 100755 new mode 100644 index aa43beb5f..9bc67b052 Binary files a/doc/salome/gui/SMESH/images/a-arithmetic1d.png and b/doc/salome/gui/SMESH/images/a-arithmetic1d.png differ diff --git a/doc/salome/gui/SMESH/images/a-creategroup.png b/doc/salome/gui/SMESH/images/a-creategroup.png old mode 100755 new mode 100644 index 734e6c82d..553fb98e5 Binary files a/doc/salome/gui/SMESH/images/a-creategroup.png and b/doc/salome/gui/SMESH/images/a-creategroup.png differ diff --git a/doc/salome/gui/SMESH/images/a-geometric1d.png b/doc/salome/gui/SMESH/images/a-geometric1d.png index a60be94a4..cb5b9ccfa 100644 Binary files a/doc/salome/gui/SMESH/images/a-geometric1d.png and b/doc/salome/gui/SMESH/images/a-geometric1d.png differ diff --git a/doc/salome/gui/SMESH/images/a-nbsegments2.png b/doc/salome/gui/SMESH/images/a-nbsegments2.png old mode 100755 new mode 100644 index 2a7c9fcaa..d9f9c566c Binary files a/doc/salome/gui/SMESH/images/a-nbsegments2.png and b/doc/salome/gui/SMESH/images/a-nbsegments2.png differ diff --git a/doc/salome/gui/SMESH/images/a-startendlength.png b/doc/salome/gui/SMESH/images/a-startendlength.png old mode 100755 new mode 100644 index ba29d91df..33293d389 Binary files a/doc/salome/gui/SMESH/images/a-startendlength.png and b/doc/salome/gui/SMESH/images/a-startendlength.png differ diff --git a/doc/salome/gui/SMESH/images/b-flection1d.png b/doc/salome/gui/SMESH/images/b-flection1d.png old mode 100755 new mode 100644 index e160cf55d..b0e366baa Binary files a/doc/salome/gui/SMESH/images/b-flection1d.png and b/doc/salome/gui/SMESH/images/b-flection1d.png differ diff --git a/doc/salome/gui/SMESH/images/buildcompound.png b/doc/salome/gui/SMESH/images/buildcompound.png old mode 100755 new mode 100644 index a6183515e..d3534fe53 Binary files a/doc/salome/gui/SMESH/images/buildcompound.png and b/doc/salome/gui/SMESH/images/buildcompound.png differ diff --git a/doc/salome/gui/SMESH/images/buildcompound_groups.png b/doc/salome/gui/SMESH/images/buildcompound_groups.png new file mode 100644 index 000000000..ee1289204 Binary files /dev/null and b/doc/salome/gui/SMESH/images/buildcompound_groups.png differ diff --git a/doc/salome/gui/SMESH/images/create_groups_from_geometry.png b/doc/salome/gui/SMESH/images/create_groups_from_geometry.png index f20d4a724..7da08fca5 100644 Binary files a/doc/salome/gui/SMESH/images/create_groups_from_geometry.png and b/doc/salome/gui/SMESH/images/create_groups_from_geometry.png differ diff --git a/doc/salome/gui/SMESH/images/dimgroup_2d.png b/doc/salome/gui/SMESH/images/dimgroup_2d.png index 6ca49a6a9..bbfa059d8 100644 Binary files a/doc/salome/gui/SMESH/images/dimgroup_2d.png and b/doc/salome/gui/SMESH/images/dimgroup_2d.png differ diff --git a/doc/salome/gui/SMESH/images/dimgroup_dlg.png b/doc/salome/gui/SMESH/images/dimgroup_dlg.png index 21cdb058a..22bdbc60f 100644 Binary files a/doc/salome/gui/SMESH/images/dimgroup_dlg.png and b/doc/salome/gui/SMESH/images/dimgroup_dlg.png differ diff --git a/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png index 170428dc2..53c618ce0 100644 Binary files a/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png and b/doc/salome/gui/SMESH/images/distributionwithanalyticdensity.png differ diff --git a/doc/salome/gui/SMESH/images/distributionwithtabledensity.png b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png index 5fa982c4c..75bd6981d 100644 Binary files a/doc/salome/gui/SMESH/images/distributionwithtabledensity.png and b/doc/salome/gui/SMESH/images/distributionwithtabledensity.png differ diff --git a/doc/salome/gui/SMESH/images/extru_rib_segs.png b/doc/salome/gui/SMESH/images/extru_rib_segs.png new file mode 100644 index 000000000..24f04cf39 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extru_rib_segs.png differ diff --git a/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png b/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png index 540bce24a..bdc1eff88 100644 Binary files a/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png and b/doc/salome/gui/SMESH/images/extrusion_along_path_dlg.png differ diff --git a/doc/salome/gui/SMESH/images/extrusion_box.png b/doc/salome/gui/SMESH/images/extrusion_box.png new file mode 100644 index 000000000..fb0848679 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion_box.png differ diff --git a/doc/salome/gui/SMESH/images/extrusion_groups.png b/doc/salome/gui/SMESH/images/extrusion_groups.png new file mode 100644 index 000000000..c58e39766 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion_groups.png differ diff --git a/doc/salome/gui/SMESH/images/extrusion_groups_res.png b/doc/salome/gui/SMESH/images/extrusion_groups_res.png new file mode 100644 index 000000000..7063c827a Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusion_groups_res.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline1.png b/doc/salome/gui/SMESH/images/extrusionalongaline1.png index 0cc13d518..5f0d13039 100644 Binary files a/doc/salome/gui/SMESH/images/extrusionalongaline1.png and b/doc/salome/gui/SMESH/images/extrusionalongaline1.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline2.png b/doc/salome/gui/SMESH/images/extrusionalongaline2.png index 987a66c61..f0e6d9e93 100644 Binary files a/doc/salome/gui/SMESH/images/extrusionalongaline2.png and b/doc/salome/gui/SMESH/images/extrusionalongaline2.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionalongaline3.png b/doc/salome/gui/SMESH/images/extrusionalongaline3.png new file mode 100644 index 000000000..75c359b07 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionalongaline3.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionbynormal_alongavgnorm.png b/doc/salome/gui/SMESH/images/extrusionbynormal_alongavgnorm.png new file mode 100644 index 000000000..ecb550e8b Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionbynormal_alongavgnorm.png differ diff --git a/doc/salome/gui/SMESH/images/extrusionbynormal_useonly.png b/doc/salome/gui/SMESH/images/extrusionbynormal_useonly.png new file mode 100644 index 000000000..1c63a2b08 Binary files /dev/null and b/doc/salome/gui/SMESH/images/extrusionbynormal_useonly.png differ diff --git a/doc/salome/gui/SMESH/images/free_borders1.png b/doc/salome/gui/SMESH/images/free_borders1.png old mode 100755 new mode 100644 index 6e73c9329..871beba86 Binary files a/doc/salome/gui/SMESH/images/free_borders1.png and b/doc/salome/gui/SMESH/images/free_borders1.png differ diff --git a/doc/salome/gui/SMESH/images/groups_in_OB.png b/doc/salome/gui/SMESH/images/groups_in_OB.png new file mode 100644 index 000000000..1ffb96a6b Binary files /dev/null and b/doc/salome/gui/SMESH/images/groups_in_OB.png differ diff --git a/doc/salome/gui/SMESH/images/hexa_ijk_mesh.png b/doc/salome/gui/SMESH/images/hexa_ijk_mesh.png new file mode 100644 index 000000000..577ee8ec6 Binary files /dev/null and b/doc/salome/gui/SMESH/images/hexa_ijk_mesh.png differ diff --git a/doc/salome/gui/SMESH/images/hypo_fixedpnt_dlg.png b/doc/salome/gui/SMESH/images/hypo_fixedpnt_dlg.png old mode 100755 new mode 100644 index 74276bd96..d1c131a48 Binary files a/doc/salome/gui/SMESH/images/hypo_fixedpnt_dlg.png and b/doc/salome/gui/SMESH/images/hypo_fixedpnt_dlg.png differ diff --git a/doc/salome/gui/SMESH/images/image152.png b/doc/salome/gui/SMESH/images/image152.png old mode 100755 new mode 100644 index 604a15063..d30ae67dc Binary files a/doc/salome/gui/SMESH/images/image152.png and b/doc/salome/gui/SMESH/images/image152.png differ diff --git a/doc/salome/gui/SMESH/images/image160.gif b/doc/salome/gui/SMESH/images/image160.gif old mode 100755 new mode 100644 index 6baffdb30..5aff389d1 Binary files a/doc/salome/gui/SMESH/images/image160.gif and b/doc/salome/gui/SMESH/images/image160.gif differ diff --git a/doc/salome/gui/SMESH/images/image56.jpg b/doc/salome/gui/SMESH/images/image56.jpg index 5fba91a2f..6f1997073 100755 Binary files a/doc/salome/gui/SMESH/images/image56.jpg and b/doc/salome/gui/SMESH/images/image56.jpg differ diff --git a/doc/salome/gui/SMESH/images/image58.gif b/doc/salome/gui/SMESH/images/image58.gif deleted file mode 100755 index 45e28568e..000000000 Binary files a/doc/salome/gui/SMESH/images/image58.gif and /dev/null differ diff --git a/doc/salome/gui/SMESH/images/image58.png b/doc/salome/gui/SMESH/images/image58.png new file mode 100644 index 000000000..a496170a0 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image58.png differ diff --git a/doc/salome/gui/SMESH/images/image59.png b/doc/salome/gui/SMESH/images/image59.png new file mode 100644 index 000000000..5b8106eb2 Binary files /dev/null and b/doc/salome/gui/SMESH/images/image59.png differ diff --git a/doc/salome/gui/SMESH/images/image75.jpg b/doc/salome/gui/SMESH/images/image75.jpg new file mode 100644 index 000000000..54718d43b Binary files /dev/null and b/doc/salome/gui/SMESH/images/image75.jpg differ diff --git a/doc/salome/gui/SMESH/images/image76.jpg b/doc/salome/gui/SMESH/images/image76.jpg old mode 100755 new mode 100644 index 88ec89ffe..cdeb88035 Binary files a/doc/salome/gui/SMESH/images/image76.jpg and b/doc/salome/gui/SMESH/images/image76.jpg differ diff --git a/doc/salome/gui/SMESH/images/image77.jpg b/doc/salome/gui/SMESH/images/image77.jpg old mode 100755 new mode 100644 index c253eacae..920564444 Binary files a/doc/salome/gui/SMESH/images/image77.jpg and b/doc/salome/gui/SMESH/images/image77.jpg differ diff --git a/doc/salome/gui/SMESH/images/image88.jpg b/doc/salome/gui/SMESH/images/image88.jpg old mode 100755 new mode 100644 index 3b2a9739c..9499ab219 Binary files a/doc/salome/gui/SMESH/images/image88.jpg and b/doc/salome/gui/SMESH/images/image88.jpg differ diff --git a/doc/salome/gui/SMESH/images/image90.jpg b/doc/salome/gui/SMESH/images/image90.jpg old mode 100755 new mode 100644 index 4f4c301d4..a78c4394b Binary files a/doc/salome/gui/SMESH/images/image90.jpg and b/doc/salome/gui/SMESH/images/image90.jpg differ diff --git a/doc/salome/gui/SMESH/images/mergeelems.png b/doc/salome/gui/SMESH/images/mergeelems.png old mode 100755 new mode 100644 index 3f59269a6..40d614f5e Binary files a/doc/salome/gui/SMESH/images/mergeelems.png and b/doc/salome/gui/SMESH/images/mergeelems.png differ diff --git a/doc/salome/gui/SMESH/images/mergeelems_auto.png b/doc/salome/gui/SMESH/images/mergeelems_auto.png index 904d23463..6e2b30697 100644 Binary files a/doc/salome/gui/SMESH/images/mergeelems_auto.png and b/doc/salome/gui/SMESH/images/mergeelems_auto.png differ diff --git a/doc/salome/gui/SMESH/images/mergenodes.png b/doc/salome/gui/SMESH/images/mergenodes.png old mode 100755 new mode 100644 index 05286a56e..5b34361cb Binary files a/doc/salome/gui/SMESH/images/mergenodes.png and b/doc/salome/gui/SMESH/images/mergenodes.png differ diff --git a/doc/salome/gui/SMESH/images/mergenodes_auto.png b/doc/salome/gui/SMESH/images/mergenodes_auto.png index 6a2a92830..4f177f605 100644 Binary files a/doc/salome/gui/SMESH/images/mergenodes_auto.png and b/doc/salome/gui/SMESH/images/mergenodes_auto.png differ diff --git a/doc/salome/gui/SMESH/images/merging_nodes1.png b/doc/salome/gui/SMESH/images/merging_nodes1.png old mode 100755 new mode 100644 index f64bdcbe2..05c817537 Binary files a/doc/salome/gui/SMESH/images/merging_nodes1.png and b/doc/salome/gui/SMESH/images/merging_nodes1.png differ diff --git a/doc/salome/gui/SMESH/images/merging_nodes2.png b/doc/salome/gui/SMESH/images/merging_nodes2.png old mode 100755 new mode 100644 index 8d7cfdd09..862ed1723 Binary files a/doc/salome/gui/SMESH/images/merging_nodes2.png and b/doc/salome/gui/SMESH/images/merging_nodes2.png differ diff --git a/doc/salome/gui/SMESH/images/pref21.png b/doc/salome/gui/SMESH/images/pref21.png index ddacc6332..7fb82e4d0 100755 Binary files a/doc/salome/gui/SMESH/images/pref21.png and b/doc/salome/gui/SMESH/images/pref21.png differ diff --git a/doc/salome/gui/SMESH/images/pref22.png b/doc/salome/gui/SMESH/images/pref22.png index d557d2515..cf086214e 100755 Binary files a/doc/salome/gui/SMESH/images/pref22.png and b/doc/salome/gui/SMESH/images/pref22.png differ diff --git a/doc/salome/gui/SMESH/images/pref23.png b/doc/salome/gui/SMESH/images/pref23.png index c715ee482..23d804b8d 100755 Binary files a/doc/salome/gui/SMESH/images/pref23.png and b/doc/salome/gui/SMESH/images/pref23.png differ diff --git a/doc/salome/gui/SMESH/images/pref24.png b/doc/salome/gui/SMESH/images/pref24.png index 167cc0bf0..9a7a5a8f0 100755 Binary files a/doc/salome/gui/SMESH/images/pref24.png and b/doc/salome/gui/SMESH/images/pref24.png differ diff --git a/doc/salome/gui/SMESH/images/preview_tmp_data.png b/doc/salome/gui/SMESH/images/preview_tmp_data.png index be1a12515..6f9fb31b3 100644 Binary files a/doc/salome/gui/SMESH/images/preview_tmp_data.png and b/doc/salome/gui/SMESH/images/preview_tmp_data.png differ diff --git a/doc/salome/gui/SMESH/images/propagation_chain.png b/doc/salome/gui/SMESH/images/propagation_chain.png new file mode 100644 index 000000000..420dee036 Binary files /dev/null and b/doc/salome/gui/SMESH/images/propagation_chain.png differ diff --git a/doc/salome/gui/SMESH/images/quad_from_ma_medial_axis.png b/doc/salome/gui/SMESH/images/quad_from_ma_medial_axis.png new file mode 100644 index 000000000..b02ceabcd Binary files /dev/null and b/doc/salome/gui/SMESH/images/quad_from_ma_medial_axis.png differ diff --git a/doc/salome/gui/SMESH/images/quad_from_ma_mesh.png b/doc/salome/gui/SMESH/images/quad_from_ma_mesh.png new file mode 100644 index 000000000..3e3c63b23 Binary files /dev/null and b/doc/salome/gui/SMESH/images/quad_from_ma_mesh.png differ diff --git a/doc/salome/gui/SMESH/images/quad_mesh_invalid.png b/doc/salome/gui/SMESH/images/quad_mesh_invalid.png new file mode 100644 index 000000000..cce9980f5 Binary files /dev/null and b/doc/salome/gui/SMESH/images/quad_mesh_invalid.png differ diff --git a/doc/salome/gui/SMESH/images/quad_meshes.png b/doc/salome/gui/SMESH/images/quad_meshes.png new file mode 100644 index 000000000..c6cbd0c7a Binary files /dev/null and b/doc/salome/gui/SMESH/images/quad_meshes.png differ diff --git a/doc/salome/gui/SMESH/images/rev_edges_helper_dlg.png b/doc/salome/gui/SMESH/images/rev_edges_helper_dlg.png new file mode 100644 index 000000000..e8790a134 Binary files /dev/null and b/doc/salome/gui/SMESH/images/rev_edges_helper_dlg.png differ diff --git a/doc/salome/gui/SMESH/images/revolution1.png b/doc/salome/gui/SMESH/images/revolution1.png old mode 100755 new mode 100644 index c4a4c1748..5f75d5d74 Binary files a/doc/salome/gui/SMESH/images/revolution1.png and b/doc/salome/gui/SMESH/images/revolution1.png differ diff --git a/doc/salome/gui/SMESH/images/revolutionsn1.png b/doc/salome/gui/SMESH/images/revolutionsn1.png index 6564c7fc6..3e7a7a1aa 100644 Binary files a/doc/salome/gui/SMESH/images/revolutionsn1.png and b/doc/salome/gui/SMESH/images/revolutionsn1.png differ diff --git a/doc/salome/gui/SMESH/images/revolutionsn2.png b/doc/salome/gui/SMESH/images/revolutionsn2.png index 67a673144..064dd6c2d 100644 Binary files a/doc/salome/gui/SMESH/images/revolutionsn2.png and b/doc/salome/gui/SMESH/images/revolutionsn2.png differ diff --git a/doc/salome/gui/SMESH/images/sew_after_merge.png b/doc/salome/gui/SMESH/images/sew_after_merge.png new file mode 100644 index 000000000..43d6869f7 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sew_after_merge.png differ diff --git a/doc/salome/gui/SMESH/images/sew_using_merge.png b/doc/salome/gui/SMESH/images/sew_using_merge.png new file mode 100644 index 000000000..80cc44c67 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sew_using_merge.png differ diff --git a/doc/salome/gui/SMESH/images/sewing1.png b/doc/salome/gui/SMESH/images/sewing1.png old mode 100755 new mode 100644 index daef959ff..55e0d8334 Binary files a/doc/salome/gui/SMESH/images/sewing1.png and b/doc/salome/gui/SMESH/images/sewing1.png differ diff --git a/doc/salome/gui/SMESH/images/sewing2.png b/doc/salome/gui/SMESH/images/sewing2.png old mode 100755 new mode 100644 index b7563f97a..2ba3e4365 Binary files a/doc/salome/gui/SMESH/images/sewing2.png and b/doc/salome/gui/SMESH/images/sewing2.png differ diff --git a/doc/salome/gui/SMESH/images/sewing3.png b/doc/salome/gui/SMESH/images/sewing3.png old mode 100755 new mode 100644 index da2972fc4..d2d97d509 Binary files a/doc/salome/gui/SMESH/images/sewing3.png and b/doc/salome/gui/SMESH/images/sewing3.png differ diff --git a/doc/salome/gui/SMESH/images/sewing4.png b/doc/salome/gui/SMESH/images/sewing4.png old mode 100755 new mode 100644 index 748237c49..ad66682a7 Binary files a/doc/salome/gui/SMESH/images/sewing4.png and b/doc/salome/gui/SMESH/images/sewing4.png differ diff --git a/doc/salome/gui/SMESH/images/sewing_auto.png b/doc/salome/gui/SMESH/images/sewing_auto.png new file mode 100644 index 000000000..f81cfe277 Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing_auto.png differ diff --git a/doc/salome/gui/SMESH/images/sewing_manual.png b/doc/salome/gui/SMESH/images/sewing_manual.png new file mode 100644 index 000000000..ff125bc1a Binary files /dev/null and b/doc/salome/gui/SMESH/images/sewing_manual.png differ diff --git a/doc/salome/gui/SMESH/images/smesh_sort_groups.png b/doc/salome/gui/SMESH/images/smesh_sort_groups.png new file mode 100644 index 000000000..0176a30e8 Binary files /dev/null and b/doc/salome/gui/SMESH/images/smesh_sort_groups.png differ diff --git a/doc/salome/gui/SMESH/images/split_biquad_to_linear_dlg.png b/doc/salome/gui/SMESH/images/split_biquad_to_linear_dlg.png new file mode 100644 index 000000000..c3df00902 Binary files /dev/null and b/doc/salome/gui/SMESH/images/split_biquad_to_linear_dlg.png differ diff --git a/doc/salome/gui/SMESH/images/split_biquad_to_linear_icon.png b/doc/salome/gui/SMESH/images/split_biquad_to_linear_icon.png new file mode 100644 index 000000000..0b9b7a038 Binary files /dev/null and b/doc/salome/gui/SMESH/images/split_biquad_to_linear_icon.png differ diff --git a/doc/salome/gui/SMESH/images/split_biquad_to_linear_mesh.png b/doc/salome/gui/SMESH/images/split_biquad_to_linear_mesh.png new file mode 100644 index 000000000..4a25e8f32 Binary files /dev/null and b/doc/salome/gui/SMESH/images/split_biquad_to_linear_mesh.png differ diff --git a/doc/salome/gui/SMESH/images/swap.png b/doc/salome/gui/SMESH/images/swap.png new file mode 100644 index 000000000..6470710aa Binary files /dev/null and b/doc/salome/gui/SMESH/images/swap.png differ diff --git a/doc/salome/gui/SMESH/images/viscous_layers_2d_hyp.png b/doc/salome/gui/SMESH/images/viscous_layers_2d_hyp.png new file mode 100644 index 000000000..4ad6ee0ec Binary files /dev/null and b/doc/salome/gui/SMESH/images/viscous_layers_2d_hyp.png differ diff --git a/doc/salome/gui/SMESH/images/viscous_layers_extrusion_method.png b/doc/salome/gui/SMESH/images/viscous_layers_extrusion_method.png new file mode 100644 index 000000000..cf6fe2165 Binary files /dev/null and b/doc/salome/gui/SMESH/images/viscous_layers_extrusion_method.png differ diff --git a/doc/salome/gui/SMESH/images/viscous_layers_hyp.png b/doc/salome/gui/SMESH/images/viscous_layers_hyp.png index 717819138..aaf9ad658 100644 Binary files a/doc/salome/gui/SMESH/images/viscous_layers_hyp.png and b/doc/salome/gui/SMESH/images/viscous_layers_hyp.png differ diff --git a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc index 8c38c8ddf..01deffbcd 100644 --- a/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc +++ b/doc/salome/gui/SMESH/input/1d_meshing_hypo.doc @@ -2,18 +2,39 @@ \page a1d_meshing_hypo_page 1D Meshing Hypotheses -
+Basic 1D hypothesis specifies: + +1D hypotheses can be categorized by type of nodes distribution as follows: +
@@ -55,6 +76,10 @@ be reversed either directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. Use \b Add button to add the selected edges to the list. +\ref reversed_edges_helper_anchor "Helper" group assists you in +defining Reversed Edges parameter. + + \image html a-arithmetic1d.png \image html b-ithmetic1d.png "Arithmetic 1D hypothesis - the size of mesh elements gradually increases" @@ -81,6 +106,9 @@ be reversed either directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. Use \b Add button to add the selected edges to the list. +\ref reversed_edges_helper_anchor "Helper" group assists you in +defining Reversed Edges parameter. + \image html a-geometric1d.png See Also a sample TUI Script of a @@ -91,13 +119,14 @@ Add button to add the selected edges to the list.

Deflection 1D hypothesis

Deflection 1D hypothesis can be applied for meshing curvilinear edges -composing your geometrical object. It uses only one parameter: the -value of deflection. -\n A geometrical edge is divided into equal segments. The maximum -distance between a point on the edge within a segment and the line -connecting the ends of the segment should not exceed the specified -value of deflection . Then mesh nodes are constructed at end segment -locations and 1D mesh elements are constructed on segments. +composing your geometrical object. It defines only one parameter: the +value of deflection (or chord error). + +A geometrical edge is divided into segments of length depending on +edge curvature. The more curved the edge, the shorter the +segment. Nodes on the edge are placed so that the maximum distance +between the edge and a segment approximating a part of edge between +two nodes should not exceed the value of deflection. \image html a-deflection1d.png @@ -112,25 +141,26 @@ locations and 1D mesh elements are constructed on segments. Local Length hypothesis can be applied for meshing of edges composing your geometrical object. Definition of this hypothesis -consists of setting the \b length of segments, which will split these -edges, and the \b precision of rounding. The points on the edges -generated by these segments will represent nodes of your mesh. -Later these nodes will be used for meshing of the faces abutting to -these edges. +consists of setting the \b length of segments, which will approximate these +edges, and the \b precision of rounding. + +The \b precision parameter is used to round a number of segments, +calculated by dividing the edge length by the specified \b length of +segment, to the higher integer if the \a remainder exceeds the \b precision +and to the lower integer otherwise.
+Use value 0.5 to provide rounding to the nearest integer, 1.0 for the lower integer, 0.0 for the higher integer. Default value is 1e-07. + +For example: if edge length is 10.0 and the segment \b length +is 3.0 then their division gives 10./3. = 3.33(3) and the \a remainder is 0.33(3). +If \b precision is less than 0.33(3) then the edge is divided into 3 segments. +If \b precision is more than 0.33(3) then the edge is divided into 4 segments. -The \b precision parameter is used to allow rounding a number of -segments, calculated from the edge length and average length of -segment, to the lower integer, if this value outstands from it in -bounds of the precision. Otherwise, the number of segments is rounded -to the higher integer. Use value 0.5 to provide rounding to the -nearest integer, 1.0 for the lower integer, 0.0 for the higher -integer. Default value is 1e-07. \image html image41.gif \image html a-averagelength.png -\image html b-erage_length.png "Local Length hypothesis - all 1D mesh elements are roughly equal" +\image html b-erage_length.png "Local Length hypothesis - all 1D mesh segments are equal" See Also a sample TUI Script of a \ref tui_average_length "Defining Local Length" hypothesis @@ -141,7 +171,7 @@ operation. Max Size hypothesis allows splitting geometrical edges into segments not longer than the given length. Definition of this hypothesis consists of setting the maximal allowed \b length of segments. -Use preestimated length check box lets you specify \b length +Use preestimated length check box lets you use \b length automatically calculated basing on size of your geometrical object, namely as diagonal of bounding box divided by ten. The divider can be changed via "Ratio Bounding Box Diagonal / Max Size" @@ -155,27 +185,23 @@ geometrical object has been selected before hypothesis definition. \anchor number_of_segments_anchor

Number of segments hypothesis

-Number of segments hypothesis can be applied for meshing of edges -composing your geometrical object. Definition of this hypothesis -consists of setting the number of segments, which will split these -edges. In other words your edges will be split into a definite number -of segments with approximately the same length. The points on the -edges generated by these segments will represent nodes of your -mesh. Later these nodes will be used for meshing of the faces abutting -to these edges. +Number of segments hypothesis can be applied for approximating +edges by a definite number of mesh segments with length depending on +the selected type of distribution of nodes. The direction of the splitting is defined by the orientation of the -underlying geometrical edge. "Reverse Edges" list box allows to +underlying geometrical edge. Reverse Edges list box allows to specify the edges for which the splitting should be made in the direction opposing to their orientation. This list box is enabled only -if the geometry object is selected for the meshing. In this case the -user can select edges to be reversed either by directly picking them +if the geometry object is selected for the meshing. In this case it is +possible to select edges to be reversed either by directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. -\image html image46.gif +\ref reversed_edges_helper_anchor "Helper" group assists you in +defining Reversed Edges parameter. -You can set the type of distribution for this hypothesis in the +You can set the type of node distribution for this hypothesis in the Hypothesis Construction dialog bog : \image html a-nbsegments1.png @@ -212,11 +238,11 @@ integral on the range between two nodes equal for all segments. pairs t - F(t), where \b t ranges from 0 to 1, and the module computes the formula, which will rule the change of length of segments and shows in the plot the density function curve in red and the node -distribution as blue crosses. The node distribution is computed the +distribution as blue crosses. The node distribution is computed in the same way as for \ref analyticdensity_anchor "Distribution with Analytic Density". You -can select the Conversion mode from\b Exponent and Cut -negative. +can select the Conversion mode from \b Exponent and Cut +negative. \image html distributionwithtabledensity.png @@ -224,6 +250,7 @@ negative. \ref tui_deflection_1d "Defining Number of Segments" hypothesis operation. +\note The plot functionality is available only if GUI module is built with Plot 2D Viewer (option SALOME_USE_PLOT2DVIEWER is ON when building GUI module).
\anchor start_and_end_length_anchor @@ -232,19 +259,21 @@ operation. Start and End Length hypothesis allows to divide a geometrical edge into segments so that the first and the last segments have a specified length. The length of medium segments changes with automatically chosen -geometric progression. Then mesh nodes are -constructed at segment ends location and 1D mesh elements are -constructed on them. +geometric progression. The direction of the splitting is defined by the orientation of the -underlying geometrical edge. "Reverse Edges" list box allows to -specify the edges for which the splitting should be made in the +underlying geometrical edge. Reverse Edges list box allows to +specify the edges, for which the splitting should be made in the direction opposing to their orientation. This list box is enabled only -if the geometry object is selected for the meshing. In this case the -user can select edges to be reversed either by directly picking them +if the geometry object is selected for the meshing. In this case it is +possible to select edges to be reversed either by directly picking them in the 3D viewer or by selecting the edges or groups of edges in the Object Browser. +\ref reversed_edges_helper_anchor "Helper" group assists you in +defining Reversed Edges parameter. + + \image html a-startendlength.png \image html b-art_end_length.png "The lengths of the first and the last segment are strictly defined" @@ -259,33 +288,33 @@ hypothesis operation. The dialog box prompts you to define the quality of the future mesh by only one parameter, which is \b Fineness, ranging from 0 (coarse mesh, -low number of elements) to 1 (extremely fine mesh, great number of -elements). +low number of segments) to 1 (extremely fine mesh, great number of +segments). \image html automaticlength.png Compare one and the same object (sphere) meshed with minimum and maximum value of this parameter. -\image html image147.gif "Example of a very rough mesh. Automatic Length works for 0." +\image html image147.gif "Example of a rough mesh at Automatic Length Fineness of 0." -\image html image148.gif "Example of a very fine mesh. Automatic Length works for 1." +\image html image148.gif "Example of a fine mesh at Automatic Length Fineness of 1."
\anchor fixed_points_1d_anchor

Fixed points 1D hypothesis

Fixed points 1D hypothesis allows splitting edges through a -set of points parameterized on the edge (from 1 to 0) and a number of segments for each -interval limited by the points. +set of points parametrized on the edge (from 1 to 0) and a number of +segments for each interval limited by the points. -\image html hypo_fixedpnt_dlg.png +\image html hypo_fixedpnt_dlg.png It is possible to check in Same Nb. Segments for all intervals option and to define one value for all intervals. The splitting direction is defined by the orientation of the -underlying geometrical edge. "Reverse Edges" list box allows to +underlying geometrical edge. Reverse Edges list box allows to specify the edges for which the splitting should be made in the direction opposite to their orientation. This list box is enabled only if the geometrical object is selected for meshing. In this case it is @@ -293,9 +322,46 @@ possible to select the edges to be reversed either directly picking them in the 3D viewer or selecting the edges or groups of edges in the Object Browser. -\image html mesh_fixedpnt.png "Example of a submesh on the edge built using Fixed points 1D hypothesis" +\ref reversed_edges_helper_anchor "Helper" group assists in +defining Reversed Edges parameter. + + +\image html mesh_fixedpnt.png "Example of a sub-mesh on the edge built using Fixed points 1D hypothesis" See Also a sample TUI Script of a \ref tui_fixed_points "Defining Fixed Points" hypothesis operation. +\anchor reversed_edges_helper_anchor +

Reversed Edges Helper

+ +\image html rev_edges_helper_dlg.png + +\b Helper group assists in defining Reversed Edges +parameter of the hypotheses depending on edge direction. + +Show whole geometry check-box allows seeing the whole +geometrical model in the 3D Viewer, which can help to understand the +location of a set of edges within the model. + +Propagation chains group allows defining Reversed Edges +for splitting opposite edges of quadrilateral faces in a logically +uniform direction. When this group is activated, the list is filled +with propagation chains found within the shape on which a hypothesis +is assigned. When a chain is selected in the list its edges are shown +in the Viewer with arrows, which enables choosing a common direction +for all chain edges. \b Reverse button inverts the common direction of +chain edges. \b Add button is active if some edges of a chain have a +different direction, so you can click \b Add button to add them +to Reversed Edges list. + +\image html propagation_chain.png "The whole geometry and a propagation chain" + +\note Alternatively, uniform direction of edges of one propagation +chain can be achieved by +\ref constructing_submeshes_page "definition of a sub-mesh" on one +edge of the chain and assigning a +\ref propagation_anchor "Propagation" additional hypothesis. +Orientation of this edge (and hence of all the rest edges of the chain) can be +controlled by using Reversed Edges field. + */ diff --git a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc index 05b8d5a39..308a6899a 100644 --- a/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc +++ b/doc/salome/gui/SMESH/input/2d_meshing_hypo.doc @@ -11,7 +11,7 @@ Max Element Area hypothesis is applied for meshing of faces composing your geometrical object. Definition of this hypothesis -consists of setting the maximum area of mesh elements, +consists of setting the maximum area of mesh faces, which will compose the mesh of these faces. \image html a-maxelarea.png @@ -26,9 +26,9 @@ which will compose the mesh of these faces. \anchor length_from_edges_anchor

Length from Edges

-Length from edges hypothesis builds 2D mesh elements having a -maximum linear size calculated as an average segment length for a wire -of a given face. +Length from edges hypothesis defines the maximum linear size of +mesh faces as an average length of mesh edges approximating +the meshed face boundary. See Also a sample TUI Script of a \ref tui_length_from_edges "Length from Edges" hypothesis operation. @@ -38,10 +38,10 @@ of a given face. \image html hypo_quad_params_dialog.png "Quadrangle parameters: Transition" -Quadrangle parameters is a hypothesis for Quadrangle (Mapping) algorithm. +Quadrangle parameters is a hypothesis for \ref quad_ijk_algo_page. Transition tab is used to define the algorithm of transition -between opposite sides of faces with a different number of +between opposite sides of the face with a different number of segments on them. The following types of transition algorithms are available: @@ -54,7 +54,7 @@ algorithms are available: - Quadrangle preference forces building only quadrangles in the transition area along the finer meshed sides. This hypothesis has a restriction: the total quantity of segments on all - four sides of the face must be even (divisible by 2). + four face sides must be even (divisible by 2). \note This type corresponds to Quadrangle Preference additional hypothesis, which is obsolete now. - Quadrangle preference (reversed) works in the same way and @@ -63,9 +63,9 @@ algorithms are available: - Reduced type forces building only quadrangles and the transition between the sides is made gradually, layer by layer. This type has a limitation on the number of segments: one pair of opposite sides must have - the same number of segments, the other pair must have an even difference - between the numbers of segments on the sides. In addition, the number - of rows between sides with different discretization + the same number of segments, the other pair must have an even total + number of segments. In addition, the number of rows + between sides with different discretization should be enough for the transition. Following the fastest transition pattern, three segments become one (see the image below), hence the least number of face rows needed to reduce from Nmax segments @@ -77,8 +77,8 @@ algorithms are available: Base vertex tab allows using Quadrangle (Mapping) algorithm for meshing of trilateral faces. In this case it is -necessary to select the vertex, which will be used as the fourth edge -(degenerated). +necessary to select the vertex, which will be used as the forth +degenerated side of quadrangle. \image html hypo_quad_params_dialog_vert.png "Quadrangle parameters: Base Vertex" @@ -113,7 +113,7 @@ of the enforced nodes. projected to the meshed face and located close enough to the meshed face will be used to create the enforced nodes. -\note Enforced nodes can't be created at \b Reduced transition type. +\note Enforced nodes cannot be created at \b Reduced transition type. Let us see how the algorithm works: -There also exist -\subpage additional_hypo_page "Additional Hypotheses" used together -with other hypotheses: +There also exist +\subpage additional_hypo_page "Additional Hypotheses": -The choice of a hypothesis depends on: - - */ diff --git a/doc/salome/gui/SMESH/input/about_meshes.doc b/doc/salome/gui/SMESH/input/about_meshes.doc index 65201ac64..9d92487c5 100644 --- a/doc/salome/gui/SMESH/input/about_meshes.doc +++ b/doc/salome/gui/SMESH/input/about_meshes.doc @@ -2,66 +2,117 @@ \page about_meshes_page About meshes -\n \b MESH represents a discretization of a geometrical CAD model into -a set of entities with a simple topology. +\n \b MESH represents a discrete approximation of a subset of the +three-dimensional space by \ref mesh_entities "elementary geometrical +elements". -It is possible to \subpage constructing_meshes_page "construct meshes" -on the basis of geometrical shapes produced in the GEOM module. -Construction of \subpage constructing_submeshes_page "sub-meshes" -allows to mesh parts of the geometrical object, for example a face, -with different meshing parameters or using another meshing algorithm -than other parts. +A SALOME study can contain multiple meshes, but they do not +implicitly compose one super-mesh, and finally each of them +can be used (e.g. exported) only individually. -3D mesh can be generated basing on a 2D closed mesh. +Mesh module provides several ways to create the mesh: + Meshes can be edited using the MESH functions destined for -\ref modifying_meshes_page "modification" of generated meshes. +\ref modifying_meshes_page "modification" of meshes. -Meshes are stored in DAT, MED, UNV, STL, CGNS, GMF and SAUVE formats and can be -\subpage importing_exporting_meshes_page "imported from and exported to" - the file in these formats. +Attractive meshing capabilities include: +- 3D and 2D \ref viscous_layers_anchor "Viscous Layers" (boundary + layers of highly stretched elements beneficial for high quality + viscous computations); +- automatic conformal transition between tetrahedral and hexahedral + sub-meshes. -The \b topology of a mesh is described by the relationships between its -entities including: +The \b structure of a SALOME mesh is described by nodes and elements based on +these nodes. The geometry of an element is defined by the sequence of +nodes constituting it and +the + connectivity convention (adopted from MED library). Definition of +the element basing on the elements of a lower dimension is NOT supported. +\anchor mesh_entities +The mesh can include the following entities: -        These entities are -considered as topological entities and they don't -imply any geometric representation. Only \b Nodes reference geometric -representations of points with definite coordinates. The node entity -contains additional information about its position in the space -and its relations with the meshed CAD model. Its position could be -described in the following way: +Every mesh entity has an attribute associating it to a sub-shape it is +generated on (if any). The node generated on the geometrical edge or +surface in addition stores its position in parametric space of the +associated geometrical entity. - +Mesh entities are identified by integer IDs starting from 1. +Nodes and elements are counted separately, i.e. there can be a node +and element with the same ID. + +SALOME supports elements of second order, without a central node +(quadratic triangle, quadrangle, polygon, tetrahedron, hexahedron, +pentahedron and pyramid) and with central nodes (bi-quadratic triangle +and quadrangle and tri-quadratic hexahedron).
+Quadratic mesh can be obtained in two ways: +- Using a global \ref quadratic_mesh_anchor "Quadratic Mesh" +hypothesis. (Elements with the central node are not generated in this way). +- Using \ref convert_to_from_quadratic_mesh_page operation. */ diff --git a/doc/salome/gui/SMESH/input/about_quality_controls.doc b/doc/salome/gui/SMESH/input/about_quality_controls.doc index 1e170e440..9dbb5c992 100644 --- a/doc/salome/gui/SMESH/input/about_quality_controls.doc +++ b/doc/salome/gui/SMESH/input/about_quality_controls.doc @@ -24,7 +24,6 @@ Node quality controls: Edge quality controls: