From: vsr Date: Tue, 5 Jun 2012 11:55:41 +0000 (+0000) Subject: Merge from V6_5_BR 05/06/2012 X-Git-Tag: V6_main_FINAL~671 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=759e886d4f3a1bdd4d1debca08719592356c5879;p=tools%2Fmedcoupling.git Merge from V6_5_BR 05/06/2012 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b0e01cc6..b8fbd59c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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 @@ -24,7 +24,7 @@ IF(COMMAND cmake_policy) ENDIF(COMMAND cmake_policy) ENABLE_TESTING() -SET(VERSION "6.4.0") +SET(VERSION "6.5.0") SET(VERSION_DEV "1") SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) @@ -34,6 +34,7 @@ IF(KERNEL_ROOT_DIR) SET(MED_ENABLE_KERNEL ON) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) @@ -42,7 +43,6 @@ IF(KERNEL_ROOT_DIR) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake) INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) ELSE(KERNEL_ROOT_DIR) diff --git a/adm_local/CMakeLists.txt b/adm_local/CMakeLists.txt index a5389456b..7d6dfa86e 100644 --- a/adm_local/CMakeLists.txt +++ b/adm_local/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/adm_local/cmake_files/CMakeLists.txt b/adm_local/cmake_files/CMakeLists.txt index e7dfb43bb..d46c5d67e 100644 --- a/adm_local/cmake_files/CMakeLists.txt +++ b/adm_local/cmake_files/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/adm_local/unix/config_files/renumber.m4 b/adm_local/unix/config_files/renumber.m4 index 7b2cc254d..a7a3e59a0 100644 --- a/adm_local/unix/config_files/renumber.m4 +++ b/adm_local/unix/config_files/renumber.m4 @@ -1,4 +1,4 @@ -dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE dnl dnl This library is free software; you can redistribute it and/or dnl modify it under the terms of the GNU Lesser General Public diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt index 40fae0a87..33af97efd 100644 --- a/bin/CMakeLists.txt +++ b/bin/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 22234c326..f3b35dd2f 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/doc/MEDMEM/FIELDcreate.cxx b/doc/MEDMEM/FIELDcreate.cxx index 6b33dff0d..301a5de4a 100644 --- a/doc/MEDMEM/FIELDcreate.cxx +++ b/doc/MEDMEM/FIELDcreate.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/FIELDcreate.py b/doc/MEDMEM/FIELDcreate.py index b1090cde1..79c29b0c8 100644 --- a/doc/MEDMEM/FIELDcreate.py +++ b/doc/MEDMEM/FIELDcreate.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/FIELDgeneral.cxx b/doc/MEDMEM/FIELDgeneral.cxx index 23f34ce77..a51a55447 100644 --- a/doc/MEDMEM/FIELDgeneral.cxx +++ b/doc/MEDMEM/FIELDgeneral.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/FIELDgeneral.py b/doc/MEDMEM/FIELDgeneral.py index 4d95a6348..7d051bea0 100644 --- a/doc/MEDMEM/FIELDgeneral.py +++ b/doc/MEDMEM/FIELDgeneral.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx b/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx index 965740085..a48cfad01 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx +++ b/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py b/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py index 60afa72ec..341816d0d 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py +++ b/doc/MEDMEM/MEDMEM_InvokingDriverAtObjectCreationTime.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx b/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx index b2b89e4d9..ab7bb3cf6 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx +++ b/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py b/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py index d277a3644..703f54a66 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py +++ b/doc/MEDMEM/MEDMEM_InvokingDriverByAttachingItToAnObject.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx b/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx index c2eff5fd1..45a3ad195 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx +++ b/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py b/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py index f47057734..01c61fba2 100644 --- a/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py +++ b/doc/MEDMEM/MEDMEM_InvokingDriverFromStandardObjectMethod.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MESHINGexample.cxx b/doc/MEDMEM/MESHINGexample.cxx index 0216f86dd..03e9de5f1 100644 --- a/doc/MEDMEM/MESHINGexample.cxx +++ b/doc/MEDMEM/MESHINGexample.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MESHINGexample.py b/doc/MEDMEM/MESHINGexample.py index 4d90802f8..d7db8160c 100644 --- a/doc/MEDMEM/MESHINGexample.py +++ b/doc/MEDMEM/MESHINGexample.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MESHconnectivities.cxx b/doc/MEDMEM/MESHconnectivities.cxx index 898f7d0b2..1f360f818 100644 --- a/doc/MEDMEM/MESHconnectivities.cxx +++ b/doc/MEDMEM/MESHconnectivities.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MESHconnectivities.py b/doc/MEDMEM/MESHconnectivities.py index 82d004f67..47a80db41 100644 --- a/doc/MEDMEM/MESHconnectivities.py +++ b/doc/MEDMEM/MESHconnectivities.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MESHcoordinates.cxx b/doc/MEDMEM/MESHcoordinates.cxx index 769010939..1acaaddd0 100644 --- a/doc/MEDMEM/MESHcoordinates.cxx +++ b/doc/MEDMEM/MESHcoordinates.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MESHcoordinates.py b/doc/MEDMEM/MESHcoordinates.py index eb85841f6..013590ff7 100644 --- a/doc/MEDMEM/MESHcoordinates.py +++ b/doc/MEDMEM/MESHcoordinates.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/MESHgeneral.cxx b/doc/MEDMEM/MESHgeneral.cxx index 1cfa6892e..504014ecc 100644 --- a/doc/MEDMEM/MESHgeneral.cxx +++ b/doc/MEDMEM/MESHgeneral.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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/MEDMEM/MESHgeneral.py b/doc/MEDMEM/MESHgeneral.py index eba32c2c8..c60ffc5f8 100644 --- a/doc/MEDMEM/MESHgeneral.py +++ b/doc/MEDMEM/MESHgeneral.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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/MEDMEM/Makefile.am b/doc/MEDMEM/Makefile.am index 3db553161..f788b6d65 100644 --- a/doc/MEDMEM/Makefile.am +++ b/doc/MEDMEM/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 diff --git a/doc/Makefile.am b/doc/Makefile.am index ffbe89080..0b98f54f2 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 diff --git a/doc/doxygen/BuildPyExamplesFromCPP.py b/doc/doxygen/BuildPyExamplesFromCPP.py index 653ab03ad..7996588b2 100644 --- a/doc/doxygen/BuildPyExamplesFromCPP.py +++ b/doc/doxygen/BuildPyExamplesFromCPP.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt index 9a72b7e21..63e0def07 100644 --- a/doc/doxygen/CMakeLists.txt +++ b/doc/doxygen/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/doc/doxygen/Doxyfile_med_user.in b/doc/doxygen/Doxyfile_med_user.in index 33b8d5873..bc6464bb6 100644 --- a/doc/doxygen/Doxyfile_med_user.in +++ b/doc/doxygen/Doxyfile_med_user.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 @@ -121,6 +121,7 @@ FILE_PATTERNS = MEDMEM_GMesh.* \ MEDCouplingExtrudedMesh.* \ MEDCouplingFieldDouble.* \ MEDCouplingField.* \ + MEDCouplingNatureOfField.hxx \ MEDCouplingFieldTemplate.* \ MEDCouplingFieldDiscretization.* \ MEDCouplingTimeDiscretization.* \ diff --git a/doc/doxygen/Makefile.am b/doc/doxygen/Makefile.am index 0dbfef279..22c098a1f 100644 --- a/doc/doxygen/Makefile.am +++ b/doc/doxygen/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 diff --git a/doc/doxygen/static/footer.html b/doc/doxygen/static/footer.html index b344790a6..4c89a2ba1 100755 --- a/doc/doxygen/static/footer.html +++ b/doc/doxygen/static/footer.html @@ -3,7 +3,7 @@
- Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+ Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 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 1d620d416..ac4647872 100644 --- a/doc/salome/CMakeLists.txt +++ b/doc/salome/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/doc/salome/Makefile.am b/doc/salome/Makefile.am index d8d72f7e0..bd58106b1 100644 --- a/doc/salome/Makefile.am +++ b/doc/salome/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 diff --git a/doc/salome/tui/CMakeLists.txt b/doc/salome/tui/CMakeLists.txt index 7fec95f17..88f84b6c0 100644 --- a/doc/salome/tui/CMakeLists.txt +++ b/doc/salome/tui/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/doc/salome/tui/Makefile.am b/doc/salome/tui/Makefile.am index c8d6de221..7a3c472c1 100644 --- a/doc/salome/tui/Makefile.am +++ b/doc/salome/tui/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-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 @@ -38,4 +38,11 @@ install-data-local: fi; uninstall-local: - rm -rf $(DESTDIR)$(docdir)/tui/MED \ No newline at end of file + @test -d $(DESTDIR)$(tuidocdir) && chmod -R +w $(DESTDIR)$(tuidocdir) ; \ + for filen in `find $(DESTDIR)$(tuidocdir) -mindepth 1 -maxdepth 1` dummy ; do \ + case $${filen} in \ + dummy ) ;; \ + $(DESTDIR)$(tuidocdir)/head.png ) ;; \ + * ) echo "removing $${filen}" && rm -rf $${filen} ;; \ + esac ; \ + done diff --git a/doc/salome/tui/doxyfile.in b/doc/salome/tui/doxyfile.in index ba4cdebc0..ba7a2ca9b 100755 --- a/doc/salome/tui/doxyfile.in +++ b/doc/salome/tui/doxyfile.in @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2012 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 @@ -246,7 +246,7 @@ INCLUDED_BY_GRAPH = NO CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = jpg +DOT_IMAGE_FORMAT = png DOT_FONTNAME = Arial DOT_PATH = DOTFILE_DIRS = diff --git a/doc/salome/tui/static/footer.html b/doc/salome/tui/static/footer.html index d77ef0a32..5b030c021 100755 --- a/doc/salome/tui/static/footer.html +++ b/doc/salome/tui/static/footer.html @@ -6,7 +6,7 @@
-Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
diff --git a/idl/CMakeLists.txt b/idl/CMakeLists.txt index a6f1878af..9fcd6ceea 100644 --- a/idl/CMakeLists.txt +++ b/idl/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index 1bc91a233..96987ebd9 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d8a7c6a26..a041dbf10 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/BBTree.txx b/src/INTERP_KERNEL/BBTree.txx index 7b4616d24..7b3d03782 100644 --- a/src/INTERP_KERNEL/BBTree.txx +++ b/src/INTERP_KERNEL/BBTree.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Bases/InterpKernelAutoPtr.hxx b/src/INTERP_KERNEL/Bases/InterpKernelAutoPtr.hxx index 59198946b..4100a4d05 100644 --- a/src/INTERP_KERNEL/Bases/InterpKernelAutoPtr.hxx +++ b/src/INTERP_KERNEL/Bases/InterpKernelAutoPtr.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Bases/InterpKernelException.cxx b/src/INTERP_KERNEL/Bases/InterpKernelException.cxx index 8f5b22546..35483a8cc 100644 --- a/src/INTERP_KERNEL/Bases/InterpKernelException.cxx +++ b/src/INTERP_KERNEL/Bases/InterpKernelException.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Bases/InterpKernelException.hxx b/src/INTERP_KERNEL/Bases/InterpKernelException.hxx index 6482d3864..c2aa9e32f 100644 --- a/src/INTERP_KERNEL/Bases/InterpKernelException.hxx +++ b/src/INTERP_KERNEL/Bases/InterpKernelException.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Bases/InterpKernelStlExt.hxx b/src/INTERP_KERNEL/Bases/InterpKernelStlExt.hxx index fb047120c..b946364b8 100644 --- a/src/INTERP_KERNEL/Bases/InterpKernelStlExt.hxx +++ b/src/INTERP_KERNEL/Bases/InterpKernelStlExt.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Bases/NormalizedUnstructuredMesh.hxx b/src/INTERP_KERNEL/Bases/NormalizedUnstructuredMesh.hxx index 4421cd65b..5e9ee7543 100644 --- a/src/INTERP_KERNEL/Bases/NormalizedUnstructuredMesh.hxx +++ b/src/INTERP_KERNEL/Bases/NormalizedUnstructuredMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/BoundingBox.cxx b/src/INTERP_KERNEL/BoundingBox.cxx index a194d7067..5a1114394 100644 --- a/src/INTERP_KERNEL/BoundingBox.cxx +++ b/src/INTERP_KERNEL/BoundingBox.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/BoundingBox.hxx b/src/INTERP_KERNEL/BoundingBox.hxx index 4ff2c3343..ab5f5bbfe 100644 --- a/src/INTERP_KERNEL/BoundingBox.hxx +++ b/src/INTERP_KERNEL/BoundingBox.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CMakeLists.txt b/src/INTERP_KERNEL/CMakeLists.txt index f56122589..7e35c0d34 100644 --- a/src/INTERP_KERNEL/CMakeLists.txt +++ b/src/INTERP_KERNEL/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CellModel.cxx b/src/INTERP_KERNEL/CellModel.cxx index f57dcab21..687901388 100644 --- a/src/INTERP_KERNEL/CellModel.cxx +++ b/src/INTERP_KERNEL/CellModel.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -99,6 +99,7 @@ namespace INTERP_KERNEL _map_of_unique_instance.insert(std::make_pair(NORM_POLYHED,CellModel(NORM_POLYHED))); _map_of_unique_instance.insert(std::make_pair(NORM_QPOLYG,CellModel(NORM_QPOLYG))); _map_of_unique_instance.insert(std::make_pair(NORM_POLYL,CellModel(NORM_POLYL))); + _map_of_unique_instance.insert(std::make_pair(NORM_ERROR,CellModel(NORM_ERROR))); } CellModel::CellModel(NormalizedCellType type):_type(type) diff --git a/src/INTERP_KERNEL/CellModel.hxx b/src/INTERP_KERNEL/CellModel.hxx index 4a0706646..f9d19c981 100644 --- a/src/INTERP_KERNEL/CellModel.hxx +++ b/src/INTERP_KERNEL/CellModel.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ConvexIntersector.hxx b/src/INTERP_KERNEL/ConvexIntersector.hxx index 90fc4d434..10755efa2 100644 --- a/src/INTERP_KERNEL/ConvexIntersector.hxx +++ b/src/INTERP_KERNEL/ConvexIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ConvexIntersector.txx b/src/INTERP_KERNEL/ConvexIntersector.txx index 3c1cccb5f..44836c639 100644 --- a/src/INTERP_KERNEL/ConvexIntersector.txx +++ b/src/INTERP_KERNEL/ConvexIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersector.hxx b/src/INTERP_KERNEL/CurveIntersector.hxx index 3264f9d11..14035f13a 100644 --- a/src/INTERP_KERNEL/CurveIntersector.hxx +++ b/src/INTERP_KERNEL/CurveIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersector.txx b/src/INTERP_KERNEL/CurveIntersector.txx index d0fb5f4e3..38dfa9920 100644 --- a/src/INTERP_KERNEL/CurveIntersector.txx +++ b/src/INTERP_KERNEL/CurveIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP0P0.hxx b/src/INTERP_KERNEL/CurveIntersectorP0P0.hxx index 23cdb9f3b..761dc2dc3 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/CurveIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP0P0.txx b/src/INTERP_KERNEL/CurveIntersectorP0P0.txx index 2a823880e..3981d1218 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/CurveIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP0P1.hxx b/src/INTERP_KERNEL/CurveIntersectorP0P1.hxx index de14457a8..42dbd758b 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP0P1.hxx +++ b/src/INTERP_KERNEL/CurveIntersectorP0P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP0P1.txx b/src/INTERP_KERNEL/CurveIntersectorP0P1.txx index d6bed1d79..91bb236d4 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP0P1.txx +++ b/src/INTERP_KERNEL/CurveIntersectorP0P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP1P0.hxx b/src/INTERP_KERNEL/CurveIntersectorP1P0.hxx index 4fd5a9285..7a5d3d6cf 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP1P0.hxx +++ b/src/INTERP_KERNEL/CurveIntersectorP1P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP1P0.txx b/src/INTERP_KERNEL/CurveIntersectorP1P0.txx index b3f39e21b..2a41ee145 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP1P0.txx +++ b/src/INTERP_KERNEL/CurveIntersectorP1P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP1P1.hxx b/src/INTERP_KERNEL/CurveIntersectorP1P1.hxx index 41025289e..f09e5143f 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP1P1.hxx +++ b/src/INTERP_KERNEL/CurveIntersectorP1P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/CurveIntersectorP1P1.txx b/src/INTERP_KERNEL/CurveIntersectorP1P1.txx index d03a707c1..efd1f855a 100644 --- a/src/INTERP_KERNEL/CurveIntersectorP1P1.txx +++ b/src/INTERP_KERNEL/CurveIntersectorP1P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/DirectedBoundingBox.cxx b/src/INTERP_KERNEL/DirectedBoundingBox.cxx index 98ebf830a..60912ed37 100644 --- a/src/INTERP_KERNEL/DirectedBoundingBox.cxx +++ b/src/INTERP_KERNEL/DirectedBoundingBox.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/DirectedBoundingBox.hxx b/src/INTERP_KERNEL/DirectedBoundingBox.hxx index d03d5aadf..3224b6675 100644 --- a/src/INTERP_KERNEL/DirectedBoundingBox.hxx +++ b/src/INTERP_KERNEL/DirectedBoundingBox.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.cxx index cafd86973..db4496f72 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.hxx b/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.hxx index e1c2bf3e7..d305da4b8 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.hxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelAsmX86.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx index 184e9ba24..a8867850c 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.hxx b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.hxx index a9b095593..0d01bad10 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.hxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelExprParser.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.cxx index c307a4460..4979adc05 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.hxx b/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.hxx index 0dc3b4709..cfd4bf692 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.hxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelFunction.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.cxx index 3ff74c745..c719b5e73 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx b/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx index e1783a39b..a3f33b76a 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelUnit.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelValue.cxx b/src/INTERP_KERNEL/ExprEval/InterpKernelValue.cxx index de1c8fdf8..5a97db3dd 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelValue.cxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelValue.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/ExprEval/InterpKernelValue.hxx b/src/INTERP_KERNEL/ExprEval/InterpKernelValue.hxx index 44912a73b..01581024d 100644 --- a/src/INTERP_KERNEL/ExprEval/InterpKernelValue.hxx +++ b/src/INTERP_KERNEL/ExprEval/InterpKernelValue.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.cxx b/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.cxx index 519977f8a..57e9c936a 100644 --- a/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.cxx +++ b/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.hxx b/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.hxx index 2cb6c3b6c..c045279d2 100644 --- a/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.hxx +++ b/src/INTERP_KERNEL/GaussPoints/InterpKernelGaussCoords.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/GenMathFormulae.hxx b/src/INTERP_KERNEL/GenMathFormulae.hxx index 99504bd7e..95c78f3d5 100644 --- a/src/INTERP_KERNEL/GenMathFormulae.hxx +++ b/src/INTERP_KERNEL/GenMathFormulae.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.cxx index 790eafcfe..694ebd113 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.hxx index abb86bb32..37a3fb51d 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DAbstractEdge.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx index d450601da..e4c5f9187 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.hxx index 8bd084a88..77e009543 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DBounds.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx index b960f0aa0..c57210de9 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx index 084238793..62b56d7fb 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DComposedEdge.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx index 43ba9fdd3..257667df8 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx index f8ec78822..bc8a1dcb7 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.txx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.txx index bddb26aee..ed9dc5298 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.txx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdge.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx index 8c6343740..551056cec 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.hxx index 3c3e48fbe..921723688 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeArcCircle.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.cxx index c8348aebe..dceb2addc 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.hxx index af24ff9bb..dffd43d4c 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeInfLin.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx index a61d85ec1..1a7b3cc3b 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.hxx index 299e98bf9..d5b212bcf 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DEdgeLin.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.cxx index 59100475a..a2a222f70 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.hxx index 7a2cf1f23..8611fe173 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DElementaryEdge.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.cxx index c45939aa6..03c3445f9 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx index 0faeb2397..2d1a9d5e3 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DNode.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx index 0605f693b..e5e453f7f 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx index 90d35cca3..83504ea8b 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DPrecision.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx index e1d4f86a4..c85d413c5 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -131,6 +131,19 @@ void QuadraticPolygon::circularPermute() } } +bool QuadraticPolygon::isButterflyAbs() +{ + INTERP_KERNEL::Bounds b; + double xBary,yBary; + b.prepareForAggregation(); + fillBounds(b); + double dimChar=b.getCaracteristicDim(); + b.getBarycenter(xBary,yBary); + applyGlobalSimilarity(xBary,yBary,dimChar); + // + return isButterfly(); +} + bool QuadraticPolygon::isButterfly() const { for(std::list::const_iterator it=_sub_edges.begin();it!=_sub_edges.end();it++) diff --git a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.hxx b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.hxx index e24ee3b12..a7beda997 100644 --- a/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.hxx +++ b/src/INTERP_KERNEL/Geometric2D/InterpKernelGeo2DQuadraticPolygon.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -46,6 +46,7 @@ namespace INTERP_KERNEL ~QuadraticPolygon(); void closeMe() const; void circularPermute(); + bool isButterflyAbs(); bool isButterfly() const; void dumpInXfigFile(const char *fileName) const; void dumpInXfigFileWithOther(const ComposedEdge& other, const char *fileName) const; diff --git a/src/INTERP_KERNEL/Geometric2DIntersector.hxx b/src/INTERP_KERNEL/Geometric2DIntersector.hxx index f62625105..69879f51b 100644 --- a/src/INTERP_KERNEL/Geometric2DIntersector.hxx +++ b/src/INTERP_KERNEL/Geometric2DIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Geometric2DIntersector.txx b/src/INTERP_KERNEL/Geometric2DIntersector.txx index 4c0e1768b..35cb69678 100644 --- a/src/INTERP_KERNEL/Geometric2DIntersector.txx +++ b/src/INTERP_KERNEL/Geometric2DIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/INTERPKERNELDefines.hxx b/src/INTERP_KERNEL/INTERPKERNELDefines.hxx index 7a18f8516..c89457dbb 100644 --- a/src/INTERP_KERNEL/INTERPKERNELDefines.hxx +++ b/src/INTERP_KERNEL/INTERPKERNELDefines.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/IntegralUniformIntersector.hxx b/src/INTERP_KERNEL/IntegralUniformIntersector.hxx index 41c53a87d..71cfebb7d 100644 --- a/src/INTERP_KERNEL/IntegralUniformIntersector.hxx +++ b/src/INTERP_KERNEL/IntegralUniformIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/IntegralUniformIntersector.txx b/src/INTERP_KERNEL/IntegralUniformIntersector.txx index 1bc36d840..0d46d983e 100644 --- a/src/INTERP_KERNEL/IntegralUniformIntersector.txx +++ b/src/INTERP_KERNEL/IntegralUniformIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelCellSimplify.cxx b/src/INTERP_KERNEL/InterpKernelCellSimplify.cxx index 15f0c6858..4daceef0f 100644 --- a/src/INTERP_KERNEL/InterpKernelCellSimplify.cxx +++ b/src/INTERP_KERNEL/InterpKernelCellSimplify.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelCellSimplify.hxx b/src/INTERP_KERNEL/InterpKernelCellSimplify.hxx index 1cf3d7bb9..34585260e 100644 --- a/src/INTERP_KERNEL/InterpKernelCellSimplify.hxx +++ b/src/INTERP_KERNEL/InterpKernelCellSimplify.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelMatrix.hxx b/src/INTERP_KERNEL/InterpKernelMatrix.hxx index a0e2476a8..660eef399 100755 --- a/src/INTERP_KERNEL/InterpKernelMatrix.hxx +++ b/src/INTERP_KERNEL/InterpKernelMatrix.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelMeshQuality.cxx b/src/INTERP_KERNEL/InterpKernelMeshQuality.cxx index 0d060a11f..c3f27f1ab 100644 --- a/src/INTERP_KERNEL/InterpKernelMeshQuality.cxx +++ b/src/INTERP_KERNEL/InterpKernelMeshQuality.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelMeshQuality.hxx b/src/INTERP_KERNEL/InterpKernelMeshQuality.hxx index ebba8a1af..95e30f5c2 100644 --- a/src/INTERP_KERNEL/InterpKernelMeshQuality.hxx +++ b/src/INTERP_KERNEL/InterpKernelMeshQuality.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpKernelUtilities.hxx b/src/INTERP_KERNEL/InterpKernelUtilities.hxx index e847ac773..4075c4d88 100644 --- a/src/INTERP_KERNEL/InterpKernelUtilities.hxx +++ b/src/INTERP_KERNEL/InterpKernelUtilities.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation.hxx b/src/INTERP_KERNEL/Interpolation.hxx index 4a34b863a..38951463c 100644 --- a/src/INTERP_KERNEL/Interpolation.hxx +++ b/src/INTERP_KERNEL/Interpolation.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation.txx b/src/INTERP_KERNEL/Interpolation.txx index a5bdca7e4..3ac70163f 100644 --- a/src/INTERP_KERNEL/Interpolation.txx +++ b/src/INTERP_KERNEL/Interpolation.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation1D.hxx b/src/INTERP_KERNEL/Interpolation1D.hxx index 49dde9e64..37e36de45 100755 --- a/src/INTERP_KERNEL/Interpolation1D.hxx +++ b/src/INTERP_KERNEL/Interpolation1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation1D.txx b/src/INTERP_KERNEL/Interpolation1D.txx index 2d676a481..174c18291 100644 --- a/src/INTERP_KERNEL/Interpolation1D.txx +++ b/src/INTERP_KERNEL/Interpolation1D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2D.hxx b/src/INTERP_KERNEL/Interpolation2D.hxx index fb748e889..6551ebda4 100755 --- a/src/INTERP_KERNEL/Interpolation2D.hxx +++ b/src/INTERP_KERNEL/Interpolation2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2D.txx b/src/INTERP_KERNEL/Interpolation2D.txx index 8fcb207b1..aa4410096 100644 --- a/src/INTERP_KERNEL/Interpolation2D.txx +++ b/src/INTERP_KERNEL/Interpolation2D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2D1D.hxx b/src/INTERP_KERNEL/Interpolation2D1D.hxx index c9809ee51..f1a0b76f4 100644 --- a/src/INTERP_KERNEL/Interpolation2D1D.hxx +++ b/src/INTERP_KERNEL/Interpolation2D1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2D1D.txx b/src/INTERP_KERNEL/Interpolation2D1D.txx index 62e921708..e84d07dec 100644 --- a/src/INTERP_KERNEL/Interpolation2D1D.txx +++ b/src/INTERP_KERNEL/Interpolation2D1D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2DCurve.cxx b/src/INTERP_KERNEL/Interpolation2DCurve.cxx index dcb61303a..c1cfa381c 100644 --- a/src/INTERP_KERNEL/Interpolation2DCurve.cxx +++ b/src/INTERP_KERNEL/Interpolation2DCurve.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation2DCurve.hxx b/src/INTERP_KERNEL/Interpolation2DCurve.hxx index 8a3f09b2a..d1c2f7653 100644 --- a/src/INTERP_KERNEL/Interpolation2DCurve.hxx +++ b/src/INTERP_KERNEL/Interpolation2DCurve.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D.cxx b/src/INTERP_KERNEL/Interpolation3D.cxx index d5c9f6c86..d2401e3d1 100644 --- a/src/INTERP_KERNEL/Interpolation3D.cxx +++ b/src/INTERP_KERNEL/Interpolation3D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D.hxx b/src/INTERP_KERNEL/Interpolation3D.hxx index 31579ceaa..247ca14a2 100644 --- a/src/INTERP_KERNEL/Interpolation3D.hxx +++ b/src/INTERP_KERNEL/Interpolation3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D.txx b/src/INTERP_KERNEL/Interpolation3D.txx index 9e90fe447..248207e02 100644 --- a/src/INTERP_KERNEL/Interpolation3D.txx +++ b/src/INTERP_KERNEL/Interpolation3D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D2D.cxx b/src/INTERP_KERNEL/Interpolation3D2D.cxx index d29392342..040e654f7 100644 --- a/src/INTERP_KERNEL/Interpolation3D2D.cxx +++ b/src/INTERP_KERNEL/Interpolation3D2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D2D.hxx b/src/INTERP_KERNEL/Interpolation3D2D.hxx index f4fc8997b..50dea59ab 100644 --- a/src/INTERP_KERNEL/Interpolation3D2D.hxx +++ b/src/INTERP_KERNEL/Interpolation3D2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3D2D.txx b/src/INTERP_KERNEL/Interpolation3D2D.txx index 27ddb7e8f..b971d8978 100644 --- a/src/INTERP_KERNEL/Interpolation3D2D.txx +++ b/src/INTERP_KERNEL/Interpolation3D2D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3DSurf.cxx b/src/INTERP_KERNEL/Interpolation3DSurf.cxx index 957816859..488ca2b85 100644 --- a/src/INTERP_KERNEL/Interpolation3DSurf.cxx +++ b/src/INTERP_KERNEL/Interpolation3DSurf.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Interpolation3DSurf.hxx b/src/INTERP_KERNEL/Interpolation3DSurf.hxx index 3ad619279..ede723162 100644 --- a/src/INTERP_KERNEL/Interpolation3DSurf.hxx +++ b/src/INTERP_KERNEL/Interpolation3DSurf.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationCC.hxx b/src/INTERP_KERNEL/InterpolationCC.hxx index 1992fe74e..88bbc00a1 100644 --- a/src/INTERP_KERNEL/InterpolationCC.hxx +++ b/src/INTERP_KERNEL/InterpolationCC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/InterpolationCC.txx b/src/INTERP_KERNEL/InterpolationCC.txx index 3f9c8152e..da4ec44f1 100644 --- a/src/INTERP_KERNEL/InterpolationCC.txx +++ b/src/INTERP_KERNEL/InterpolationCC.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/InterpolationCU.hxx b/src/INTERP_KERNEL/InterpolationCU.hxx index 9efa4ebe8..e2fef426f 100644 --- a/src/INTERP_KERNEL/InterpolationCU.hxx +++ b/src/INTERP_KERNEL/InterpolationCU.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/InterpolationCU.txx b/src/INTERP_KERNEL/InterpolationCU.txx index 7b7c2415f..f9528e185 100644 --- a/src/INTERP_KERNEL/InterpolationCU.txx +++ b/src/INTERP_KERNEL/InterpolationCU.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/InterpolationCurve.hxx b/src/INTERP_KERNEL/InterpolationCurve.hxx index bc359e622..35dbd6799 100644 --- a/src/INTERP_KERNEL/InterpolationCurve.hxx +++ b/src/INTERP_KERNEL/InterpolationCurve.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationCurve.txx b/src/INTERP_KERNEL/InterpolationCurve.txx index ae8978e4c..86ec61744 100644 --- a/src/INTERP_KERNEL/InterpolationCurve.txx +++ b/src/INTERP_KERNEL/InterpolationCurve.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationOptions.cxx b/src/INTERP_KERNEL/InterpolationOptions.cxx index 61afd78fd..2e2e7def7 100644 --- a/src/INTERP_KERNEL/InterpolationOptions.cxx +++ b/src/INTERP_KERNEL/InterpolationOptions.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationOptions.hxx b/src/INTERP_KERNEL/InterpolationOptions.hxx index 4e1e01bcb..d9c51d70a 100644 --- a/src/INTERP_KERNEL/InterpolationOptions.hxx +++ b/src/INTERP_KERNEL/InterpolationOptions.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -33,6 +33,13 @@ namespace INTERP_KERNEL /// that result from the split. typedef enum { PLANAR_FACE_5 = 5, PLANAR_FACE_6 = 6, GENERAL_24 = 24, GENERAL_48 = 48 } SplittingPolicy; + /*! + * \class InterpolationOptions + * Class defining the options for all interpolation algorithms. + * + * List of options, possible values and default values can be found on this page: + * \ref InterpKerIntersectors + */ class INTERPKERNEL_EXPORT InterpolationOptions { private: diff --git a/src/INTERP_KERNEL/InterpolationPlanar.hxx b/src/INTERP_KERNEL/InterpolationPlanar.hxx index 5699fbc48..c30cd81f4 100755 --- a/src/INTERP_KERNEL/InterpolationPlanar.hxx +++ b/src/INTERP_KERNEL/InterpolationPlanar.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationPlanar.txx b/src/INTERP_KERNEL/InterpolationPlanar.txx index a8ea915f7..2ba5aafe8 100644 --- a/src/INTERP_KERNEL/InterpolationPlanar.txx +++ b/src/INTERP_KERNEL/InterpolationPlanar.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/InterpolationUtils.hxx b/src/INTERP_KERNEL/InterpolationUtils.hxx index a271d2012..af7fdfcc9 100644 --- a/src/INTERP_KERNEL/InterpolationUtils.hxx +++ b/src/INTERP_KERNEL/InterpolationUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3D.hxx b/src/INTERP_KERNEL/Intersector3D.hxx index 59e70cb8b..9ab3f7b78 100644 --- a/src/INTERP_KERNEL/Intersector3D.hxx +++ b/src/INTERP_KERNEL/Intersector3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3D.txx b/src/INTERP_KERNEL/Intersector3D.txx index ee9b36aee..05b5c9409 100644 --- a/src/INTERP_KERNEL/Intersector3D.txx +++ b/src/INTERP_KERNEL/Intersector3D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP0P0.hxx b/src/INTERP_KERNEL/Intersector3DP0P0.hxx index a5fcfb6d9..243ce6ff4 100644 --- a/src/INTERP_KERNEL/Intersector3DP0P0.hxx +++ b/src/INTERP_KERNEL/Intersector3DP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP0P0.txx b/src/INTERP_KERNEL/Intersector3DP0P0.txx index 90a52c067..1ab4b5a44 100644 --- a/src/INTERP_KERNEL/Intersector3DP0P0.txx +++ b/src/INTERP_KERNEL/Intersector3DP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP0P1.hxx b/src/INTERP_KERNEL/Intersector3DP0P1.hxx index 480d4d4eb..98a247614 100644 --- a/src/INTERP_KERNEL/Intersector3DP0P1.hxx +++ b/src/INTERP_KERNEL/Intersector3DP0P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP0P1.txx b/src/INTERP_KERNEL/Intersector3DP0P1.txx index e0455f433..50dc45eac 100644 --- a/src/INTERP_KERNEL/Intersector3DP0P1.txx +++ b/src/INTERP_KERNEL/Intersector3DP0P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P0.hxx b/src/INTERP_KERNEL/Intersector3DP1P0.hxx index ef98a9cc2..cc7f494c8 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P0.hxx +++ b/src/INTERP_KERNEL/Intersector3DP1P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P0.txx b/src/INTERP_KERNEL/Intersector3DP1P0.txx index 9c53fc9f3..e302323f5 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P0.txx +++ b/src/INTERP_KERNEL/Intersector3DP1P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P0Bary.hxx b/src/INTERP_KERNEL/Intersector3DP1P0Bary.hxx index 52cafb685..a08948afe 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P0Bary.hxx +++ b/src/INTERP_KERNEL/Intersector3DP1P0Bary.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P0Bary.txx b/src/INTERP_KERNEL/Intersector3DP1P0Bary.txx index b4bd89d6f..de36ddd78 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P0Bary.txx +++ b/src/INTERP_KERNEL/Intersector3DP1P0Bary.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P1.hxx b/src/INTERP_KERNEL/Intersector3DP1P1.hxx index e4d8b2ef2..13c495aef 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P1.hxx +++ b/src/INTERP_KERNEL/Intersector3DP1P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Intersector3DP1P1.txx b/src/INTERP_KERNEL/Intersector3DP1P1.txx index 03dab3b81..03698f4d6 100644 --- a/src/INTERP_KERNEL/Intersector3DP1P1.txx +++ b/src/INTERP_KERNEL/Intersector3DP1P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/IntersectorCU.hxx b/src/INTERP_KERNEL/IntersectorCU.hxx index 9fe5b4a90..fac8c96c5 100644 --- a/src/INTERP_KERNEL/IntersectorCU.hxx +++ b/src/INTERP_KERNEL/IntersectorCU.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU.txx b/src/INTERP_KERNEL/IntersectorCU.txx index 432d45a7a..1d4d1451c 100644 --- a/src/INTERP_KERNEL/IntersectorCU.txx +++ b/src/INTERP_KERNEL/IntersectorCU.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU1D.hxx b/src/INTERP_KERNEL/IntersectorCU1D.hxx index 2caafbb0c..ec0a9d874 100644 --- a/src/INTERP_KERNEL/IntersectorCU1D.hxx +++ b/src/INTERP_KERNEL/IntersectorCU1D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU1D.txx b/src/INTERP_KERNEL/IntersectorCU1D.txx index 056581c02..751e94fe0 100644 --- a/src/INTERP_KERNEL/IntersectorCU1D.txx +++ b/src/INTERP_KERNEL/IntersectorCU1D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU2D.hxx b/src/INTERP_KERNEL/IntersectorCU2D.hxx index aa4a88d22..816fa1b35 100644 --- a/src/INTERP_KERNEL/IntersectorCU2D.hxx +++ b/src/INTERP_KERNEL/IntersectorCU2D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU2D.txx b/src/INTERP_KERNEL/IntersectorCU2D.txx index b1b30d0fc..ee2d36c25 100644 --- a/src/INTERP_KERNEL/IntersectorCU2D.txx +++ b/src/INTERP_KERNEL/IntersectorCU2D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU3D.hxx b/src/INTERP_KERNEL/IntersectorCU3D.hxx index a011d111f..2e48dafa1 100644 --- a/src/INTERP_KERNEL/IntersectorCU3D.hxx +++ b/src/INTERP_KERNEL/IntersectorCU3D.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/IntersectorCU3D.txx b/src/INTERP_KERNEL/IntersectorCU3D.txx index c08e751cb..81ff0046a 100644 --- a/src/INTERP_KERNEL/IntersectorCU3D.txx +++ b/src/INTERP_KERNEL/IntersectorCU3D.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2009-2011 OPEN CASCADE +// Copyright (C) 2009-2012 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/src/INTERP_KERNEL/Log.hxx b/src/INTERP_KERNEL/Log.hxx index f6abeda2c..a994d5541 100644 --- a/src/INTERP_KERNEL/Log.hxx +++ b/src/INTERP_KERNEL/Log.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Makefile.am b/src/INTERP_KERNEL/Makefile.am index 734a0dee2..17412e8a5 100644 --- a/src/INTERP_KERNEL/Makefile.am +++ b/src/INTERP_KERNEL/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshElement.cxx b/src/INTERP_KERNEL/MeshElement.cxx index c328c6134..9d44bc7c7 100644 --- a/src/INTERP_KERNEL/MeshElement.cxx +++ b/src/INTERP_KERNEL/MeshElement.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshElement.hxx b/src/INTERP_KERNEL/MeshElement.hxx index 4068324be..484d9f920 100644 --- a/src/INTERP_KERNEL/MeshElement.hxx +++ b/src/INTERP_KERNEL/MeshElement.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshElement.txx b/src/INTERP_KERNEL/MeshElement.txx index 800ebcdaa..0388a4e5d 100644 --- a/src/INTERP_KERNEL/MeshElement.txx +++ b/src/INTERP_KERNEL/MeshElement.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshRegion.hxx b/src/INTERP_KERNEL/MeshRegion.hxx index 7ce43f5da..d1e51f9cc 100644 --- a/src/INTERP_KERNEL/MeshRegion.hxx +++ b/src/INTERP_KERNEL/MeshRegion.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshRegion.txx b/src/INTERP_KERNEL/MeshRegion.txx index cf213672c..4b79b2fdd 100644 --- a/src/INTERP_KERNEL/MeshRegion.txx +++ b/src/INTERP_KERNEL/MeshRegion.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/MeshUtils.hxx b/src/INTERP_KERNEL/MeshUtils.hxx index 4291799dd..908c0d03a 100644 --- a/src/INTERP_KERNEL/MeshUtils.hxx +++ b/src/INTERP_KERNEL/MeshUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.hxx b/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.hxx index 3a79ad04c..b159689f2 100644 --- a/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.txx b/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.txx index d0cd94647..758df4d55 100644 --- a/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/Planar2D1DIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersector.hxx b/src/INTERP_KERNEL/PlanarIntersector.hxx index 395ff8b39..d25b81d4f 100644 --- a/src/INTERP_KERNEL/PlanarIntersector.hxx +++ b/src/INTERP_KERNEL/PlanarIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersector.txx b/src/INTERP_KERNEL/PlanarIntersector.txx index a739f9f60..5323eda43 100644 --- a/src/INTERP_KERNEL/PlanarIntersector.txx +++ b/src/INTERP_KERNEL/PlanarIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P0.hxx b/src/INTERP_KERNEL/PlanarIntersectorP0P0.hxx index 704f3f52d..9e5249d62 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P0.txx b/src/INTERP_KERNEL/PlanarIntersectorP0P0.txx index f15e5dce6..f698b984d 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P1.hxx b/src/INTERP_KERNEL/PlanarIntersectorP0P1.hxx index 00985606e..c6083a228 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P1.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P1.txx b/src/INTERP_KERNEL/PlanarIntersectorP0P1.txx index 43ce316d1..48343d92a 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P1.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.hxx b/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.hxx index 7e082f998..10b47cfc8 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.txx b/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.txx index 8678f85c7..6537c7bf4 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP0P1PL.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0.hxx b/src/INTERP_KERNEL/PlanarIntersectorP1P0.hxx index 7779a56dc..29459a510 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0.txx b/src/INTERP_KERNEL/PlanarIntersectorP1P0.txx index 5cd13a692..27f598702 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.hxx b/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.hxx index ea92461bf..1ea4f480f 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.txx b/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.txx index 58c82c6ac..a9079580b 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0Bary.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.hxx b/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.hxx index 91793a29a..fe82a84e7 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.txx b/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.txx index 0d40ef83e..311c724de 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P0PL.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P1.hxx b/src/INTERP_KERNEL/PlanarIntersectorP1P1.hxx index f4639c928..1168345d8 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P1.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P1.txx b/src/INTERP_KERNEL/PlanarIntersectorP1P1.txx index 8284e5945..707cafeb2 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P1.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.hxx b/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.hxx index fd899c290..f2e9c6190 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.hxx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.txx b/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.txx index 70d2fd311..353240def 100644 --- a/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.txx +++ b/src/INTERP_KERNEL/PlanarIntersectorP1P1PL.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator2DIntersector.hxx b/src/INTERP_KERNEL/PointLocator2DIntersector.hxx index 66197f137..a45ee3685 100644 --- a/src/INTERP_KERNEL/PointLocator2DIntersector.hxx +++ b/src/INTERP_KERNEL/PointLocator2DIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator2DIntersector.txx b/src/INTERP_KERNEL/PointLocator2DIntersector.txx index ab470829d..080dc9c4e 100644 --- a/src/INTERP_KERNEL/PointLocator2DIntersector.txx +++ b/src/INTERP_KERNEL/PointLocator2DIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.hxx b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.hxx index 9ba8bacc3..1831ff908 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.txx b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.txx index 7b74aabb8..043df337e 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.hxx b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.hxx index e2f2edef6..13bc98cac 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.hxx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.txx b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.txx index 399974864..0ea7ddc80 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.txx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP0P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.hxx b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.hxx index 2bd8994df..4dd3f26ca 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.hxx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.txx b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.txx index a360665b7..3a941337d 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.txx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.hxx b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.hxx index 4b1b2d31d..9951eea52 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.hxx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.txx b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.txx index 620088815..1cffba133 100644 --- a/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.txx +++ b/src/INTERP_KERNEL/PointLocator3DIntersectorP1P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PointLocatorAlgos.txx b/src/INTERP_KERNEL/PointLocatorAlgos.txx index 2164c64b6..d30ea1540 100644 --- a/src/INTERP_KERNEL/PointLocatorAlgos.txx +++ b/src/INTERP_KERNEL/PointLocatorAlgos.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolygonAlgorithms.hxx b/src/INTERP_KERNEL/PolygonAlgorithms.hxx index d09ba1755..dc072352e 100644 --- a/src/INTERP_KERNEL/PolygonAlgorithms.hxx +++ b/src/INTERP_KERNEL/PolygonAlgorithms.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolygonAlgorithms.txx b/src/INTERP_KERNEL/PolygonAlgorithms.txx index 516e41c29..3f1bf175f 100644 --- a/src/INTERP_KERNEL/PolygonAlgorithms.txx +++ b/src/INTERP_KERNEL/PolygonAlgorithms.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.hxx b/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.hxx index c94c51cb0..519660000 100644 --- a/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.txx b/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.txx index 59b46f921..92418804d 100644 --- a/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/Polyhedron3D2DIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.hxx b/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.hxx index 828c61dad..6e746ef05 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.hxx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.txx b/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.txx index 260a4c110..61011e735 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.txx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP0P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.hxx b/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.hxx index a6bd815d0..024ce9b68 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.hxx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.txx b/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.txx index 4dbf72dc9..8786b3f76 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.txx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP0P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.hxx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.hxx index 483b3b166..c3e257d22 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.hxx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.txx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.txx index 43ca2840a..962fd76e5 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.txx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.hxx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.hxx index 136e198cf..b6d6f7c15 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.hxx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.txx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.txx index d3ae2560f..884adf1fd 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.txx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P0Bary.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.hxx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.hxx index e32d813f0..fc65a7f10 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.hxx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.txx b/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.txx index f98dca961..31a26e7df 100644 --- a/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.txx +++ b/src/INTERP_KERNEL/PolyhedronIntersectorP1P1.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/RegionNode.hxx b/src/INTERP_KERNEL/RegionNode.hxx index e894260da..14d482e28 100644 --- a/src/INTERP_KERNEL/RegionNode.hxx +++ b/src/INTERP_KERNEL/RegionNode.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/SplitterTetra.hxx b/src/INTERP_KERNEL/SplitterTetra.hxx index 808520cc2..d535b9c37 100644 --- a/src/INTERP_KERNEL/SplitterTetra.hxx +++ b/src/INTERP_KERNEL/SplitterTetra.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/SplitterTetra.txx b/src/INTERP_KERNEL/SplitterTetra.txx index 5f5dd3a7e..e36dd0ae5 100644 --- a/src/INTERP_KERNEL/SplitterTetra.txx +++ b/src/INTERP_KERNEL/SplitterTetra.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TargetIntersector.hxx b/src/INTERP_KERNEL/TargetIntersector.hxx index f41c3d498..1023394af 100644 --- a/src/INTERP_KERNEL/TargetIntersector.hxx +++ b/src/INTERP_KERNEL/TargetIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TetraAffineTransform.cxx b/src/INTERP_KERNEL/TetraAffineTransform.cxx index e4309fa47..5c8ac1b6e 100644 --- a/src/INTERP_KERNEL/TetraAffineTransform.cxx +++ b/src/INTERP_KERNEL/TetraAffineTransform.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TetraAffineTransform.hxx b/src/INTERP_KERNEL/TetraAffineTransform.hxx index dfdc39c66..303c8f9b4 100644 --- a/src/INTERP_KERNEL/TetraAffineTransform.hxx +++ b/src/INTERP_KERNEL/TetraAffineTransform.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TransformedTriangle.cxx b/src/INTERP_KERNEL/TransformedTriangle.cxx index 21dacb129..1e3f6a484 100644 --- a/src/INTERP_KERNEL/TransformedTriangle.cxx +++ b/src/INTERP_KERNEL/TransformedTriangle.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TransformedTriangle.hxx b/src/INTERP_KERNEL/TransformedTriangle.hxx index a396b2beb..d7f7a4e32 100644 --- a/src/INTERP_KERNEL/TransformedTriangle.hxx +++ b/src/INTERP_KERNEL/TransformedTriangle.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TransformedTriangleInline.hxx b/src/INTERP_KERNEL/TransformedTriangleInline.hxx index e6de1e3e6..1576ad804 100644 --- a/src/INTERP_KERNEL/TransformedTriangleInline.hxx +++ b/src/INTERP_KERNEL/TransformedTriangleInline.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx b/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx index 02a43a473..37cf82551 100644 --- a/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx +++ b/src/INTERP_KERNEL/TransformedTriangleIntersect.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TransformedTriangleMath.cxx b/src/INTERP_KERNEL/TransformedTriangleMath.cxx index fd8674986..5d7cf02ab 100644 --- a/src/INTERP_KERNEL/TransformedTriangleMath.cxx +++ b/src/INTERP_KERNEL/TransformedTriangleMath.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TranslationRotationMatrix.cxx b/src/INTERP_KERNEL/TranslationRotationMatrix.cxx index 0aa8ba385..3c28c1320 100644 --- a/src/INTERP_KERNEL/TranslationRotationMatrix.cxx +++ b/src/INTERP_KERNEL/TranslationRotationMatrix.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TranslationRotationMatrix.hxx b/src/INTERP_KERNEL/TranslationRotationMatrix.hxx index 08f3ba9f4..e2186fc54 100644 --- a/src/INTERP_KERNEL/TranslationRotationMatrix.hxx +++ b/src/INTERP_KERNEL/TranslationRotationMatrix.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TriangulationIntersector.hxx b/src/INTERP_KERNEL/TriangulationIntersector.hxx index 69e72e93d..99959cd2c 100644 --- a/src/INTERP_KERNEL/TriangulationIntersector.hxx +++ b/src/INTERP_KERNEL/TriangulationIntersector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/TriangulationIntersector.txx b/src/INTERP_KERNEL/TriangulationIntersector.txx index 1ca2bfd5f..3cc53f66e 100644 --- a/src/INTERP_KERNEL/TriangulationIntersector.txx +++ b/src/INTERP_KERNEL/TriangulationIntersector.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/UnitTetraIntersectionBary.cxx b/src/INTERP_KERNEL/UnitTetraIntersectionBary.cxx index 49cc67e62..f087eb584 100644 --- a/src/INTERP_KERNEL/UnitTetraIntersectionBary.cxx +++ b/src/INTERP_KERNEL/UnitTetraIntersectionBary.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/UnitTetraIntersectionBary.hxx b/src/INTERP_KERNEL/UnitTetraIntersectionBary.hxx index 726dfdef7..0e7f70b08 100644 --- a/src/INTERP_KERNEL/UnitTetraIntersectionBary.hxx +++ b/src/INTERP_KERNEL/UnitTetraIntersectionBary.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.hxx b/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.hxx index 7bdd6b2c2..49bf127f9 100644 --- a/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.hxx +++ b/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.txx b/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.txx index 65c6ecdde..3baae70f2 100644 --- a/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.txx +++ b/src/INTERP_KERNEL/VTKNormalizedUnstructuredMesh.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VectorUtils.hxx b/src/INTERP_KERNEL/VectorUtils.hxx index 084508c5d..3c6832344 100644 --- a/src/INTERP_KERNEL/VectorUtils.hxx +++ b/src/INTERP_KERNEL/VectorUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VolSurfFormulae.hxx b/src/INTERP_KERNEL/VolSurfFormulae.hxx index ac88c255d..b1e815eff 100644 --- a/src/INTERP_KERNEL/VolSurfFormulae.hxx +++ b/src/INTERP_KERNEL/VolSurfFormulae.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VolSurfUser.hxx b/src/INTERP_KERNEL/VolSurfUser.hxx index 77d46e932..09fe9967a 100644 --- a/src/INTERP_KERNEL/VolSurfUser.hxx +++ b/src/INTERP_KERNEL/VolSurfUser.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNEL/VolSurfUser.txx b/src/INTERP_KERNEL/VolSurfUser.txx index 4ed9976ec..0b673eb09 100644 --- a/src/INTERP_KERNEL/VolSurfUser.txx +++ b/src/INTERP_KERNEL/VolSurfUser.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/BBTreeTest.cxx b/src/INTERP_KERNELTest/BBTreeTest.cxx index 1bbcb4a9f..b827bea2f 100644 --- a/src/INTERP_KERNELTest/BBTreeTest.cxx +++ b/src/INTERP_KERNELTest/BBTreeTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/BBTreeTest.hxx b/src/INTERP_KERNELTest/BBTreeTest.hxx index 9d8f689cb..85faf0f5d 100644 --- a/src/INTERP_KERNELTest/BBTreeTest.hxx +++ b/src/INTERP_KERNELTest/BBTreeTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/BasicMainTest.hxx b/src/INTERP_KERNELTest/BasicMainTest.hxx index 3caa454a0..914473eb8 100644 --- a/src/INTERP_KERNELTest/BasicMainTest.hxx +++ b/src/INTERP_KERNELTest/BasicMainTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/CMakeLists.txt b/src/INTERP_KERNELTest/CMakeLists.txt index d516f422d..54576bbd2 100644 --- a/src/INTERP_KERNELTest/CMakeLists.txt +++ b/src/INTERP_KERNELTest/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/CppUnitTest.cxx b/src/INTERP_KERNELTest/CppUnitTest.cxx index 4b130f038..192122225 100644 --- a/src/INTERP_KERNELTest/CppUnitTest.cxx +++ b/src/INTERP_KERNELTest/CppUnitTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/CppUnitTest.hxx b/src/INTERP_KERNELTest/CppUnitTest.hxx index 2214e8083..8764fa665 100644 --- a/src/INTERP_KERNELTest/CppUnitTest.hxx +++ b/src/INTERP_KERNELTest/CppUnitTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/ExprEvalInterpTest.cxx b/src/INTERP_KERNELTest/ExprEvalInterpTest.cxx index 0bbf29cf0..075c00453 100644 --- a/src/INTERP_KERNELTest/ExprEvalInterpTest.cxx +++ b/src/INTERP_KERNELTest/ExprEvalInterpTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/ExprEvalInterpTest.hxx b/src/INTERP_KERNELTest/ExprEvalInterpTest.hxx index 15baa922a..f631cb250 100644 --- a/src/INTERP_KERNELTest/ExprEvalInterpTest.hxx +++ b/src/INTERP_KERNELTest/ExprEvalInterpTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/HexaTests.hxx b/src/INTERP_KERNELTest/HexaTests.hxx index e9043a842..f5fad8094 100644 --- a/src/INTERP_KERNELTest/HexaTests.hxx +++ b/src/INTERP_KERNELTest/HexaTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/InterpKernelTestExport.hxx b/src/INTERP_KERNELTest/InterpKernelTestExport.hxx index d7470d766..93e49afbd 100644 --- a/src/INTERP_KERNELTest/InterpKernelTestExport.hxx +++ b/src/INTERP_KERNELTest/InterpKernelTestExport.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/Interpolation3DTest.cxx b/src/INTERP_KERNELTest/Interpolation3DTest.cxx index 26d0e32ca..5b6376e06 100644 --- a/src/INTERP_KERNELTest/Interpolation3DTest.cxx +++ b/src/INTERP_KERNELTest/Interpolation3DTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/Interpolation3DTest.hxx b/src/INTERP_KERNELTest/Interpolation3DTest.hxx index c81bd4c98..c76c582c5 100644 --- a/src/INTERP_KERNELTest/Interpolation3DTest.hxx +++ b/src/INTERP_KERNELTest/Interpolation3DTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx b/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx index 1ac07673b..b053d9058 100644 --- a/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx +++ b/src/INTERP_KERNELTest/InterpolationOptionsTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/InterpolationOptionsTest.hxx b/src/INTERP_KERNELTest/InterpolationOptionsTest.hxx index 3ac0b16af..6c4fc8602 100644 --- a/src/INTERP_KERNELTest/InterpolationOptionsTest.hxx +++ b/src/INTERP_KERNELTest/InterpolationOptionsTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/InterpolationPlanarTestSuite.hxx b/src/INTERP_KERNELTest/InterpolationPlanarTestSuite.hxx index 913794cfc..658975c4a 100644 --- a/src/INTERP_KERNELTest/InterpolationPlanarTestSuite.hxx +++ b/src/INTERP_KERNELTest/InterpolationPlanarTestSuite.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/InterpolationTestSuite.hxx b/src/INTERP_KERNELTest/InterpolationTestSuite.hxx index 05a27c929..4629e894d 100644 --- a/src/INTERP_KERNELTest/InterpolationTestSuite.hxx +++ b/src/INTERP_KERNELTest/InterpolationTestSuite.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MEDMeshMaker.cxx b/src/INTERP_KERNELTest/MEDMeshMaker.cxx index 18fc6695f..d82c32c3a 100644 --- a/src/INTERP_KERNELTest/MEDMeshMaker.cxx +++ b/src/INTERP_KERNELTest/MEDMeshMaker.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MEDMeshMaker.hxx b/src/INTERP_KERNELTest/MEDMeshMaker.hxx index dfddec84e..1595a9eb9 100644 --- a/src/INTERP_KERNELTest/MEDMeshMaker.hxx +++ b/src/INTERP_KERNELTest/MEDMeshMaker.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/Makefile.am b/src/INTERP_KERNELTest/Makefile.am index 52fe6e3de..93dc410d7 100644 --- a/src/INTERP_KERNELTest/Makefile.am +++ b/src/INTERP_KERNELTest/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MeshTestToolkit.hxx b/src/INTERP_KERNELTest/MeshTestToolkit.hxx index 61d0db78a..161d11b1d 100644 --- a/src/INTERP_KERNELTest/MeshTestToolkit.hxx +++ b/src/INTERP_KERNELTest/MeshTestToolkit.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MeshTestToolkit.txx b/src/INTERP_KERNELTest/MeshTestToolkit.txx index d31d402a9..e656cad62 100644 --- a/src/INTERP_KERNELTest/MeshTestToolkit.txx +++ b/src/INTERP_KERNELTest/MeshTestToolkit.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MultiElement2DTests.hxx b/src/INTERP_KERNELTest/MultiElement2DTests.hxx index 543ebac47..566026d67 100644 --- a/src/INTERP_KERNELTest/MultiElement2DTests.hxx +++ b/src/INTERP_KERNELTest/MultiElement2DTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MultiElement3DSurfTests.hxx b/src/INTERP_KERNELTest/MultiElement3DSurfTests.hxx index 90f4eed15..f3b6732aa 100644 --- a/src/INTERP_KERNELTest/MultiElement3DSurfTests.hxx +++ b/src/INTERP_KERNELTest/MultiElement3DSurfTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/MultiElementTetraTests.hxx b/src/INTERP_KERNELTest/MultiElementTetraTests.hxx index e8e02bbb3..8610e652d 100644 --- a/src/INTERP_KERNELTest/MultiElementTetraTests.hxx +++ b/src/INTERP_KERNELTest/MultiElementTetraTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/PerfTest.cxx b/src/INTERP_KERNELTest/PerfTest.cxx index 69f2b960b..fd139bc9a 100644 --- a/src/INTERP_KERNELTest/PerfTest.cxx +++ b/src/INTERP_KERNELTest/PerfTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/PointLocatorTest.cxx b/src/INTERP_KERNELTest/PointLocatorTest.cxx index 60cb916bc..0dd2bfa70 100644 --- a/src/INTERP_KERNELTest/PointLocatorTest.cxx +++ b/src/INTERP_KERNELTest/PointLocatorTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/PointLocatorTest.hxx b/src/INTERP_KERNELTest/PointLocatorTest.hxx index 2193f42ca..d918387ca 100644 --- a/src/INTERP_KERNELTest/PointLocatorTest.hxx +++ b/src/INTERP_KERNELTest/PointLocatorTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.cxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.cxx index 5105b3f37..a58f32b14 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.cxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.hxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.hxx index eabd8a70a..8024a21ac 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.hxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx index b7205ad17..8eae1b8a8 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest2.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest3.cxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest3.cxx index b08cae9ac..a249d3a13 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest3.cxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest3.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx index f164fec79..9210694b4 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest4.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx index 2e9f8e8a6..329ce0f84 100644 --- a/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx +++ b/src/INTERP_KERNELTest/QuadraticPlanarInterpTest5.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/RemapperTest.cxx b/src/INTERP_KERNELTest/RemapperTest.cxx index 30eae64e4..8002c73b3 100644 --- a/src/INTERP_KERNELTest/RemapperTest.cxx +++ b/src/INTERP_KERNELTest/RemapperTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx b/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx index 2681d1df0..a8b13882e 100644 --- a/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx +++ b/src/INTERP_KERNELTest/SingleElementPlanarTests.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/SingleElementPlanarTests.hxx b/src/INTERP_KERNELTest/SingleElementPlanarTests.hxx index d2698aa08..4ac48cd13 100644 --- a/src/INTERP_KERNELTest/SingleElementPlanarTests.hxx +++ b/src/INTERP_KERNELTest/SingleElementPlanarTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/SingleElementTetraTests.hxx b/src/INTERP_KERNELTest/SingleElementTetraTests.hxx index b0690b69e..e419b6b96 100644 --- a/src/INTERP_KERNELTest/SingleElementTetraTests.hxx +++ b/src/INTERP_KERNELTest/SingleElementTetraTests.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TestInterpKernel.cxx b/src/INTERP_KERNELTest/TestInterpKernel.cxx index 45a2772c6..6272fd3e7 100644 --- a/src/INTERP_KERNELTest/TestInterpKernel.cxx +++ b/src/INTERP_KERNELTest/TestInterpKernel.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TestInterpKernelUtils.cxx b/src/INTERP_KERNELTest/TestInterpKernelUtils.cxx index e935fcfe5..7573e85cf 100644 --- a/src/INTERP_KERNELTest/TestInterpKernelUtils.cxx +++ b/src/INTERP_KERNELTest/TestInterpKernelUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TestInterpKernelUtils.hxx b/src/INTERP_KERNELTest/TestInterpKernelUtils.hxx index c5a0b6c07..ab1863413 100644 --- a/src/INTERP_KERNELTest/TestInterpKernelUtils.hxx +++ b/src/INTERP_KERNELTest/TestInterpKernelUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TestingUtils.hxx b/src/INTERP_KERNELTest/TestingUtils.hxx index 0cb667d42..503ca0c11 100644 --- a/src/INTERP_KERNELTest/TestingUtils.hxx +++ b/src/INTERP_KERNELTest/TestingUtils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.cxx b/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.cxx index a71c9fffe..2306f12d2 100644 --- a/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.cxx +++ b/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.hxx b/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.hxx index 8dc8dc13b..ab6ec1acf 100644 --- a/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.hxx +++ b/src/INTERP_KERNELTest/TransformedTriangleIntersectTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TransformedTriangleTest.cxx b/src/INTERP_KERNELTest/TransformedTriangleTest.cxx index 231109dfa..3051dcf1e 100644 --- a/src/INTERP_KERNELTest/TransformedTriangleTest.cxx +++ b/src/INTERP_KERNELTest/TransformedTriangleTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/TransformedTriangleTest.hxx b/src/INTERP_KERNELTest/TransformedTriangleTest.hxx index bda896e42..f9ad93774 100644 --- a/src/INTERP_KERNELTest/TransformedTriangleTest.hxx +++ b/src/INTERP_KERNELTest/TransformedTriangleTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.cxx b/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.cxx index 91b0b1b43..366d40ca6 100644 --- a/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.cxx +++ b/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.hxx b/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.hxx index d1fc4689e..a7dd33ca7 100644 --- a/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.hxx +++ b/src/INTERP_KERNELTest/UnitTetra3D2DIntersectionTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.cxx b/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.cxx index 0ffedd950..4a15c5bdb 100644 --- a/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.cxx +++ b/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.hxx b/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.hxx index 6b49ce895..c17bfcc30 100644 --- a/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.hxx +++ b/src/INTERP_KERNELTest/UnitTetraIntersectionBaryTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/perf_test.py b/src/INTERP_KERNELTest/perf_test.py index 1f1dfde2f..9efe10d58 100755 --- a/src/INTERP_KERNELTest/perf_test.py +++ b/src/INTERP_KERNELTest/perf_test.py @@ -1,5 +1,5 @@ #! /bin/env python -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/INTERP_KERNELTest/perf_test.sh b/src/INTERP_KERNELTest/perf_test.sh index 5b9227ffd..4af704131 100755 --- a/src/INTERP_KERNELTest/perf_test.sh +++ b/src/INTERP_KERNELTest/perf_test.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MED/CMakeLists.txt b/src/MED/CMakeLists.txt index 577648e02..ee4c21109 100644 --- a/src/MED/CMakeLists.txt +++ b/src/MED/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCalculator/CMakeLists.txt b/src/MEDCalculator/CMakeLists.txt index 3ad68037f..c6495ff25 100644 --- a/src/MEDCalculator/CMakeLists.txt +++ b/src/MEDCalculator/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCalculator/Swig/CMakeLists.txt b/src/MEDCalculator/Swig/CMakeLists.txt index b28b4c755..d223d1bc2 100644 --- a/src/MEDCalculator/Swig/CMakeLists.txt +++ b/src/MEDCalculator/Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCalculator/Test/CMakeLists.txt b/src/MEDCalculator/Test/CMakeLists.txt index 9d5d3dba3..139584f38 100644 --- a/src/MEDCalculator/Test/CMakeLists.txt +++ b/src/MEDCalculator/Test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/CMakeLists.txt b/src/MEDCoupling/CMakeLists.txt index 0ed6c295a..047589fa8 100644 --- a/src/MEDCoupling/CMakeLists.txt +++ b/src/MEDCoupling/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCoupling.hxx b/src/MEDCoupling/MEDCoupling.hxx index 41a31c5ce..d732798de 100644 --- a/src/MEDCoupling/MEDCoupling.hxx +++ b/src/MEDCoupling/MEDCoupling.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx b/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx index 512591b7a..f9dc0efe3 100644 --- a/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx +++ b/src/MEDCoupling/MEDCouplingAutoRefCountObjectPtr.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingCMesh.cxx b/src/MEDCoupling/MEDCouplingCMesh.cxx index 69b2db7c4..03e27a72f 100644 --- a/src/MEDCoupling/MEDCouplingCMesh.cxx +++ b/src/MEDCoupling/MEDCouplingCMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -393,10 +393,33 @@ int MEDCouplingCMesh::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType void MEDCouplingCMesh::getNodeIdsOfCell(int cellId, std::vector& conn) const { - //not implemented yet + int spaceDim=getSpaceDimension(); + int tmpCell[3],tmpNode[3]; + getSplitCellValues(tmpCell); + getSplitNodeValues(tmpNode); + int tmp2[3]; + GetPosFromId(cellId,spaceDim,tmpCell,tmp2); + switch(spaceDim) + { + case 1: + conn.push_back(tmp2[0]); conn.push_back(tmp2[0]+1); + break; + case 2: + conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1); + conn.push_back((tmp2[1]+1)*(tmpCell[1]+1)+tmp2[0]+1); conn.push_back((tmp2[1]+1)*(tmpCell[1]+1)+tmp2[0]); + break; + case 3: + conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+tmp2[2]*tmpNode[2]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1+tmp2[2]*tmpNode[2]); + conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+1+tmp2[2]*tmpNode[2]); conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+tmp2[2]*tmpNode[2]); + conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+(tmp2[2]+1)*tmpNode[2]); conn.push_back(tmp2[1]*tmpCell[1]+tmp2[0]+1+(tmp2[2]+1)*tmpNode[2]); + conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+1+(tmp2[2]+1)*tmpNode[2]); conn.push_back((tmp2[1]+1)*tmpNode[1]+tmp2[0]+(tmp2[2]+1)*tmpNode[2]); + break; + default: + throw INTERP_KERNEL::Exception("MEDCouplingCMesh::getNodeIdsOfCell : big problem spacedim must be in 1,2 or 3 !"); + }; } -void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector& coo) const +void MEDCouplingCMesh::getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception) { int tmp[3]; int spaceDim=getSpaceDimension(); @@ -695,10 +718,17 @@ int MEDCouplingCMesh::getCellContainingPoint(const double *pos, double eps) cons const double *d=getCoordsAt(i)->getConstPointer(); int nbOfNodes=getCoordsAt(i)->getNbOfElems(); double ref=pos[i]; - const double *w=std::find_if(d,d+nbOfNodes,std::bind2nd(std::greater(),ref)); + const double *w=std::find_if(d,d+nbOfNodes,std::bind2nd(std::greater_equal(),ref)); int w2=(int)std::distance(d,w); - if(w2d[0]-eps) + w2=1; + else + return -1; + } ret+=coeff*(w2-1); coeff*=nbOfNodes-1; } diff --git a/src/MEDCoupling/MEDCouplingCMesh.hxx b/src/MEDCoupling/MEDCouplingCMesh.hxx index 33d316249..204299178 100644 --- a/src/MEDCoupling/MEDCouplingCMesh.hxx +++ b/src/MEDCoupling/MEDCouplingCMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -57,7 +57,7 @@ namespace ParaMEDMEM std::set getAllGeoTypes() const; int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const; void getNodeIdsOfCell(int cellId, std::vector& conn) const; - void getCoordinatesOfNode(int nodeId, std::vector& coo) const; + void getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception); std::string simpleRepr() const; std::string advancedRepr() const; const DataArrayDouble *getCoordsAt(int i) const throw(INTERP_KERNEL::Exception); diff --git a/src/MEDCoupling/MEDCouplingDefinitionTime.cxx b/src/MEDCoupling/MEDCouplingDefinitionTime.cxx index 5583fe3e2..a43312d90 100644 --- a/src/MEDCoupling/MEDCouplingDefinitionTime.cxx +++ b/src/MEDCoupling/MEDCouplingDefinitionTime.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingDefinitionTime.hxx b/src/MEDCoupling/MEDCouplingDefinitionTime.hxx index deb7b3a77..26ef19667 100644 --- a/src/MEDCoupling/MEDCouplingDefinitionTime.hxx +++ b/src/MEDCoupling/MEDCouplingDefinitionTime.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingExtrudedMesh.cxx b/src/MEDCoupling/MEDCouplingExtrudedMesh.cxx index d34898c83..68a468874 100644 --- a/src/MEDCoupling/MEDCouplingExtrudedMesh.cxx +++ b/src/MEDCoupling/MEDCouplingExtrudedMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -44,7 +44,7 @@ using namespace ParaMEDMEM; * because the mesh is aggregated and potentially modified by rotate or translate method. * @param cell2DId Id of cell in mesh2D mesh where the computation of 1D mesh will be done. */ -MEDCouplingExtrudedMesh *MEDCouplingExtrudedMesh::New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) +MEDCouplingExtrudedMesh *MEDCouplingExtrudedMesh::New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) { return new MEDCouplingExtrudedMesh(mesh3D,mesh2D,cell2DId); } @@ -77,8 +77,8 @@ void MEDCouplingExtrudedMesh::copyTinyStringsFrom(const MEDCouplingMesh *other) _mesh1D->copyTinyStringsFrom(otherC->_mesh1D); } -MEDCouplingExtrudedMesh::MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) -try:_mesh2D(mesh2D),_mesh1D(MEDCouplingUMesh::New()),_mesh3D_ids(0),_cell_2D_id(cell2DId) +MEDCouplingExtrudedMesh::MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception) +try:_mesh2D(const_cast(mesh2D)),_mesh1D(MEDCouplingUMesh::New()),_mesh3D_ids(0),_cell_2D_id(cell2DId) { if(_mesh2D!=0) _mesh2D->incrRef(); @@ -248,7 +248,7 @@ void MEDCouplingExtrudedMesh::getNodeIdsOfCell(int cellId, std::vector& con conn.insert(conn.end(),tmp2.begin(),tmp2.end()); } -void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector& coo) const +void MEDCouplingExtrudedMesh::getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception) { int nbOfNodes2D=_mesh2D->getNumberOfNodes(); int locId=nodeId%nbOfNodes2D; diff --git a/src/MEDCoupling/MEDCouplingExtrudedMesh.hxx b/src/MEDCoupling/MEDCouplingExtrudedMesh.hxx index 01aedf9ea..1f97c9b32 100644 --- a/src/MEDCoupling/MEDCouplingExtrudedMesh.hxx +++ b/src/MEDCoupling/MEDCouplingExtrudedMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -35,7 +35,7 @@ namespace ParaMEDMEM class MEDCOUPLING_EXPORT MEDCouplingExtrudedMesh : public MEDCouplingMesh { public: - static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); + static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); static MEDCouplingExtrudedMesh *New(); MEDCouplingMeshType getType() const; void copyTinyStringsFrom(const MEDCouplingMesh *other) throw(INTERP_KERNEL::Exception); @@ -55,7 +55,7 @@ namespace ParaMEDMEM std::set getAllGeoTypes() const; int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const; void getNodeIdsOfCell(int cellId, std::vector& conn) const; - void getCoordinatesOfNode(int nodeId, std::vector& coo) const; + void getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception); std::string simpleRepr() const; std::string advancedRepr() const; void checkCoherency() const throw (INTERP_KERNEL::Exception); @@ -96,7 +96,7 @@ namespace ParaMEDMEM void unserialization(const std::vector& tinyInfoD, const std::vector& tinyInfo, const DataArrayInt *a1, DataArrayDouble *a2, const std::vector& littleStrings); private: - MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); + MEDCouplingExtrudedMesh(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); MEDCouplingExtrudedMesh(const MEDCouplingExtrudedMesh& other, bool deepCopy); MEDCouplingExtrudedMesh(); void computeExtrusion(const MEDCouplingUMesh *mesh3D) throw(INTERP_KERNEL::Exception); diff --git a/src/MEDCoupling/MEDCouplingField.cxx b/src/MEDCoupling/MEDCouplingField.cxx index 865d4e5b1..46f4f5b29 100644 --- a/src/MEDCoupling/MEDCouplingField.cxx +++ b/src/MEDCoupling/MEDCouplingField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -99,6 +99,21 @@ TypeOfField MEDCouplingField::getTypeOfField() const return _type->getEnum(); } +/*! + * This method returns the nature of field. This information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC. + * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader. + * More information of the semantic, and the consequence of this attribute in the result of the interpolation, is available \ref NatureOfField "here". + */ +NatureOfField MEDCouplingField::getNature() const +{ + return _nature; +} + +/*! + * This method set the nature of field in \b this.This information is very important during interpolation process using ParaMEDMEM::MEDCouplingRemapper or ParaMEDMEM::InterpKernelDEC. + * In other context than the two mentioned before this attribute of the field is not sensitive. This attribute is not store in MED file in MEDLoader. + * More information of the semantic, and the consequence of this attribute in the result of the interpolation, is available \ref TableNatureOfField "here". + */ void MEDCouplingField::setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception) { _nature=nat; diff --git a/src/MEDCoupling/MEDCouplingField.hxx b/src/MEDCoupling/MEDCouplingField.hxx index 1b27c032c..50e1ad397 100644 --- a/src/MEDCoupling/MEDCouplingField.hxx +++ b/src/MEDCoupling/MEDCouplingField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -54,7 +54,7 @@ namespace ParaMEDMEM void setDescription(const char *desc) { _desc=desc; } const char *getName() const { return _name.c_str(); } TypeOfField getTypeOfField() const; - NatureOfField getNature() const { return _nature; } + NatureOfField getNature() const; virtual void setNature(NatureOfField nat) throw(INTERP_KERNEL::Exception); DataArrayDouble *getLocalizationOfDiscr() const throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *buildMeasureField(bool isAbs) const throw(INTERP_KERNEL::Exception); diff --git a/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx b/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx index c8eb4d47b..acbd40f3f 100644 --- a/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx +++ b/src/MEDCoupling/MEDCouplingFieldDiscretization.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx b/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx index a85cde832..87c81c692 100644 --- a/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx +++ b/src/MEDCoupling/MEDCouplingFieldDiscretization.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldDouble.cxx b/src/MEDCoupling/MEDCouplingFieldDouble.cxx index 070680bc3..dd1ba78c7 100644 --- a/src/MEDCoupling/MEDCouplingFieldDouble.cxx +++ b/src/MEDCoupling/MEDCouplingFieldDouble.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -53,10 +53,19 @@ const char *MEDCouplingFieldDouble::getTimeUnit() const } /*! - * This method performs a copy of 'this'. The copy is deep if 'recDeepCpy' equals to true, soft if 'recDeepCpy' equals to false. - * \b WARNING \b the \b underlying \b mesh of the returned field \b is \b the \b same (same pointer) \b than \b 'this'. It allows the user to perform methods - * MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields with 'this' and the returned field. + * This method performs a copy of \b this \b without \b any \b copy \b of \b the \b underlying \b mesh ( see warning section of this method). + * The copy of arrays is deep if \b recDeepCpy equals to true, no copy of arrays is done if \b recDeepCpy equals to false. + * + * \c clone(false) is rather dedicated for advanced users that want to limit the amount of memory. + * + * It allows the user to perform methods + * MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields with \b this and the returned field. + * + * \warning The \b underlying \b mesh of the returned field is \b always the same (same pointer) than \b this \b whatever \b the \b value \b of \b recDeepCpy \b parameter. * If the user wants to duplicated deeply the underlying mesh he should call MEDCouplingFieldDouble::cloneWithMesh method or MEDCouplingFieldDouble::deepCpy instead. + * + * \param [in] recDeepCpy specifies if underlying arrays in \b this should be copied of only attached to the returned field. + * \return a newly allocated MEDCouplingFieldDouble instance that the caller should deal with. */ MEDCouplingFieldDouble *MEDCouplingFieldDouble::clone(bool recDeepCpy) const { @@ -65,8 +74,10 @@ MEDCouplingFieldDouble *MEDCouplingFieldDouble::clone(bool recDeepCpy) const /*! * This method behaves exactly like MEDCouplingFieldDouble::clone method \b except \b that \b here \b the \b underlying \b mesh \b is \b systematically - * (whatever the value of the input parameter 'recDeepCpy') \b deeply \b duplicated. - * So the resulting field of this call cannot be called with 'this' with following methods MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields ... + * (whatever the value of the input parameter 'recDeepCpy') \b deeply \b duplicated.\n \n + * The result of \c cloneWithMesh(true) is exactly the same than calling \ref MEDCouplingFieldDouble::deepCpy "deepCpy". + * + * So the resulting field of this call cannot be called with \b this with the following methods MEDCouplingFieldDouble::AddFields, MEDCouplingFieldDouble::MultiplyFields ... * To avoid to deep copy the underlying mesh the user should call MEDCouplingFieldDouble::clone method instead. */ MEDCouplingFieldDouble *MEDCouplingFieldDouble::cloneWithMesh(bool recDeepCpy) const diff --git a/src/MEDCoupling/MEDCouplingFieldDouble.hxx b/src/MEDCoupling/MEDCouplingFieldDouble.hxx index 520d9942a..2a2936c2f 100644 --- a/src/MEDCoupling/MEDCouplingFieldDouble.hxx +++ b/src/MEDCoupling/MEDCouplingFieldDouble.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldOverTime.cxx b/src/MEDCoupling/MEDCouplingFieldOverTime.cxx index 960fd0d0e..eed9db85b 100644 --- a/src/MEDCoupling/MEDCouplingFieldOverTime.cxx +++ b/src/MEDCoupling/MEDCouplingFieldOverTime.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldOverTime.hxx b/src/MEDCoupling/MEDCouplingFieldOverTime.hxx index 10711d637..4c353c8e6 100644 --- a/src/MEDCoupling/MEDCouplingFieldOverTime.hxx +++ b/src/MEDCoupling/MEDCouplingFieldOverTime.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldTemplate.cxx b/src/MEDCoupling/MEDCouplingFieldTemplate.cxx index a72922c2b..2a77f785f 100644 --- a/src/MEDCoupling/MEDCouplingFieldTemplate.cxx +++ b/src/MEDCoupling/MEDCouplingFieldTemplate.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingFieldTemplate.hxx b/src/MEDCoupling/MEDCouplingFieldTemplate.hxx index 3b7fba334..7c731463e 100644 --- a/src/MEDCoupling/MEDCouplingFieldTemplate.hxx +++ b/src/MEDCoupling/MEDCouplingFieldTemplate.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingGaussLocalization.cxx b/src/MEDCoupling/MEDCouplingGaussLocalization.cxx index dfeb5f1f3..eae9beab4 100644 --- a/src/MEDCoupling/MEDCouplingGaussLocalization.cxx +++ b/src/MEDCoupling/MEDCouplingGaussLocalization.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingGaussLocalization.hxx b/src/MEDCoupling/MEDCouplingGaussLocalization.hxx index 1e275d024..2660f946e 100644 --- a/src/MEDCoupling/MEDCouplingGaussLocalization.hxx +++ b/src/MEDCoupling/MEDCouplingGaussLocalization.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingMemArray.cxx b/src/MEDCoupling/MEDCouplingMemArray.cxx index 21a682366..76a475b4e 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.cxx +++ b/src/MEDCoupling/MEDCouplingMemArray.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -315,6 +315,26 @@ int DataArray::GetNumberOfItemGivenBES(int begin, int end, int step, const char return (end-1-begin)/step+1; } +int DataArray::GetNumberOfItemGivenBESRelative(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception) +{ + if(step==0) + throw INTERP_KERNEL::Exception("DataArray::GetNumberOfItemGivenBES : step=0 is not allowed !"); + if(end0) + { + std::ostringstream oss; oss << msg << " : end before begin whereas step is positive !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(begin 0 !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(begin!=end) + return (std::max(begin,end)-1-std::min(begin,end))/std::abs(step)+1; + else + return 0; +} + DataArrayDouble *DataArrayDouble::New() { return new DataArrayDouble; @@ -423,8 +443,10 @@ void DataArrayDouble::allocIfNecessary(int nbOfTuple, int nbOfCompo) alloc(nbOfTuple,nbOfCompo); } -void DataArrayDouble::alloc(int nbOfTuple, int nbOfCompo) +void DataArrayDouble::alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception) { + if(nbOfTuple<0 || nbOfCompo<0) + throw INTERP_KERNEL::Exception("DataArrayDouble::alloc : request for negative length of data !"); _nb_of_tuples=nbOfTuple; _info_on_compo.resize(nbOfCompo); _mem.alloc(nbOfCompo*_nb_of_tuples); @@ -943,6 +965,18 @@ void DataArrayDouble::rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception declareAsNew(); } +/*! + * This method makes the assumption that \b this is allocated. If not an INTERP_KERNEL::Exception will be raised. + * This method does not echange the values stored in \b this. Simply, the number of components before the call becomes the number of + * tuples and inversely the number of tuples becomes the number of components. \b WARNING the info on components can be alterated by this method. + */ +void DataArrayDouble::transpose() throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + int nbOfTuples=getNumberOfTuples(); + rearrange(nbOfTuples); +} + DataArrayDouble *DataArrayDouble::keepSelectedComponents(const std::vector& compoIds) const throw(INTERP_KERNEL::Exception) { checkAllocated(); @@ -1387,6 +1421,27 @@ void DataArrayDouble::setContigPartOfSelectedValues2(int tupleIdStart, const Dat } } +/*! + * This method is equivalent to DataArrayDouble::getIJ except that here \b tupleId is checked to be in [0,this->getNumberOfTuples()) and compoId to be in [0,this->getNumberOfComponents()). + * If one of these check fails an INTERP_KERNEL::Exception will be thrown. + * So this method is safe but expensive if used to go through all data of \b this. + */ +double DataArrayDouble::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + if(tupleId<0 || tupleId>=getNumberOfTuples()) + { + std::ostringstream oss; oss << "DataArrayDouble::getIJSafe : request for tupleId " << tupleId << " should be in [0," << getNumberOfTuples() << ") !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(compoId<0 || compoId>=getNumberOfComponents()) + { + std::ostringstream oss; oss << "DataArrayDouble::getIJSafe : request for compoId " << compoId << " should be in [0," << getNumberOfComponents() << ") !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + return _mem[tupleId*((int)_info_on_compo.size())+compoId]; +} + /*! * This method returns the last element in 'this'. So this method makes the hypothesis that 'this' is allocated. * This method works only for arrays that have exactly number of components equal to 1. If not an exception is thrown. @@ -1432,6 +1487,41 @@ void DataArrayDouble::checkNoNullValues() const throw(INTERP_KERNEL::Exception) throw INTERP_KERNEL::Exception("A value 0.0 have been detected !"); } +/*! + * This method assume that \b this is allocated. If not an INTERP_KERNEL::Exception will be thrown. + * This method fills \b bounds params like that : \b bounds[0]=XMin, \b bounds[1]=XMax, \b bounds[2]=YMin, \b bounds[3]=YMax... + * Where X refers to component #0, and Y to component #1... + * This method set 2*this->getNumberOfComponents() elements in \b bounds, so it is up to the caller to allocated enough space before calling this method. + * + * @param [out] bounds array of size 2*this->getNumberOfComponents(). + */ +void DataArrayDouble::getMinMaxPerComponent(double *bounds) const throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + int dim=getNumberOfComponents(); + for (int idim=0; idim::max(); + bounds[idim*2+1]=-std::numeric_limits::max(); + } + const double *ptr=getConstPointer(); + int nbOfTuples=getNumberOfTuples(); + for(int i=0;iptr[i*dim+idim]) + { + bounds[idim*2]=ptr[i*dim+idim]; + } + if(bounds[idim*2+1]alloc(nbOfTuples,nbOfComp); + const double *cptr=getConstPointer(); + std::transform(cptr,cptr+nbOfTuples*nbOfComp,newArr->getPointer(),std::negate()); + newArr->copyStringInfoFrom(*this); + return newArr; +} + DataArrayDouble *DataArrayDouble::applyFunc(int nbOfComp, FunctionToEvaluate func) const throw(INTERP_KERNEL::Exception) { checkAllocated(); @@ -2300,22 +2407,88 @@ DataArrayDouble *DataArrayDouble::Min(const DataArrayDouble *a1, const DataArray DataArrayDouble *DataArrayDouble::Add(const DataArrayDouble *a1, const DataArrayDouble *a2) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=a2->getNumberOfTuples(); - int nbOfComp=a2->getNumberOfComponents(); - a1->checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array Add !"); - DataArrayDouble *ret=DataArrayDouble::New(); - ret->alloc(nbOfTuple,nbOfComp); - std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus()); - ret->copyStringInfoFrom(*a1); + int nbOfTuple=a1->getNumberOfTuples(); + int nbOfTuple2=a2->getNumberOfTuples(); + int nbOfComp=a1->getNumberOfComponents(); + int nbOfComp2=a2->getNumberOfComponents(); + if(nbOfTuple!=nbOfTuple2) + throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array Add !"); + DataArrayDouble *ret=0; + if(nbOfComp==nbOfComp2) + { + ret=DataArrayDouble::New(); + ret->alloc(nbOfTuple,nbOfComp); + std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus()); + ret->copyStringInfoFrom(*a1); + } + else + { + int nbOfCompMin,nbOfCompMax; + const DataArrayDouble *aMin, *aMax; + if(nbOfComp>nbOfComp2) + { + nbOfCompMin=nbOfComp2; nbOfCompMax=nbOfComp; + aMin=a2; aMax=a1; + } + else + { + nbOfCompMin=nbOfComp; nbOfCompMax=nbOfComp2; + aMin=a1; aMax=a2; + } + if(nbOfCompMin==1) + { + ret=DataArrayDouble::New(); + ret->alloc(nbOfTuple,nbOfCompMax); + const double *aMinPtr=aMin->getConstPointer(); + const double *aMaxPtr=aMax->getConstPointer(); + double *res=ret->getPointer(); + for(int i=0;i(),aMinPtr[i])); + ret->copyStringInfoFrom(*aMax); + } + else + throw INTERP_KERNEL::Exception("Nb of components mismatch for array Add !"); + } return ret; } void DataArrayDouble::addEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=other->getNumberOfTuples(); - int nbOfComp=other->getNumberOfComponents(); - checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array add equal !"); - std::transform(begin(),end(),other->begin(),getPointer(),std::plus()); + const char *msg="Nb of tuples mismatch for DataArrayDouble::addEqual !"; + int nbOfTuple=getNumberOfTuples(); + int nbOfTuple2=other->getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + int nbOfComp2=other->getNumberOfComponents(); + if(nbOfTuple==nbOfTuple2) + { + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::plus()); + } + else if(nbOfComp2==1) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else if(nbOfTuple2==1) + { + if(nbOfComp2==nbOfComp) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i()); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -2333,10 +2506,41 @@ DataArrayDouble *DataArrayDouble::Substract(const DataArrayDouble *a1, const Dat void DataArrayDouble::substractEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=other->getNumberOfTuples(); - int nbOfComp=other->getNumberOfComponents(); - checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array substract equal !"); - std::transform(begin(),end(),other->begin(),getPointer(),std::minus()); + const char *msg="Nb of tuples mismatch for DataArrayDouble::substractEqual !"; + int nbOfTuple=getNumberOfTuples(); + int nbOfTuple2=other->getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + int nbOfComp2=other->getNumberOfComponents(); + if(nbOfTuple==nbOfTuple2) + { + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::minus()); + } + else if(nbOfComp2==1) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else if(nbOfTuple2==1) + { + if(nbOfComp2==nbOfComp) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i()); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -2389,28 +2593,41 @@ DataArrayDouble *DataArrayDouble::Multiply(const DataArrayDouble *a1, const Data void DataArrayDouble::multiplyEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) { + const char *msg="Nb of tuples mismatch for DataArrayDouble::multiplyEqual !"; int nbOfTuple=getNumberOfTuples(); int nbOfTuple2=other->getNumberOfTuples(); int nbOfComp=getNumberOfComponents(); int nbOfComp2=other->getNumberOfComponents(); - if(nbOfTuple!=nbOfTuple2) - throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array multiplyEqual !"); - if(nbOfComp==nbOfComp2) + if(nbOfTuple==nbOfTuple2) { - std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies()); + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies()); + } + else if(nbOfComp2==1) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); } - else + else if(nbOfTuple2==1) { - if(nbOfComp2==1) + if(nbOfComp2==nbOfComp) { - const double *ptr=other->getConstPointer(); - double *myPtr=getPointer(); + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); for(int i=0;i(),ptr[i])); + std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::multiplies()); } else - throw INTERP_KERNEL::Exception("Nb of components mismatch for array multiplyEqual !"); + throw INTERP_KERNEL::Exception(msg); } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -2451,28 +2668,41 @@ DataArrayDouble *DataArrayDouble::Divide(const DataArrayDouble *a1, const DataAr void DataArrayDouble::divideEqual(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception) { + const char *msg="Nb of tuples mismatch for DataArrayDouble::divideEqual !"; int nbOfTuple=getNumberOfTuples(); int nbOfTuple2=other->getNumberOfTuples(); int nbOfComp=getNumberOfComponents(); int nbOfComp2=other->getNumberOfComponents(); - if(nbOfTuple!=nbOfTuple2) - throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array divideEqual !"); - if(nbOfComp==nbOfComp2) + if(nbOfTuple==nbOfTuple2) { - std::transform(begin(),end(),other->begin(),getPointer(),std::divides()); + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::divides()); + } + else if(nbOfComp2==1) + { + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); } - else + else if(nbOfTuple2==1) { - if(nbOfComp2==1) + if(nbOfComp2==nbOfComp) { - const double *ptr=other->getConstPointer(); - double *myPtr=getPointer(); + double *ptr=getPointer(); + const double *ptrc=other->getConstPointer(); for(int i=0;i(),ptr[i])); + std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::divides()); } else - throw INTERP_KERNEL::Exception("Nb of components mismatch for array divideEqual !"); + throw INTERP_KERNEL::Exception(msg); } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -2600,6 +2830,28 @@ double DataArrayDoubleTuple::doubleValue() const throw(INTERP_KERNEL::Exception) throw INTERP_KERNEL::Exception("DataArrayDoubleTuple::doubleValue : DataArrayDoubleTuple instance has not exactly 1 component -> Not possible to convert it into a double precision float !"); } +/*! + * This method returns a newly allocated instance the caller should dealed with by a ParaMEDMEM::DataArrayDouble::decrRef. + * This method performs \b no copy of data. The content is only referenced using ParaMEDMEM::DataArrayDouble::useArray with ownership set to \b false. + * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or + * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem. + */ +DataArrayDouble *DataArrayDoubleTuple::buildDADouble(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception) +{ + if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1)) + { + DataArrayDouble *ret=DataArrayDouble::New(); + ret->useArray(_pt,false,CPP_DEALLOC,nbOfTuples,nbOfCompo); + return ret; + } + else + { + std::ostringstream oss; oss << "DataArrayDoubleTuple::buildDADouble : unable to build a requested DataArrayDouble instance with nbofTuple=" << nbOfTuples << " and nbOfCompo=" << nbOfCompo; + oss << ".\nBecause the number of elements in this is " << _nb_of_compo << " !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } +} + DataArrayInt *DataArrayInt::New() { return new DataArrayInt; @@ -2657,6 +2909,24 @@ int DataArrayInt::intValue() const throw(INTERP_KERNEL::Exception) throw INTERP_KERNEL::Exception("DataArrayInt::intValue : DataArrayInt instance is not allocated !"); } +/*! + * This method expects that \b this is well allocated. If not an INTERP_KERNEL::Exception will be thrown. This method is useful for a quick comparison of many instances of DataArrayInt. + */ +int DataArrayInt::getHashCode() const throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + int nbOfElems=getNbOfElems(); + int ret=nbOfElems*65536; + int delta=3; + if(nbOfElems>48) + delta=nbOfElems/8; + int ret0=0; + const int *pt=begin(); + for(int i=0;igetNumberOfComponents() a reduction is done and for each tuple 'newNbOfComp' first components are kept. @@ -3916,6 +4200,27 @@ void DataArrayInt::setContigPartOfSelectedValues2(int tupleIdStart, const DataAr } } +/*! + * This method is equivalent to DataArrayInt::getIJ except that here \b tupleId is checked to be in [0,this->getNumberOfTuples()) and compoId to be in [0,this->getNumberOfComponents()). + * If one of these check fails an INTERP_KERNEL::Exception will be thrown. + * So this method is safe but expensive if used to go through all data of \b this. + */ +int DataArrayInt::getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + if(tupleId<0 || tupleId>=getNumberOfTuples()) + { + std::ostringstream oss; oss << "DataArrayInt::getIJSafe : request for tupleId " << tupleId << " should be in [0," << getNumberOfTuples() << ") !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(compoId<0 || compoId>=getNumberOfComponents()) + { + std::ostringstream oss; oss << "DataArrayInt::getIJSafe : request for compoId " << compoId << " should be in [0," << getNumberOfComponents() << ") !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + return _mem[tupleId*((int)_info_on_compo.size())+compoId]; +} + /*! * This method returns the last element in 'this'. So this method makes the hypothesis that 'this' is allocated. * This method works only for arrays that have exactly number of components equal to 1. If not an exception is thrown. @@ -4170,6 +4475,23 @@ void DataArrayInt::applyLin(int a, int b) throw(INTERP_KERNEL::Exception) declareAsNew(); } +/*! + * This method returns a newly allocated array containing the application of negate on \b this. + * This method throws an INTERP_KERNEL::Exception if \b this is not allocated. + */ +DataArrayInt *DataArrayInt::negate() const throw(INTERP_KERNEL::Exception) +{ + checkAllocated(); + DataArrayInt *newArr=DataArrayInt::New(); + int nbOfTuples=getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + newArr->alloc(nbOfTuples,nbOfComp); + const int *cptr=getConstPointer(); + std::transform(cptr,cptr+nbOfTuples*nbOfComp,newArr->getPointer(),std::negate()); + newArr->copyStringInfoFrom(*this); + return newArr; +} + /*! * This method applies the operation 'numerator/x' for each element 'x' in 'this'. * If there is a value in 'this' exactly equal to 0. an exception is thrown. @@ -4603,22 +4925,88 @@ std::set DataArrayInt::getDifferentValues() const throw(INTERP_KERNEL::Exce DataArrayInt *DataArrayInt::Add(const DataArrayInt *a1, const DataArrayInt *a2) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=a2->getNumberOfTuples(); - int nbOfComp=a2->getNumberOfComponents(); - a1->checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array Add !"); - DataArrayInt *ret=DataArrayInt::New(); - ret->alloc(nbOfTuple,nbOfComp); - std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus()); - ret->copyStringInfoFrom(*a1); + int nbOfTuple=a1->getNumberOfTuples(); + int nbOfTuple2=a2->getNumberOfTuples(); + int nbOfComp=a1->getNumberOfComponents(); + int nbOfComp2=a2->getNumberOfComponents(); + if(nbOfTuple!=nbOfTuple2) + throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array Add !"); + DataArrayInt *ret=0; + if(nbOfComp==nbOfComp2) + { + ret=DataArrayInt::New(); + ret->alloc(nbOfTuple,nbOfComp); + std::transform(a1->begin(),a1->end(),a2->begin(),ret->getPointer(),std::plus()); + ret->copyStringInfoFrom(*a1); + } + else + { + int nbOfCompMin,nbOfCompMax; + const DataArrayInt *aMin, *aMax; + if(nbOfComp>nbOfComp2) + { + nbOfCompMin=nbOfComp2; nbOfCompMax=nbOfComp; + aMin=a2; aMax=a1; + } + else + { + nbOfCompMin=nbOfComp; nbOfCompMax=nbOfComp2; + aMin=a1; aMax=a2; + } + if(nbOfCompMin==1) + { + ret=DataArrayInt::New(); + ret->alloc(nbOfTuple,nbOfCompMax); + const int *aMinPtr=aMin->getConstPointer(); + const int *aMaxPtr=aMax->getConstPointer(); + int *res=ret->getPointer(); + for(int i=0;i(),aMinPtr[i])); + ret->copyStringInfoFrom(*aMax); + } + else + throw INTERP_KERNEL::Exception("Nb of components mismatch for array Add !"); + } return ret; } void DataArrayInt::addEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=other->getNumberOfTuples(); - int nbOfComp=other->getNumberOfComponents(); - checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array add equal !"); - std::transform(begin(),end(),other->begin(),getPointer(),std::plus()); + const char *msg="Nb of tuples mismatch for DataArrayInt::addEqual !"; + int nbOfTuple=getNumberOfTuples(); + int nbOfTuple2=other->getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + int nbOfComp2=other->getNumberOfComponents(); + if(nbOfTuple==nbOfTuple2) + { + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::plus()); + } + else if(nbOfComp2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else if(nbOfTuple2==1) + { + if(nbOfComp2==nbOfComp) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i()); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -4636,10 +5024,36 @@ DataArrayInt *DataArrayInt::Substract(const DataArrayInt *a1, const DataArrayInt void DataArrayInt::substractEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=other->getNumberOfTuples(); - int nbOfComp=other->getNumberOfComponents(); - checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array substract equal !"); - std::transform(begin(),end(),other->begin(),getPointer(),std::minus()); + const char *msg="Nb of tuples mismatch for DataArrayInt::substractEqual !"; + int nbOfTuple=getNumberOfTuples(); + int nbOfTuple2=other->getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + int nbOfComp2=other->getNumberOfComponents(); + if(nbOfTuple==nbOfTuple2) + { + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::minus()); + } + else if(nbOfComp2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else if(nbOfTuple2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i()); + } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -4692,28 +5106,41 @@ DataArrayInt *DataArrayInt::Multiply(const DataArrayInt *a1, const DataArrayInt void DataArrayInt::multiplyEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) { + const char *msg="Nb of tuples mismatch for DataArrayInt::multiplyEqual !"; int nbOfTuple=getNumberOfTuples(); int nbOfTuple2=other->getNumberOfTuples(); int nbOfComp=getNumberOfComponents(); int nbOfComp2=other->getNumberOfComponents(); - if(nbOfTuple!=nbOfTuple2) - throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array multiplyEqual !"); - if(nbOfComp==nbOfComp2) + if(nbOfTuple==nbOfTuple2) { - std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies()); + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::multiplies()); + } + else if(nbOfComp2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); } - else + else if(nbOfTuple2==1) { - if(nbOfComp2==1) + if(nbOfComp2==nbOfComp) { - const int *ptr=other->getConstPointer(); - int *myPtr=getPointer(); + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); for(int i=0;i(),ptr[i])); + std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::multiplies()); } else - throw INTERP_KERNEL::Exception("Nb of components mismatch for array multiplyEqual !"); + throw INTERP_KERNEL::Exception(msg); } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -4754,28 +5181,41 @@ DataArrayInt *DataArrayInt::Divide(const DataArrayInt *a1, const DataArrayInt *a void DataArrayInt::divideEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) { + const char *msg="Nb of tuples mismatch for DataArrayInt::divideEqual !"; int nbOfTuple=getNumberOfTuples(); int nbOfTuple2=other->getNumberOfTuples(); int nbOfComp=getNumberOfComponents(); int nbOfComp2=other->getNumberOfComponents(); - if(nbOfTuple!=nbOfTuple2) - throw INTERP_KERNEL::Exception("Nb of tuples mismatch for array divideEqual !"); - if(nbOfComp==nbOfComp2) + if(nbOfTuple==nbOfTuple2) { - std::transform(begin(),end(),other->begin(),getPointer(),std::divides()); + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::divides()); + } + else if(nbOfComp2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); } - else + else if(nbOfTuple2==1) { - if(nbOfComp2==1) + if(nbOfComp2==nbOfComp) { - const int *ptr=other->getConstPointer(); - int *myPtr=getPointer(); + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); for(int i=0;i(),ptr[i])); + std::transform(ptr+i*nbOfComp,ptr+(i+1)*nbOfComp,ptrc,ptr+i*nbOfComp,std::divides()); } else - throw INTERP_KERNEL::Exception("Nb of components mismatch for array divideEqual !"); + throw INTERP_KERNEL::Exception(msg); } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -4793,10 +5233,41 @@ DataArrayInt *DataArrayInt::Modulus(const DataArrayInt *a1, const DataArrayInt * void DataArrayInt::modulusEqual(const DataArrayInt *other) throw(INTERP_KERNEL::Exception) { - int nbOfTuple=other->getNumberOfTuples(); - int nbOfComp=other->getNumberOfComponents(); - checkNbOfTuplesAndComp(nbOfTuple,nbOfComp,"Nb of components mismatch for array modulus equal"); - std::transform(begin(),end(),other->begin(),getPointer(),std::modulus()); + const char *msg="Nb of tuples mismatch for DataArrayInt::modulusEqual !"; + int nbOfTuple=getNumberOfTuples(); + int nbOfTuple2=other->getNumberOfTuples(); + int nbOfComp=getNumberOfComponents(); + int nbOfComp2=other->getNumberOfComponents(); + if(nbOfTuple==nbOfTuple2) + { + if(nbOfComp==nbOfComp2) + { + std::transform(begin(),end(),other->begin(),getPointer(),std::modulus()); + } + else if(nbOfComp2==1) + { + if(nbOfComp2==nbOfComp) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i(),*ptrc++)); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else if(nbOfTuple2==1) + { + int *ptr=getPointer(); + const int *ptrc=other->getConstPointer(); + for(int i=0;i()); + } + else + throw INTERP_KERNEL::Exception(msg); declareAsNew(); } @@ -4820,6 +5291,26 @@ int *DataArrayInt::CheckAndPreparePermutation(const int *start, const int *end) return ret; } +DataArrayInt *DataArrayInt::Range(int begin, int end, int step) throw(INTERP_KERNEL::Exception) +{ + int nbOfTuples=GetNumberOfItemGivenBESRelative(begin,end,step,"DataArrayInt::Range"); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + ret->alloc(nbOfTuples,1); + int *ptr=ret->getPointer(); + if(step>0) + { + for(int i=begin;iend;i+=step,ptr++) + *ptr=i; + } + ret->incrRef(); + return ret; +} + /*! * Useless method for end user. Only for MPI/Corba/File serialsation for multi arrays class. * Server side. @@ -4943,3 +5434,25 @@ int DataArrayIntTuple::intValue() const throw(INTERP_KERNEL::Exception) return *_pt; throw INTERP_KERNEL::Exception("DataArrayIntTuple::intValue : DataArrayIntTuple instance has not exactly 1 component -> Not possible to convert it into an integer !"); } + +/*! + * This method returns a newly allocated instance the caller should dealed with by a ParaMEDMEM::DataArrayInt::decrRef. + * This method performs \b no copy of data. The content is only referenced using ParaMEDMEM::DataArrayInt::useArray with ownership set to \b false. + * This method throws an INTERP_KERNEL::Exception is it is impossible to match sizes of \b this that is too say \b nbOfCompo=this->_nb_of_elem and \bnbOfTuples==1 or + * \b nbOfCompo=1 and \bnbOfTuples==this->_nb_of_elem. + */ +DataArrayInt *DataArrayIntTuple::buildDAInt(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception) +{ + if((_nb_of_compo==nbOfCompo && nbOfTuples==1) || (_nb_of_compo==nbOfTuples && nbOfCompo==1)) + { + DataArrayInt *ret=DataArrayInt::New(); + ret->useArray(_pt,false,CPP_DEALLOC,nbOfTuples,nbOfCompo); + return ret; + } + else + { + std::ostringstream oss; oss << "DataArrayIntTuple::buildDAInt : unable to build a requested DataArrayInt instance with nbofTuple=" << nbOfTuples << " and nbOfCompo=" << nbOfCompo; + oss << ".\nBecause the number of elements in this is " << _nb_of_compo << " !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } +} diff --git a/src/MEDCoupling/MEDCouplingMemArray.hxx b/src/MEDCoupling/MEDCouplingMemArray.hxx index b830a99f3..5dafbf608 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.hxx +++ b/src/MEDCoupling/MEDCouplingMemArray.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -70,8 +70,8 @@ namespace ParaMEDMEM T *toNoInterlace(int nbOfComp) const; void sort(); void reverse(); - void alloc(int nbOfElements); - void reAlloc(int newNbOfElements); + void alloc(int nbOfElements) throw(INTERP_KERNEL::Exception); + void reAlloc(int newNbOfElements) throw(INTERP_KERNEL::Exception); void useArray(const T *array, bool ownership, DeallocType type, int nbOfElem); void writeOnPlace(int id, T element0, const T *others, int sizeOfOthers); ~MemArray() { destroy(); } @@ -111,6 +111,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void checkNbOfTuplesAndComp(int nbOfTuples, int nbOfCompo, const char *msg) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void checkNbOfElems(int nbOfElems, const char *msg) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT static int GetNumberOfItemGivenBES(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT static int GetNumberOfItemGivenBESRelative(int begin, int end, int step, const char *msg) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT static std::string GetVarNameFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT static std::string GetUnitFromInfo(const std::string& info) throw(INTERP_KERNEL::Exception); protected: @@ -143,7 +144,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT DataArrayDouble *deepCpy() const; MEDCOUPLING_EXPORT DataArrayDouble *performCpy(bool deepCpy) const; MEDCOUPLING_EXPORT void cpyFrom(const DataArrayDouble& other) throw(INTERP_KERNEL::Exception); - MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo); + MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void allocIfNecessary(int nbOfTuple, int nbOfCompo); MEDCOUPLING_EXPORT void fillWithZero() throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void fillWithValue(double val) throw(INTERP_KERNEL::Exception); @@ -178,6 +179,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT DataArrayDouble *selectByTupleRanges(const std::vector >& ranges) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *substr(int tupleIdBg, int tupleIdEnd=-1) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT void transpose() throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *changeNbOfComponents(int newNbOfComp, double dftValue) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *keepSelectedComponents(const std::vector& compoIds) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void meldWith(const DataArrayDouble *other) throw(INTERP_KERNEL::Exception); @@ -196,6 +198,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void getTuple(int tupleId, double *res) const { std::copy(_mem.getConstPointerLoc(tupleId*((int)_info_on_compo.size())),_mem.getConstPointerLoc((tupleId+1)*((int)_info_on_compo.size())),res); } MEDCOUPLING_EXPORT double getIJ(int tupleId, int compoId) const { return _mem[tupleId*((int)_info_on_compo.size())+compoId]; } MEDCOUPLING_EXPORT double back() const throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT double getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void setIJ(int tupleId, int compoId, double newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; declareAsNew(); } MEDCOUPLING_EXPORT void setIJSilent(int tupleId, int compoId, double newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; } MEDCOUPLING_EXPORT double *getPointer() { return _mem.getPointer(); } @@ -207,6 +210,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void useArray(const double *array, bool ownership, DeallocType type, int nbOfTuple, int nbOfCompo); MEDCOUPLING_EXPORT void writeOnPlace(int id, double element0, const double *others, int sizeOfOthers) { _mem.writeOnPlace(id,element0,others,sizeOfOthers); } MEDCOUPLING_EXPORT void checkNoNullValues() const throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT void getMinMaxPerComponent(double *bounds) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT double getMaxValue(int& tupleId) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT double getMaxValueInArray() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT double getMinValue(int& tupleId) const throw(INTERP_KERNEL::Exception); @@ -235,6 +239,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void applyLin(double a, double b, int compoId) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyLin(double a, double b) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyInv(double numerator) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT DataArrayDouble *negate() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(int nbOfComp, FunctionToEvaluate func) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(int nbOfComp, const char *func) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayDouble *applyFunc(const char *func) const throw(INTERP_KERNEL::Exception); @@ -301,6 +306,7 @@ namespace ParaMEDMEM const double *getConstPointer() const { return _pt; } double *getPointer() { return _pt; } double doubleValue() const throw(INTERP_KERNEL::Exception); + DataArrayDouble *buildDADouble(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception); private: double *_pt; int _nb_of_compo; @@ -316,11 +322,12 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void checkAllocated() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void setInfoAndChangeNbOfCompo(const std::vector& info) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT int intValue() const throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT int getHashCode() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT bool empty() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayInt *deepCpy() const; MEDCOUPLING_EXPORT DataArrayInt *performCpy(bool deepCpy) const; MEDCOUPLING_EXPORT void cpyFrom(const DataArrayInt& other) throw(INTERP_KERNEL::Exception); - MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo); + MEDCOUPLING_EXPORT void alloc(int nbOfTuple, int nbOfCompo) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void allocIfNecessary(int nbOfTuple, int nbOfCompo); MEDCOUPLING_EXPORT bool isEqual(const DataArrayInt& other) const; MEDCOUPLING_EXPORT bool isEqualWithoutConsideringStr(const DataArrayInt& other) const; @@ -366,6 +373,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT bool isUniform(int val) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayInt *substr(int tupleIdBg, int tupleIdEnd=-1) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void rearrange(int newNbOfCompo) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT void transpose() throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayInt *changeNbOfComponents(int newNbOfComp, int dftValue) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayInt *keepSelectedComponents(const std::vector& compoIds) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void meldWith(const DataArrayInt *other) throw(INTERP_KERNEL::Exception); @@ -381,6 +389,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void setContigPartOfSelectedValues2(int tupleIdStart, const DataArrayInt *a, int bg, int end2, int step) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void getTuple(int tupleId, int *res) const { std::copy(_mem.getConstPointerLoc(tupleId*((int)_info_on_compo.size())),_mem.getConstPointerLoc((tupleId+1)*((int)_info_on_compo.size())),res); } MEDCOUPLING_EXPORT int getIJ(int tupleId, int compoId) const { return _mem[tupleId*((int)_info_on_compo.size())+compoId]; } + MEDCOUPLING_EXPORT int getIJSafe(int tupleId, int compoId) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT int back() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void setIJ(int tupleId, int compoId, int newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; declareAsNew(); } MEDCOUPLING_EXPORT void setIJSilent(int tupleId, int compoId, int newVal) { _mem[tupleId*((int)_info_on_compo.size())+compoId]=newVal; } @@ -404,6 +413,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void applyLin(int a, int b, int compoId) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyLin(int a, int b) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyInv(int numerator) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT DataArrayInt *negate() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyDivideBy(int val) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyModulus(int val) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void applyRModulus(int val) throw(INTERP_KERNEL::Exception); @@ -439,6 +449,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void updateTime() const { } public: MEDCOUPLING_EXPORT static int *CheckAndPreparePermutation(const int *start, const int *end); + MEDCOUPLING_EXPORT static DataArrayInt *Range(int begin, int end, int step) throw(INTERP_KERNEL::Exception); public: MEDCOUPLING_EXPORT void getTinySerializationIntInformation(std::vector& tinyInfo) const; MEDCOUPLING_EXPORT void getTinySerializationStrInformation(std::vector& tinyInfo) const; @@ -475,6 +486,7 @@ namespace ParaMEDMEM const int *getConstPointer() const { return _pt; } int *getPointer() { return _pt; } int intValue() const throw(INTERP_KERNEL::Exception); + DataArrayInt *buildDAInt(int nbOfTuples, int nbOfCompo) const throw(INTERP_KERNEL::Exception); private: int *_pt; int _nb_of_compo; diff --git a/src/MEDCoupling/MEDCouplingMemArray.txx b/src/MEDCoupling/MEDCouplingMemArray.txx index 8bdccd5fd..90438b3f7 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.txx +++ b/src/MEDCoupling/MEDCouplingMemArray.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -224,9 +224,11 @@ namespace ParaMEDMEM } template - void MemArray::alloc(int nbOfElements) + void MemArray::alloc(int nbOfElements) throw(INTERP_KERNEL::Exception) { destroy(); + if(nbOfElements<0) + throw INTERP_KERNEL::Exception("MemArray::alloc : request for negative length of data !"); _nb_of_elem=nbOfElements; _pointer.setInternal(new T[_nb_of_elem]); _ownership=true; @@ -234,8 +236,10 @@ namespace ParaMEDMEM } template - void MemArray::reAlloc(int newNbOfElements) + void MemArray::reAlloc(int newNbOfElements) throw(INTERP_KERNEL::Exception) { + if(newNbOfElements<0) + throw INTERP_KERNEL::Exception("MemArray::reAlloc : request for negative length of data !"); T *pointer=new T[newNbOfElements]; std::copy(_pointer.getConstPointer(),_pointer.getConstPointer()+std::min(_nb_of_elem,newNbOfElements),pointer); if(_ownership) @@ -262,7 +266,7 @@ namespace ParaMEDMEM return ; } default: - std::stringstream stream; + std::ostringstream stream; stream << "Invalid deallocation requested for pointer " << pt; throw INTERP_KERNEL::Exception(stream.str().c_str()); } diff --git a/src/MEDCoupling/MEDCouplingMesh.cxx b/src/MEDCoupling/MEDCouplingMesh.cxx index 84c4e7a65..e6996122e 100644 --- a/src/MEDCoupling/MEDCouplingMesh.cxx +++ b/src/MEDCoupling/MEDCouplingMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -18,6 +18,7 @@ // #include "MEDCouplingMesh.hxx" +#include "MEDCouplingUMesh.hxx" #include "MEDCouplingMemArray.hxx" #include "MEDCouplingFieldDouble.hxx" #include "MEDCouplingFieldDiscretization.hxx" @@ -295,13 +296,45 @@ MEDCouplingFieldDouble *MEDCouplingMesh::fillFromAnalytic3(TypeOfField t, int nb /*! * retruns a newly created mesh with counter=1 - * that is the union of mesh1 and mesh2 if possible. The cells of mesh2 will appear after cells of 'mesh1'. Idem for nodes. + * that is the union of \b mesh1 and \b mesh2 if possible. The cells of \b mesh2 will appear after cells of \b mesh1. Idem for nodes. + * The only contraint is that \b mesh1 an \b mesh2 have the same mesh types. If it is not the case please use the other API of MEDCouplingMesh::MergeMeshes, + * with input vector of meshes. */ -MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) +MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) throw(INTERP_KERNEL::Exception) { + if(!mesh1) + throw INTERP_KERNEL::Exception("MEDCouplingMesh::MergeMeshes : first parameter is an empty mesh !"); + if(!mesh2) + throw INTERP_KERNEL::Exception("MEDCouplingMesh::MergeMeshes : second parameter is an empty mesh !"); return mesh1->mergeMyselfWith(mesh2); } +/*! + * retruns a newly created mesh with counter=1 + * that is the union of meshes if possible. The cells of \b meshes[1] will appear after cells of \b meshes[0]. Idem for nodes. + * This method performs a systematic conversion to unstructured meshes before performing aggregation contrary to the other ParaMEDMEM::MEDCouplingMesh::MergeMeshes with + * two parameters that work only on the same type of meshes. So here it is possible to mix different type of meshes. + */ +MEDCouplingMesh *MEDCouplingMesh::MergeMeshes(std::vector& meshes) throw(INTERP_KERNEL::Exception) +{ + std::vector< MEDCouplingAutoRefCountObjectPtr > ms1(meshes.size()); + std::vector< const MEDCouplingUMesh * > ms2(meshes.size()); + for(std::size_t i=0;ibuildUnstructured(); + ms1[i]=cur; ms2[i]=cur; + } + else + { + std::ostringstream oss; oss << "MEDCouplingMesh::MergeMeshes(std::vector& meshes) : mesh at pos #" << i << " of input vector of size " << meshes.size() << " is empty !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + } + return MEDCouplingUMesh::MergeUMeshes(ms2); +} + void MEDCouplingMesh::getCellsContainingPoint(const double *pos, double eps, std::vector& elts) const { int ret=getCellContainingPoint(pos,eps); diff --git a/src/MEDCoupling/MEDCouplingMesh.hxx b/src/MEDCoupling/MEDCouplingMesh.hxx index 31399a09b..9724ca3e6 100644 --- a/src/MEDCoupling/MEDCouplingMesh.hxx +++ b/src/MEDCoupling/MEDCouplingMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -85,7 +85,7 @@ namespace ParaMEDMEM virtual std::set getAllGeoTypes() const = 0; virtual void getNodeIdsOfCell(int cellId, std::vector& conn) const = 0; virtual DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const; - virtual void getCoordinatesOfNode(int nodeId, std::vector& coo) const = 0; + virtual void getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception) = 0; virtual std::string simpleRepr() const = 0; virtual std::string advancedRepr() const = 0; // tools @@ -113,7 +113,8 @@ namespace ParaMEDMEM virtual MEDCouplingUMesh *buildUnstructured() const throw(INTERP_KERNEL::Exception) = 0; virtual DataArrayInt *simplexize(int policy) throw(INTERP_KERNEL::Exception) = 0; virtual bool areCompatibleForMerge(const MEDCouplingMesh *other) const; - static MEDCouplingMesh *MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2); + static MEDCouplingMesh *MergeMeshes(const MEDCouplingMesh *mesh1, const MEDCouplingMesh *mesh2) throw(INTERP_KERNEL::Exception); + static MEDCouplingMesh *MergeMeshes(std::vector& meshes) throw(INTERP_KERNEL::Exception); //serialisation-unserialization virtual void getTinySerializationInformation(std::vector& tinyInfoD, std::vector& tinyInfo, std::vector& littleStrings) const = 0; virtual void resizeForUnserialization(const std::vector& tinyInfo, DataArrayInt *a1, DataArrayDouble *a2, std::vector& littleStrings) const = 0; diff --git a/src/MEDCoupling/MEDCouplingMultiFields.cxx b/src/MEDCoupling/MEDCouplingMultiFields.cxx index c15e41404..3586308b7 100644 --- a/src/MEDCoupling/MEDCouplingMultiFields.cxx +++ b/src/MEDCoupling/MEDCouplingMultiFields.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingMultiFields.hxx b/src/MEDCoupling/MEDCouplingMultiFields.hxx index ea1613d02..69445a724 100644 --- a/src/MEDCoupling/MEDCouplingMultiFields.hxx +++ b/src/MEDCoupling/MEDCouplingMultiFields.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNatureOfField.cxx b/src/MEDCoupling/MEDCouplingNatureOfField.cxx index b057c3f17..8344d7588 100644 --- a/src/MEDCoupling/MEDCouplingNatureOfField.cxx +++ b/src/MEDCoupling/MEDCouplingNatureOfField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNatureOfField.hxx b/src/MEDCoupling/MEDCouplingNatureOfField.hxx index ff4f34aa2..314c62131 100644 --- a/src/MEDCoupling/MEDCouplingNatureOfField.hxx +++ b/src/MEDCoupling/MEDCouplingNatureOfField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx index 66f7c612b..60cbfdb34 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx +++ b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx index 71ff98829..bb54d1965 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx +++ b/src/MEDCoupling/MEDCouplingNormalizedCartesianMesh.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx index 98ac6724e..cffd88a3a 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx +++ b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx index eb4188c98..4ad2677b6 100644 --- a/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx +++ b/src/MEDCoupling/MEDCouplingNormalizedUnstructuredMesh.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingPointSet.cxx b/src/MEDCoupling/MEDCouplingPointSet.cxx index d76908c76..597f71a00 100644 --- a/src/MEDCoupling/MEDCouplingPointSet.cxx +++ b/src/MEDCoupling/MEDCouplingPointSet.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -153,6 +153,27 @@ bool MEDCouplingPointSet::areCoordsEqualWithoutConsideringStr(const MEDCouplingP return _coords->isEqualWithoutConsideringStr(*other._coords,prec); } +/*! + * Returns coordinates of node with id 'nodeId' and append it in 'coo'. + */ +void MEDCouplingPointSet::getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception) +{ + if(!_coords) + throw INTERP_KERNEL::Exception("MEDCouplingPointSet::getCoordinatesOfNode : no coordinates array set !"); + int nbNodes=getNumberOfNodes(); + if(nodeId>=0 && nodeIdgetConstPointer(); + int spaceDim=getSpaceDimension(); + coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1)); + } + else + { + std::ostringstream oss; oss << "MEDCouplingPointSet::getCoordinatesOfNode : request of nodeId \"" << nodeId << "\" but it should be in [0,"<< nbNodes << ") !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } +} + /*! * This method is typically the base method used for implementation of mergeNodes. This method computes this permutation array using as input, * This method is const ! So this method simply computes the array, no permutation of nodes is done. @@ -301,30 +322,11 @@ void MEDCouplingPointSet::renumberNodes2(const int *newNodeNumbers, int newNbOfN * The returned bounding box is arranged along trihedron. * @param bbox out array of size 2*this->getSpaceDimension(). */ -void MEDCouplingPointSet::getBoundingBox(double *bbox) const +void MEDCouplingPointSet::getBoundingBox(double *bbox) const throw(INTERP_KERNEL::Exception) { - int dim=getSpaceDimension(); - for (int idim=0; idim::max(); - bbox[idim*2+1]=-std::numeric_limits::max(); - } - const double *coords=_coords->getConstPointer(); - int nbnodes=getNumberOfNodes(); - for (int i=0; i coords[i*dim+idim] ) - { - bbox[idim*2] = coords[i*dim+idim] ; - } - if ( bbox[idim*2+1] < coords[i*dim+idim] ) - { - bbox[idim*2+1] = coords[i*dim+idim] ; - } - } - } + if(!_coords) + throw INTERP_KERNEL::Exception("MEDCouplingPointSet::getBoundingBox : Coordinates not set !"); + _coords->getMinMaxPerComponent(bbox); } /*! @@ -891,7 +893,7 @@ void MEDCouplingPointSet::project2DCellOnXY(const int *startConn, const int *end /*! * low level method that checks that the 2D cell is not a butterfly cell. */ -bool MEDCouplingPointSet::isButterfly2DCell(const std::vector& res, bool isQuad) +bool MEDCouplingPointSet::isButterfly2DCell(const std::vector& res, bool isQuad, double eps) { std::size_t nbOfNodes=res.size()/2; std::vector nodes(nbOfNodes); @@ -900,12 +902,14 @@ bool MEDCouplingPointSet::isButterfly2DCell(const std::vector& res, bool INTERP_KERNEL::Node *tmp=new INTERP_KERNEL::Node(res[2*i],res[2*i+1]); nodes[i]=tmp; } + INTERP_KERNEL::QUADRATIC_PLANAR::_precision=eps; + INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=eps; INTERP_KERNEL::QuadraticPolygon *pol=0; if(isQuad) pol=INTERP_KERNEL::QuadraticPolygon::BuildArcCirclePolygon(nodes); else pol=INTERP_KERNEL::QuadraticPolygon::BuildLinearPolygon(nodes); - bool ret=pol->isButterfly(); + bool ret=pol->isButterflyAbs(); delete pol; return ret; } diff --git a/src/MEDCoupling/MEDCouplingPointSet.hxx b/src/MEDCoupling/MEDCouplingPointSet.hxx index 92440c4c8..43e723594 100644 --- a/src/MEDCoupling/MEDCouplingPointSet.hxx +++ b/src/MEDCoupling/MEDCouplingPointSet.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -66,13 +66,14 @@ namespace ParaMEDMEM bool areCoordsEqualWithoutConsideringStr(const MEDCouplingPointSet& other, double prec) const; virtual DataArrayInt *mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0; virtual DataArrayInt *mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes) = 0; + void getCoordinatesOfNode(int nodeId, std::vector& coo) const throw(INTERP_KERNEL::Exception); DataArrayInt *buildPermArrayForMergeNode(double precision, int limitNodeId, bool& areNodesMerged, int& newNbOfNodes) const; std::vector getNodeIdsNearPoint(const double *pos, double eps) const throw(INTERP_KERNEL::Exception); void getNodeIdsNearPoints(const double *pos, int nbOfNodes, double eps, std::vector& c, std::vector& cI) const throw(INTERP_KERNEL::Exception); void findCommonNodes(double prec, int limitNodeId, DataArrayInt *&comm, DataArrayInt *&commIndex) const; DataArrayInt *buildNewNumberingFromCommonNodesFormat(const DataArrayInt *comm, const DataArrayInt *commIndex, int& newNbOfNodes) const; - void getBoundingBox(double *bbox) const; + void getBoundingBox(double *bbox) const throw(INTERP_KERNEL::Exception); void zipCoords(); double getCaracteristicDimension() const; void rotate(const double *center, const double *vector, double angle); @@ -114,7 +115,7 @@ namespace ParaMEDMEM void rotate2D(const double *center, double angle); void rotate3D(const double *center, const double *vect, double angle); void project2DCellOnXY(const int *startConn, const int *endConn, std::vector& res) const; - static bool isButterfly2DCell(const std::vector& res, bool isQuad); + static bool isButterfly2DCell(const std::vector& res, bool isQuad, double eps); template void findNodeIdsNearPointAlg(std::vector& bbox, const double *pos, int nbNodes, double eps, std::vector& c, std::vector& cI) const; diff --git a/src/MEDCoupling/MEDCouplingPointSet.txx b/src/MEDCoupling/MEDCouplingPointSet.txx index c1a2b4781..8d041acd8 100644 --- a/src/MEDCoupling/MEDCouplingPointSet.txx +++ b/src/MEDCoupling/MEDCouplingPointSet.txx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingRefCountObject.cxx b/src/MEDCoupling/MEDCouplingRefCountObject.cxx index 30b46baa1..ab245084e 100644 --- a/src/MEDCoupling/MEDCouplingRefCountObject.cxx +++ b/src/MEDCoupling/MEDCouplingRefCountObject.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingRefCountObject.hxx b/src/MEDCoupling/MEDCouplingRefCountObject.hxx index e80d5d852..e011a19eb 100644 --- a/src/MEDCoupling/MEDCouplingRefCountObject.hxx +++ b/src/MEDCoupling/MEDCouplingRefCountObject.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingRemapper.cxx b/src/MEDCoupling/MEDCouplingRemapper.cxx index aadf86a42..3c5fa11f2 100644 --- a/src/MEDCoupling/MEDCouplingRemapper.cxx +++ b/src/MEDCoupling/MEDCouplingRemapper.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -68,32 +68,30 @@ int MEDCouplingRemapper::prepareEx(const MEDCouplingFieldTemplate *src, const ME return prepare(src->getMesh(),target->getMesh(),meth.c_str()); } +/*! + * This method performs the operation source to target using matrix computed in ParaMEDMEM::MEDCouplingRemapper::prepare method. + * If meshes of \b srcField and \b targetField do not match exactly those given into \ref ParaMEDMEM::MEDCouplingRemapper::prepare "prepare method" an exception will be thrown. + * + * \param [in] srcField is the source field from which the interpolation will be done. The mesh into \b srcField should be the same than those specified on ParaMEDMEM::MEDCouplingRemapper::prepare. + * \param [out] targetField the destination field with the allocated array in which all tuples will be overwritten. + */ void MEDCouplingRemapper::transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception) { - if(_src_method!=srcField->getDiscretization()->getStringRepr()) - throw INTERP_KERNEL::Exception("Incoherency with prepare call for source field"); - if(_target_method!=targetField->getDiscretization()->getStringRepr()) - throw INTERP_KERNEL::Exception("Incoherency with prepare call for target field"); - if(srcField->getNature()!=targetField->getNature()) - throw INTERP_KERNEL::Exception("Natures of fields mismatch !"); - DataArrayDouble *array=targetField->getArray(); - int srcNbOfCompo=srcField->getNumberOfComponents(); - if(array) - { - if(srcNbOfCompo!=targetField->getNumberOfComponents()) - throw INTERP_KERNEL::Exception("Number of components mismatch !"); - } - else - { - array=DataArrayDouble::New(); - array->alloc(targetField->getNumberOfTuples(),srcNbOfCompo); - targetField->setArray(array); - array->decrRef(); - } - computeDeno(srcField->getNature(),srcField,targetField); - double *resPointer=array->getPointer(); - const double *inputPointer=srcField->getArray()->getConstPointer(); - computeProduct(inputPointer,srcNbOfCompo,dftValue,resPointer); + transferUnderground(srcField,targetField,true,dftValue); +} + +/*! + * This method is equivalent to ParaMEDMEM::MEDCouplingRemapper::transfer except that here \b targetField is a in/out parameter. + * If an entity (cell for example) in targetField is not fetched by any entity (cell for example) of \b srcField, the value in targetField is + * let unchanged. + * This method requires that \b targetField was fully defined and allocated. If the array is not allocated an exception will be thrown. + * + * \param [in] srcField is the source field from which the interpolation will be done. The mesh into \b srcField should be the same than those specified on ParaMEDMEM::MEDCouplingRemapper::prepare. + * \param [in,out] targetField the destination field with the allocated array in which only tuples whose entities are fetched by interpolation will be overwritten only. + */ +void MEDCouplingRemapper::partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception) +{ + transferUnderground(srcField,targetField,false,std::numeric_limits::max()); } void MEDCouplingRemapper::reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception) @@ -447,6 +445,36 @@ void MEDCouplingRemapper::releaseData(bool matrixSuppression) } } +void MEDCouplingRemapper::transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue) throw(INTERP_KERNEL::Exception) +{ + if(_src_method!=srcField->getDiscretization()->getStringRepr()) + throw INTERP_KERNEL::Exception("Incoherency with prepare call for source field"); + if(_target_method!=targetField->getDiscretization()->getStringRepr()) + throw INTERP_KERNEL::Exception("Incoherency with prepare call for target field"); + if(srcField->getNature()!=targetField->getNature()) + throw INTERP_KERNEL::Exception("Natures of fields mismatch !"); + DataArrayDouble *array=targetField->getArray(); + int srcNbOfCompo=srcField->getNumberOfComponents(); + if(array) + { + if(srcNbOfCompo!=targetField->getNumberOfComponents()) + throw INTERP_KERNEL::Exception("Number of components mismatch !"); + } + else + { + if(!isDftVal) + throw INTERP_KERNEL::Exception("MEDCouplingRemapper::partialTransfer : This method requires that the array of target field exists ! Allocate it or call MEDCouplingRemapper::transfer instead !"); + array=DataArrayDouble::New(); + array->alloc(targetField->getNumberOfTuples(),srcNbOfCompo); + targetField->setArray(array); + array->decrRef(); + } + computeDeno(srcField->getNature(),srcField,targetField); + double *resPointer=array->getPointer(); + const double *inputPointer=srcField->getArray()->getConstPointer(); + computeProduct(inputPointer,srcNbOfCompo,isDftVal,dftValue,resPointer); +} + void MEDCouplingRemapper::computeDeno(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField) { if(nat==NoNature) @@ -532,7 +560,7 @@ void MEDCouplingRemapper::computeDenoFromScratch(NatureOfField nat, const MEDCou } } -void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer) +void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNbOfCompo, bool isDftVal, double dftValue, double *resPointer) { int idx=0; double *tmp=new double[inputNbOfCompo]; @@ -540,7 +568,8 @@ void MEDCouplingRemapper::computeProduct(const double *inputPointer, int inputNb { if((*iter1).empty()) { - std::fill(resPointer+idx*inputNbOfCompo,resPointer+(idx+1)*inputNbOfCompo,dftValue); + if(isDftVal) + std::fill(resPointer+idx*inputNbOfCompo,resPointer+(idx+1)*inputNbOfCompo,dftValue); continue; } else diff --git a/src/MEDCoupling/MEDCouplingRemapper.hxx b/src/MEDCoupling/MEDCouplingRemapper.hxx index 81251b1cf..b09539ec4 100644 --- a/src/MEDCoupling/MEDCouplingRemapper.hxx +++ b/src/MEDCoupling/MEDCouplingRemapper.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -47,6 +47,7 @@ namespace ParaMEDMEM MEDCOUPLINGREMAPPER_EXPORT int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const char *method) throw(INTERP_KERNEL::Exception); MEDCOUPLINGREMAPPER_EXPORT int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception); MEDCOUPLINGREMAPPER_EXPORT void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); + MEDCOUPLINGREMAPPER_EXPORT void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception); MEDCOUPLINGREMAPPER_EXPORT void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); MEDCOUPLINGREMAPPER_EXPORT MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception); MEDCOUPLINGREMAPPER_EXPORT MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); @@ -61,9 +62,10 @@ namespace ParaMEDMEM int prepareEE(const char *method) throw(INTERP_KERNEL::Exception); void updateTime() const; void releaseData(bool matrixSuppression); + void transferUnderground(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, bool isDftVal, double dftValue) throw(INTERP_KERNEL::Exception); void computeDeno(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField); void computeDenoFromScratch(NatureOfField nat, const MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *trgField) throw(INTERP_KERNEL::Exception); - void computeProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer); + void computeProduct(const double *inputPointer, int inputNbOfCompo, bool isDftVal, double dftValue, double *resPointer); void computeReverseProduct(const double *inputPointer, int inputNbOfCompo, double dftValue, double *resPointer); void buildFinalInterpolationMatrixByConvolution(const std::vector< std::map >& m1D, const std::vector< std::map >& m2D, diff --git a/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx b/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx index 717bd159d..a8079146a 100644 --- a/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx +++ b/src/MEDCoupling/MEDCouplingTimeDiscretization.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingTimeDiscretization.hxx b/src/MEDCoupling/MEDCouplingTimeDiscretization.hxx index 513f4179d..65eefb105 100644 --- a/src/MEDCoupling/MEDCouplingTimeDiscretization.hxx +++ b/src/MEDCoupling/MEDCouplingTimeDiscretization.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingTimeLabel.cxx b/src/MEDCoupling/MEDCouplingTimeLabel.cxx index d6f8c151e..e91f08a4e 100644 --- a/src/MEDCoupling/MEDCouplingTimeLabel.cxx +++ b/src/MEDCoupling/MEDCouplingTimeLabel.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingTimeLabel.hxx b/src/MEDCoupling/MEDCouplingTimeLabel.hxx index 1024778a4..c334ffdbd 100644 --- a/src/MEDCoupling/MEDCouplingTimeLabel.hxx +++ b/src/MEDCoupling/MEDCouplingTimeLabel.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/MEDCouplingUMesh.cxx b/src/MEDCoupling/MEDCouplingUMesh.cxx index 4cef4ca74..ae6a410d3 100644 --- a/src/MEDCoupling/MEDCouplingUMesh.cxx +++ b/src/MEDCoupling/MEDCouplingUMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -567,6 +567,52 @@ MEDCouplingUMesh *MEDCouplingUMesh::buildDescendingConnectivity2(DataArrayInt *d return buildDescendingConnectivityGen(desc,descIndx,revDesc,revDescIndx,MEDCouplingOrientationSensitiveNbrer); } +/*! + * \b WARNING this method do the assumption that connectivity lies on the coordinates set. + * For speed reasons no check of this will be done. This method calls MEDCouplingUMesh::buildDescendingConnectivity to compute the result. + * This method lists cell by cell in \b this which are its neighbors. To compute the result only connectivities are considered. + * The a cell with id 'cellId' its neighbors are neighbors[neighborsIdx[cellId]:neighborsIdx[cellId+1]]. + * + * \param [out] neighbors is an array storing all the neighbors of all cells in \b this. This array is newly allocated and should be dealt by the caller. \b neighborsIdx 2nd output + * parameter allows to select the right part in this array. The number of tuples is equal to the last values in \b neighborsIdx. + * \param [out] neighborsIdx is an array of size this->getNumberOfCells()+1 newly allocated and should be dealt by the caller. This arrays allow to use the first output parameter \b neighbors. + */ +void MEDCouplingUMesh::computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const throw(INTERP_KERNEL::Exception) +{ + MEDCouplingAutoRefCountObjectPtr desc=DataArrayInt::New(); + MEDCouplingAutoRefCountObjectPtr descIndx=DataArrayInt::New(); + MEDCouplingAutoRefCountObjectPtr revDesc=DataArrayInt::New(); + MEDCouplingAutoRefCountObjectPtr revDescIndx=DataArrayInt::New(); + MEDCouplingAutoRefCountObjectPtr meshDM1=buildDescendingConnectivity(desc,descIndx,revDesc,revDescIndx); + meshDM1=0; + const int *descPtr=desc->getConstPointer(); + const int *descIPtr=descIndx->getConstPointer(); + const int *revDescPtr=revDesc->getConstPointer(); + const int *revDescIPtr=revDescIndx->getConstPointer(); + // + int nbCells=getNumberOfCells(); + MEDCouplingAutoRefCountObjectPtr out0=DataArrayInt::New(); + MEDCouplingAutoRefCountObjectPtr out1=DataArrayInt::New(); out1->alloc(nbCells+1,1); + int *out1Ptr=out1->getPointer(); + *out1Ptr++=0; + std::vector out0v; + out0v.reserve(desc->getNumberOfTuples()); + for(int i=0;i s(revDescPtr+revDescIPtr[*w1],revDescPtr+revDescIPtr[(*w1)+1]); + s.erase(i); + out0v.insert(out0v.end(),s.begin(),s.end()); + } + *out1Ptr=out0v.size(); + } + out0->alloc((int)out0v.size(),1); + std::copy(out0v.begin(),out0v.end(),out0->getPointer()); + neighbors=out0; out0->incrRef(); + neighborsIdx=out1; out1->incrRef(); +} + /// @cond INTERNAL /*! @@ -987,7 +1033,9 @@ bool MEDCouplingUMesh::areCellsEqual0(int cell1, int cell2) const { const int *conn=getNodalConnectivity()->getConstPointer(); const int *connI=getNodalConnectivityIndex()->getConstPointer(); - return std::equal(conn+connI[cell1],conn+connI[cell1+1],conn+connI[cell2]); + if(connI[cell1+1]-connI[cell1]==connI[cell2+1]-connI[cell2]) + return std::equal(conn+connI[cell1]+1,conn+connI[cell1+1],conn+connI[cell2]+1); + return false; } /*! @@ -995,7 +1043,35 @@ bool MEDCouplingUMesh::areCellsEqual0(int cell1, int cell2) const */ bool MEDCouplingUMesh::areCellsEqual1(int cell1, int cell2) const { - throw INTERP_KERNEL::Exception("Policy comparison, not implemented yet !"); + const int *conn=getNodalConnectivity()->getConstPointer(); + const int *connI=getNodalConnectivityIndex()->getConstPointer(); + int sz=connI[cell1+1]-connI[cell1]; + if(sz==connI[cell2+1]-connI[cell2]) + { + if(conn[connI[cell1]]==conn[connI[cell2]]) + { + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[connI[cell1]]); + unsigned dim=cm.getDimension(); + if(dim!=3) + { + if(dim!=1) + { + int sz1=2*(sz-1); + int *tmp=new int[sz1]; + int *work=std::copy(conn+connI[cell1]+1,conn+connI[cell1+1],tmp); + std::copy(conn+connI[cell1]+1,conn+connI[cell1+1],work); + work=std::search(tmp,tmp+sz1,conn+connI[cell2]+1,conn+connI[cell2+1]); + delete [] tmp; + return work!=tmp+sz1; + } + else + return std::equal(conn+connI[cell1]+1,conn+connI[cell1+1],conn+connI[cell2]+1);//case of SEG2 and SEG3 + } + else + throw INTERP_KERNEL::Exception("MEDCouplingUMesh::areCellsEqual1 : not implemented yet for meshdim == 3 !"); + } + } + return false; } /*! @@ -1005,9 +1081,16 @@ bool MEDCouplingUMesh::areCellsEqual2(int cell1, int cell2) const { const int *conn=getNodalConnectivity()->getConstPointer(); const int *connI=getNodalConnectivityIndex()->getConstPointer(); - std::set s1(conn+connI[cell1],conn+connI[cell1+1]); - std::set s2(conn+connI[cell2],conn+connI[cell2+1]); - return s1==s2; + if(connI[cell1+1]-connI[cell1]==connI[cell2+1]-connI[cell2]) + { + if(conn[connI[cell1]]==conn[connI[cell2]]) + { + std::set s1(conn+connI[cell1]+1,conn+connI[cell1+1]); + std::set s2(conn+connI[cell2]+1,conn+connI[cell2+1]); + return s1==s2; + } + } + return false; } /*! @@ -1134,9 +1217,11 @@ void MEDCouplingUMesh::findCommonCellsBase(int compType, std::vector& res, * This method keeps the coordiantes of 'this'. * * @param compType input specifying the technique used to compare cells each other. - * 0 : exactly. A cell is detected to be the same if and only if the connectivity is exactly the same without permutation and types same too. This is the strongest policy. - * 1 : permutation. cell1 and cell2 are equal if and the connectivity of cell2 can be deduced by those of cell1 by direct permutation and their type equal. - * 2 : nodal. cell1 and cell2 are equal if and only if cell1 and cell2 have same type and have the same nodes constituting connectivity. This is the laziest policy. + * - 0 : exactly. A cell is detected to be the same if and only if the connectivity is exactly the same without permutation and types same too. This is the strongest policy. + * - 1 : permutation same orientation. cell1 and cell2 are considered equal if the connectivity of cell2 can be deduced by those of cell1 by direct permutation (with exactly the same orientation) + * and their type equal. For 1D mesh the policy 1 is equivalent to 0. + * - 2 : nodal. cell1 and cell2 are equal if and only if cell1 and cell2 have same type and have the same nodes constituting connectivity. This is the laziest policy. This policy + * can be used for users not sensitive to orientation of cell * @return the correspondance array old to new. */ DataArrayInt *MEDCouplingUMesh::zipConnectivityTraducer(int compType) throw(INTERP_KERNEL::Exception) @@ -1538,12 +1623,40 @@ void MEDCouplingUMesh::renumberNodes2(const int *newNodeNumbers, int newNbOfNode } /*! - * This method renumbers nodes in connectivity only without any reference with coords. - * Use it with care ! - * @param 'newNodeNumbers' in old2New convention + * This method renumbers nodes \b in \b connectivity \b only \b without \b any \b reference \b to \b coords. + * This method performs no check on the fact that new coordinate ids are valid. \b Use \b it \b with \b care ! + * This method is an generalization of \ref ParaMEDMEM::MEDCouplingUMesh::shiftNodeNumbersInConn "shiftNodeNumbersInConn method". + * @param [in] newNodeNumbers in old2New convention */ -void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbers) +void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbersO2N) { + checkConnectivityFullyDefined(); + int *conn=getNodalConnectivity()->getPointer(); + const int *connIndex=getNodalConnectivityIndex()->getConstPointer(); + int nbOfCells=getNumberOfCells(); + for(int i=0;i=0)//avoid polyhedron separator + { + node=newNodeNumbersO2N[node]; + } + } + _nodal_connec->declareAsNew(); + updateTime(); +} + +/*! + * This method renumbers nodes \b in \b connectivity \b only \b without \b any \b reference \b to \b coords. + * This method performs no check on the fact that new coordinate ids are valid. \b Use \b it \b with \b care ! + * This method is an specialization of \ref ParaMEDMEM::MEDCouplingUMesh::renumberNodesInConn "renumberNodesInConn method". + * + * @param [in] delta specifies the shift size applied to nodeId in nodal connectivity in \b this. + */ +void MEDCouplingUMesh::shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception) +{ + checkConnectivityFullyDefined(); int *conn=getNodalConnectivity()->getPointer(); const int *connIndex=getNodalConnectivityIndex()->getConstPointer(); int nbOfCells=getNumberOfCells(); @@ -1553,7 +1666,7 @@ void MEDCouplingUMesh::renumberNodesInConn(const int *newNodeNumbers) int& node=conn[iconn]; if(node>=0)//avoid polyhedron separator { - node=newNodeNumbers[node]; + node+=delta; } } _nodal_connec->declareAsNew(); @@ -1755,16 +1868,6 @@ void MEDCouplingUMesh::getNodeIdsOfCell(int cellId, std::vector& conn) cons conn.push_back(*w); } -/*! - * Returns coordinates of node with id 'nodeId' and append it in 'coo'. - */ -void MEDCouplingUMesh::getCoordinatesOfNode(int nodeId, std::vector& coo) const -{ - const double *cooPtr=_coords->getConstPointer(); - int spaceDim=getSpaceDimension(); - coo.insert(coo.end(),cooPtr+spaceDim*nodeId,cooPtr+spaceDim*(nodeId+1)); -} - std::string MEDCouplingUMesh::simpleRepr() const { static const char msg0[]="No coordinates specified !"; @@ -2923,7 +3026,7 @@ void MEDCouplingUMesh::getCellsContainingPoints(const double *pos, int nbOfPoint * A 2D cell is considered to be butterfly if it exists at least one pair of distinct edges of it that intersect each other * anywhere excepted their extremities. An INTERP_KERNEL::NORM_NORI3 could \b not be butterfly. */ -void MEDCouplingUMesh::checkButterflyCells(std::vector& cells) const +void MEDCouplingUMesh::checkButterflyCells(std::vector& cells, double eps) const { const char msg[]="Butterfly detection work only for 2D cells with spaceDim==2 or 3!"; if(getMeshDimension()!=2) @@ -2943,7 +3046,7 @@ void MEDCouplingUMesh::checkButterflyCells(std::vector& cells) const continue; bool isQuad=INTERP_KERNEL::CellModel::GetCellModel((INTERP_KERNEL::NormalizedCellType)conn[offset]).isQuadratic(); project2DCellOnXY(conn+offset+1,conn+connI[i+1],cell2DinS2); - if(isButterfly2DCell(cell2DinS2,isQuad)) + if(isButterfly2DCell(cell2DinS2,isQuad,eps)) cells.push_back(i); cell2DinS2.clear(); } @@ -4837,7 +4940,7 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshes(const MEDCouplingUMesh *mesh1, /*! * This method returns in case of success a mesh constitued from union of all meshes in 'a'. - * There should be \b no presence of null pointer into 'a'. + * There should be \b no presence of null pointer into 'a'. If any an INTERP_KERNEL::Exception will be thrown. * The returned mesh will contain aggregation of nodes in 'a' (in the same order) and aggregation of * cells in meshes in 'a' (in the same order too). */ @@ -4846,17 +4949,18 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshes(std::vector > bb(sz); std::vector< const MEDCouplingUMesh * > aa(sz); int spaceDim=-3; for(std::size_t i=0;igetCoords(); if(coo) spaceDim=coo->getNumberOfComponents(); @@ -4953,6 +5057,12 @@ MEDCouplingUMesh *MEDCouplingUMesh::MergeUMeshesOnSameCoords(const std::vectorgetCoords(); int meshDim=meshes.front()->getMeshDimension(); std::vector::const_iterator iter=meshes.begin(); @@ -5032,6 +5142,114 @@ MEDCouplingUMesh *MEDCouplingUMesh::FuseUMeshesOnSameCoords(const std::vector& meshes) throw(INTERP_KERNEL::Exception) +{ + std::size_t sz=meshes.size(); + if(sz==0 || sz==1) + return; + std::vector< const DataArrayDouble * > coords(meshes.size()); + std::vector< const DataArrayDouble * >::iterator it2=coords.begin(); + for(std::vector::const_iterator it=meshes.begin();it!=meshes.end();it++,it2++) + { + if((*it)) + { + (*it)->checkConnectivityFullyDefined(); + const DataArrayDouble *coo=(*it)->getCoords(); + if(coo) + *it2=coo; + else + { + std::ostringstream oss; oss << " MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords : Item #" << std::distance(meshes.begin(),it) << " inside the vector of length " << meshes.size(); + oss << " has no coordinate array defined !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + } + else + { + std::ostringstream oss; oss << " MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords : Item #" << std::distance(meshes.begin(),it) << " inside the vector of length " << meshes.size(); + oss << " is null !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + } + MEDCouplingAutoRefCountObjectPtr res=DataArrayDouble::Aggregate(coords); + std::vector::const_iterator it=meshes.begin(); + int offset=(*it)->getNumberOfNodes(); + (*it++)->setCoords(res); + for(;it!=meshes.end();it++) + { + int oldNumberOfNodes=(*it)->getNumberOfNodes(); + (*it)->setCoords(res); + (*it)->shiftNodeNumbersInConn(offset); + offset+=oldNumberOfNodes; + } +} + +/*! + * This method takes in input meshes \b meshes containing no null reference. If any an INTERP_KERNEL::Exception will be thrown. + * \b meshes should have a good coherency (connectivity and coordinates well defined). + * All mesh in \b meshes must have the same space dimension. If not an INTERP_KERNEL:Exception will be thrown. + * But mesh in \b meshes \b can \b have \b different \b mesh \b dimension \b each \b other. + * If \b meshes share the same instance of DataArrayDouble as coordinates and that this instance is null, this method do nothing and no exception will be thrown. + * + * This method performs nothing if size of \b meshes is empty. + * This method is particulary usefull in MEDLoader context to perform a treatment of a MEDFileUMesh instance on different levels. + * coordinates DataArrayDouble instance. + * + * \param [in,out] meshes :vector containing no null instance of MEDCouplingUMesh sharing the same DataArrayDouble instance of coordinates, that in case of success of this method will be modified. + * \param [in] eps is the distance in absolute (that should be positive !), so that 2 or more points within a distance of eps will be merged into a single point. + */ +void MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(const std::vector& meshes, double eps) throw(INTERP_KERNEL::Exception) +{ + if(meshes.empty()) + return ; + std::set s; + for(std::vector::const_iterator it=meshes.begin();it!=meshes.end();it++) + { + if(*it) + s.insert((*it)->getCoords()); + else + { + std::ostringstream oss; oss << "MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords : In input vector of unstructured meshes of size " << meshes.size() << " the element #" << std::distance(meshes.begin(),it) << " is null !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + } + if(s.size()!=1) + { + std::ostringstream oss; oss << "MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords : In input vector of unstructured meshes of size " << meshes.size() << ", it appears that they do not share the same instance of DataArrayDouble for coordiantes ! tryToShareSameCoordsPermute method can help to reach that !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + const DataArrayDouble *coo=*(s.begin()); + if(!coo) + return; + // + DataArrayInt *comm,*commI; + coo->findCommonTuples(eps,-1,comm,commI); + MEDCouplingAutoRefCountObjectPtr tmp1(comm),tmp2(commI); + int oldNbOfNodes=coo->getNumberOfTuples(); + int newNbOfNodes; + MEDCouplingAutoRefCountObjectPtr o2n=DataArrayInt::BuildOld2NewArrayFromSurjectiveFormat2(oldNbOfNodes,comm,commI,newNbOfNodes); + if(oldNbOfNodes==newNbOfNodes) + return ; + MEDCouplingAutoRefCountObjectPtr newCoords=coo->renumberAndReduce(o2n->getConstPointer(),newNbOfNodes); + for(std::vector::const_iterator it=meshes.begin();it!=meshes.end();it++) + { + (*it)->renumberNodesInConn(o2n->getConstPointer()); + (*it)->setCoords(newCoords); + } +} + /*! * This method takes in input a cell defined by its MEDcouplingUMesh connectivity [connBg,connEnd) and returns its extruded cell by inserting the result at the end of ret. * @param nbOfNodesPerLev in parameter that specifies the number of nodes of one slice of global dataset @@ -5238,6 +5456,8 @@ void MEDCouplingUMesh::FillInCompact3DMode(int spaceDim, int nbOfNodesInCell, co void MEDCouplingUMesh::writeVTKLL(std::ostream& ofs, const std::string& cellData, const std::string& pointData) const throw(INTERP_KERNEL::Exception) { + if(getNumberOfCells()<=0) + throw INTERP_KERNEL::Exception("MEDCouplingUMesh::writeVTK : the unstructured mesh has no cells !"); static const int PARAMEDMEM2VTKTYPETRADUCER[INTERP_KERNEL::NORM_MAXTYPE+1]={1,3,21,5,9,7,22,-1,23,-1,-1,-1,-1,-1,10,14,13,-1,12,-1,24,-1,16,27,-1,26,-1,-1,-1,-1,25,42,-1,4}; ofs << " <" << getVTKDataSetType() << ">\n"; ofs << " \n"; diff --git a/src/MEDCoupling/MEDCouplingUMesh.hxx b/src/MEDCoupling/MEDCouplingUMesh.hxx index b6a9982c0..163a8ccf9 100644 --- a/src/MEDCoupling/MEDCouplingUMesh.hxx +++ b/src/MEDCoupling/MEDCouplingUMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -70,7 +70,6 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const; MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector& conn) const; MEDCOUPLING_EXPORT DataArrayInt *getCellIdsFullyIncludedInNodeIds(const int *partBg, const int *partEnd) const; - MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector& coo) const; MEDCOUPLING_EXPORT std::string simpleRepr() const; MEDCOUPLING_EXPORT std::string advancedRepr() const; MEDCOUPLING_EXPORT std::string reprConnectivityOfThis() const; @@ -105,6 +104,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT void getReverseNodalConnectivity(DataArrayInt *revNodal, DataArrayInt *revNodalIndx) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT MEDCouplingUMesh *buildDescendingConnectivity(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT MEDCouplingUMesh *buildDescendingConnectivity2(DataArrayInt *desc, DataArrayInt *descIndx, DataArrayInt *revDesc, DataArrayInt *revDescIndx) const throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT void computeNeighborsOfCells(DataArrayInt *&neighbors, DataArrayInt *&neighborsIdx) const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT DataArrayInt *mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes); MEDCOUPLING_EXPORT DataArrayInt *mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes); MEDCOUPLING_EXPORT void tryToShareSameCoordsPermute(const MEDCouplingPointSet& other, double epsilon) throw(INTERP_KERNEL::Exception); @@ -118,6 +118,8 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT DataArrayInt *findCellsIdsOnBoundary() const throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void renumberNodes(const int *newNodeNumbers, int newNbOfNodes); MEDCOUPLING_EXPORT void renumberNodes2(const int *newNodeNumbers, int newNbOfNodes); + MEDCOUPLING_EXPORT void renumberNodesInConn(const int *newNodeNumbersO2N); + MEDCOUPLING_EXPORT void shiftNodeNumbersInConn(int delta) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void renumberCells(const int *old2NewBg, bool check) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void getCellsInBoundingBox(const double *bbox, double eps, std::vector& elems) const; MEDCOUPLING_EXPORT void getCellsInBoundingBox(const INTERP_KERNEL::DirectedBoundingBox& bbox, double eps, std::vector& elems); @@ -135,7 +137,7 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT int getCellContainingPoint(const double *pos, double eps) const; MEDCOUPLING_EXPORT void getCellsContainingPoint(const double *pos, double eps, std::vector& elts) const; MEDCOUPLING_EXPORT void getCellsContainingPoints(const double *pos, int nbOfPoints, double eps, std::vector& elts, std::vector& eltsIndex) const; - MEDCOUPLING_EXPORT void checkButterflyCells(std::vector& cells) const; + MEDCOUPLING_EXPORT void checkButterflyCells(std::vector& cells, double eps=1e-12) const; MEDCOUPLING_EXPORT void findAndCorrectBadOriented3DExtrudedCells(std::vector& cells) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT void getBoundingBoxForBBTree(std::vector& bbox) const; MEDCOUPLING_EXPORT MEDCouplingUMesh *buildExtrudedMesh(const MEDCouplingUMesh *mesh1D, int policy); @@ -183,6 +185,8 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT static MEDCouplingUMesh *MergeUMeshesOnSameCoords(const MEDCouplingUMesh *mesh1, const MEDCouplingUMesh *mesh2) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT static MEDCouplingUMesh *MergeUMeshesOnSameCoords(const std::vector& meshes); MEDCOUPLING_EXPORT static MEDCouplingUMesh *FuseUMeshesOnSameCoords(const std::vector& meshes, int compType, std::vector& corr); + MEDCOUPLING_EXPORT static void PutUMeshesOnSameAggregatedCoords(const std::vector& meshes) throw(INTERP_KERNEL::Exception); + MEDCOUPLING_EXPORT static void MergeNodesOnUMeshesSharingSameCoords(const std::vector& meshes, double eps) throw(INTERP_KERNEL::Exception); MEDCOUPLING_EXPORT static bool IsPolygonWellOriented(bool isQuadratic, const double *vec, const int *begin, const int *end, const double *coords); MEDCOUPLING_EXPORT static bool IsPolyhedronWellOriented(const int *begin, const int *end, const double *coords); MEDCOUPLING_EXPORT static void TryToCorrectPolyhedronOrientation(int *begin, int *end, const double *coords) throw(INTERP_KERNEL::Exception); @@ -200,7 +204,6 @@ namespace ParaMEDMEM DataArrayInt *simplexizePol0() throw(INTERP_KERNEL::Exception); DataArrayInt *simplexizePol1() throw(INTERP_KERNEL::Exception); void subDivide2DMesh(const int *nodeSubdived, const int *nodeIndxSubdived, const int *desc, const int *descIndex) throw(INTERP_KERNEL::Exception); - void renumberNodesInConn(const int *newNodeNumbers); void fillCellIdsToKeepFromNodeIds(const int *begin, const int *end, bool fullyIn, std::vector& cellIdsKept) const; void split3DCurveWithPlane(const double *origin, const double *vec, double eps, std::vector& cut3DCurve) throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *buildExtrudedMeshFromThisLowLev(int nbOfNodesOf1Lev, bool isQuad) const; diff --git a/src/MEDCoupling/MEDCouplingUMeshDesc.cxx b/src/MEDCoupling/MEDCouplingUMeshDesc.cxx index e0627080a..893b547ca 100644 --- a/src/MEDCoupling/MEDCouplingUMeshDesc.cxx +++ b/src/MEDCoupling/MEDCouplingUMeshDesc.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -56,11 +56,9 @@ MEDCouplingUMeshDesc *MEDCouplingUMeshDesc::New(const char *meshName, int meshDi return ret; } -/*! - * not implemented - */ MEDCouplingMesh *MEDCouplingUMeshDesc::deepCpy() const { + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } @@ -157,12 +155,7 @@ int MEDCouplingUMeshDesc::getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCell void MEDCouplingUMeshDesc::getNodeIdsOfCell(int cellId, std::vector& conn) const { - //not implemented yet. -} - -void MEDCouplingUMeshDesc::getCoordinatesOfNode(int nodeId, std::vector& coo) const -{ - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); } std::string MEDCouplingUMeshDesc::simpleRepr() const @@ -364,14 +357,14 @@ void MEDCouplingUMeshDesc::getCellsInBoundingBox(const INTERP_KERNEL::DirectedBo DataArrayInt *MEDCouplingUMeshDesc::mergeNodes(double precision, bool& areNodesMerged, int& newNbOfNodes) { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); areNodesMerged=false; return 0; } DataArrayInt *MEDCouplingUMeshDesc::mergeNodes2(double precision, bool& areNodesMerged, int& newNbOfNodes) { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); areNodesMerged=false; return 0; } @@ -383,19 +376,19 @@ void MEDCouplingUMeshDesc::tryToShareSameCoordsPermute(const MEDCouplingPointSet MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelf(const int *start, const int *end, bool keepCoords) const { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } MEDCouplingPointSet *MEDCouplingUMeshDesc::buildPartOfMySelfNode(const int *start, const int *end, bool fullyIn) const { - //not implemented yet + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } MEDCouplingPointSet *MEDCouplingUMeshDesc::buildFacePartOfMySelfNode(const int *start, const int *end, bool fullyIn) const { - //not implemented yet + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } @@ -406,12 +399,12 @@ DataArrayInt *MEDCouplingUMeshDesc::simplexize(int policy) throw(INTERP_KERNEL:: void MEDCouplingUMeshDesc::findBoundaryNodes(std::vector& nodes) const { - //not implemented yet + throw INTERP_KERNEL::Exception("Not implemented yet !"); } MEDCouplingPointSet *MEDCouplingUMeshDesc::buildBoundaryMesh(bool keepCoords) const { - //not implemented yet + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } @@ -428,18 +421,18 @@ void MEDCouplingUMeshDesc::renumberCells(const int *old2NewBg, bool check) throw void MEDCouplingUMeshDesc::renumberNodes(const int *newNodeNumbers, int newNbOfNodes) { MEDCouplingPointSet::renumberNodes(newNodeNumbers,newNbOfNodes); - //not implemented yet + throw INTERP_KERNEL::Exception("Not implemented yet !"); } MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureField(bool isAbs) const { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } MEDCouplingFieldDouble *MEDCouplingUMeshDesc::getMeasureFieldOnNode(bool isAbs) const { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } @@ -447,13 +440,13 @@ MEDCouplingFieldDouble *MEDCouplingUMeshDesc::buildOrthogonalField() const { if(getMeshDimension()!=2) throw INTERP_KERNEL::Exception("Expected a cmesh with meshDim == 2 !"); - //not implemented yet ! + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } DataArrayInt *MEDCouplingUMeshDesc::zipCoordsTraducer() { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } @@ -478,13 +471,13 @@ void MEDCouplingUMeshDesc::checkFullyDefined() const throw(INTERP_KERNEL::Except MEDCouplingMesh *MEDCouplingUMeshDesc::mergeMyselfWith(const MEDCouplingMesh *other) const { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } DataArrayDouble *MEDCouplingUMeshDesc::getBarycenterAndOwner() const { - //not implemented yet. + throw INTERP_KERNEL::Exception("Not implemented yet !"); return 0; } diff --git a/src/MEDCoupling/MEDCouplingUMeshDesc.hxx b/src/MEDCoupling/MEDCouplingUMeshDesc.hxx index d2d8d0613..ffbeebf2b 100644 --- a/src/MEDCoupling/MEDCouplingUMeshDesc.hxx +++ b/src/MEDCoupling/MEDCouplingUMeshDesc.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -51,7 +51,6 @@ namespace ParaMEDMEM MEDCOUPLING_EXPORT std::set getAllGeoTypes() const; MEDCOUPLING_EXPORT int getNumberOfCellsWithType(INTERP_KERNEL::NormalizedCellType type) const; MEDCOUPLING_EXPORT void getNodeIdsOfCell(int cellId, std::vector& conn) const; - MEDCOUPLING_EXPORT void getCoordinatesOfNode(int nodeId, std::vector& coo) const; MEDCOUPLING_EXPORT std::string simpleRepr() const; MEDCOUPLING_EXPORT std::string advancedRepr() const; MEDCOUPLING_EXPORT MEDCouplingMeshType getType() const { return UNSTRUCTURED_DESC; } diff --git a/src/MEDCoupling/Makefile.am b/src/MEDCoupling/Makefile.am index 0699799ce..10ec42d3c 100644 --- a/src/MEDCoupling/Makefile.am +++ b/src/MEDCoupling/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/CMakeLists.txt b/src/MEDCoupling/Test/CMakeLists.txt index 4ad1e3e7c..f7535d905 100644 --- a/src/MEDCoupling/Test/CMakeLists.txt +++ b/src/MEDCoupling/Test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest.hxx index 99168c6bd..3e7a78448 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest0.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest0.cxx index 9847e4886..bcd2fc326 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest0.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest0.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest1.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest1.cxx index 00e68c5b0..ba6ae4027 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest1.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest1.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest1.hxx index 8d456f157..6cea32d74 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest1.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest2.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest2.cxx index 9afa39e05..fd90286e8 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest2.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest2.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest2.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest2.hxx index d0da20187..4a8d58c45 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest2.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest2.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest3.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest3.cxx index b0ed88eed..c5cb30967 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest3.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest3.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -2386,7 +2386,9 @@ void MEDCouplingBasicsTest3::testMergeUMeshes2() MEDCouplingUMesh *m3_2=(MEDCouplingUMesh *)m3->buildPartOfMySelf(vec2,vec2+2,false); // std::vector ms(3); + std::vector ms2(3); ms[0]=m1; ms[1]=m2_2; ms[2]=m3_2; + ms2[0]=m1; ms2[1]=m2_2; ms2[2]=m3_2; // MEDCouplingUMesh *m4=MEDCouplingUMesh::MergeUMeshes(ms); m4->checkCoherency(); @@ -2394,6 +2396,10 @@ void MEDCouplingBasicsTest3::testMergeUMeshes2() CPPUNIT_ASSERT_EQUAL(20,m4->getNumberOfNodes()); CPPUNIT_ASSERT_EQUAL(45,m4->getMeshLength()); // + MEDCouplingMesh *m4bis=MEDCouplingMesh::MergeMeshes(ms2); + CPPUNIT_ASSERT(m4->isEqual(m4bis,1e-12)); + m4bis->decrRef(); + // const int vec3[5]={0,1,2,3,4}; MEDCouplingUMesh *m4_1=(MEDCouplingUMesh *)m4->buildPartOfMySelf(vec3,vec3+5,false); m4_1->setName(m1->getName()); diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest3.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest3.hxx index ce5a60944..b6d04e3bc 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest3.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest3.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx index 1075bcb9f..d412fde11 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest4.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest4.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest4.hxx index bd4bc47c3..e8ad9fcbc 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest4.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest4.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest5.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest5.cxx index 617ae1de4..4cf00f253 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest5.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest5.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -590,3 +590,486 @@ void MEDCouplingBasicsTest5::testDataArrayAbs1() d2->decrRef(); d1->decrRef(); } + +void MEDCouplingBasicsTest5::testGetValueOn3() +{ + const double v[4]={0.,1.,1.5,2.}; + const double v2[5]={0.7,1.25,0.,2.,1.5}; + const double disp[12]={5.,50.,500.,6.,60.,600.,7.,70.,700.,8.,80.,800.}; + MEDCouplingUMesh *m=MEDCouplingUMesh::New("myMesh",1); + const int nbNodes=4; + const int nbCells=nbNodes-1; + m->allocateCells(nbCells); + DataArrayDouble *coords=DataArrayDouble::New(); + coords->alloc(nbNodes,1); + std::copy(v,v+nbNodes,coords->getPointer()); + m->setCoords(coords); + coords->decrRef(); + const int conn[6]={0,1,2,1,2,3}; + m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn); + m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn+2); + m->insertNextCell(INTERP_KERNEL::NORM_SEG2,2,conn+4); + m->finishInsertingCells(); + MEDCouplingFieldDouble *f=MEDCouplingFieldDouble::New(ON_NODES); + f->setMesh(m); + DataArrayDouble *array=DataArrayDouble::New(); + array->alloc(m->getNumberOfNodes(),3); + std::copy(disp,disp+12,array->getPointer()); + f->setArray(array); + array->decrRef(); + DataArrayDouble *arr1=f->getValueOnMulti(v2,5); + CPPUNIT_ASSERT_EQUAL(5,arr1->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(3,arr1->getNumberOfComponents()); + const double expected1[15]={5.7,57.,570.,6.5,65.,650.,5.,50.,500.,8.,80.,800.,7.,70.,700.}; + for(int i=0;i<15;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected1[i],arr1->getIJ(0,i),1e-14); + arr1->decrRef(); + f->decrRef(); + m->decrRef(); +} + +void MEDCouplingBasicsTest5::testGetNodeIdsOfCell2() +{ + MEDCouplingCMesh *m1c=MEDCouplingCMesh::New(); + DataArrayDouble *coordsX=DataArrayDouble::New(); + double arrX[5] = { -1., 1., 2., 4., 4.5 }; + coordsX->useArray(arrX,false, CPP_DEALLOC,5,1); + DataArrayDouble *coordsY=DataArrayDouble::New(); + double arrY[4] = { -2., 2., 4., 8. }; + coordsY->useArray(arrY,false, CPP_DEALLOC,4,1); + DataArrayDouble *coordsZ=DataArrayDouble::New(); + double arrZ[3] = { -2., 2., 4. }; + coordsZ->useArray(arrZ,false, CPP_DEALLOC,3,1); + // test in 1D + m1c->setCoordsAt(0,coordsX); + CPPUNIT_ASSERT_EQUAL(4,m1c->getNumberOfCells()); + const int expected1[4][2]={{0,1},{1,2},{2,3},{3,4}}; + for(int i=0;i<4;i++) + { + std::vector v; + m1c->getNodeIdsOfCell(i,v); + CPPUNIT_ASSERT((int)v.size()==2); + std::equal(v.begin(),v.end(),expected1[i]); + } + // test in 2D + m1c->setCoordsAt(1,coordsY); + CPPUNIT_ASSERT_EQUAL(12,m1c->getNumberOfCells()); + const int expected2[12][4]={{0,1,6,5},{1,2,7,6},{2,3,8,7},{3,4,9,8},{4,5,11,10},{5,6,12,11},{6,7,13,12},{7,8,14,13},{8,9,16,15},{9,10,17,16},{10,11,18,17},{11,12,19,18}}; + for(int i=0;i<12;i++) + { + std::vector v; + m1c->getNodeIdsOfCell(i,v); + CPPUNIT_ASSERT((int)v.size()==4); + std::equal(v.begin(),v.end(),expected2[i]); + } + // test in 3D + m1c->setCoordsAt(2,coordsZ); + CPPUNIT_ASSERT_EQUAL(24,m1c->getNumberOfCells()); + const int expected3[24][8]={{0,1,6,5,20,21,26,25},{1,2,7,6,21,22,27,26},{2,3,8,7,22,23,28,27},{3,4,9,8,23,24,29,28},{4,5,11,10,24,25,31,30},{5,6,12,11,25,26,32,31},{6,7,13,12,26,27,33,32},{7,8,14,13,27,28,34,33},{8,9,16,15,28,29,36,35},{9,10,17,16,29,30,37,36},{10,11,18,17,30,31,38,37},{11,12,19,18,31,32,39,38},{20,21,26,25,40,41,46,45},{21,22,27,26,41,42,47,46},{22,23,28,27,42,43,48,47},{23,24,29,28,43,44,49,48},{24,25,31,30,44,45,51,50},{25,26,32,31,45,46,52,51},{26,27,33,32,46,47,53,52},{27,28,34,33,47,48,54,53},{28,29,36,35,48,49,56,55},{29,30,37,36,49,50,57,56},{30,31,38,37,50,51,58,57},{31,32,39,38,51,52,59,58}}; + for(int i=0;i<12;i++) + { + std::vector v; + m1c->getNodeIdsOfCell(i,v); + CPPUNIT_ASSERT((int)v.size()==8); + std::equal(v.begin(),v.end(),expected3[i]); + } + // + coordsX->decrRef(); + coordsY->decrRef(); + coordsZ->decrRef(); + m1c->decrRef(); +} + +void MEDCouplingBasicsTest5::testRenumberNodesInConn1() +{ + double mesh2DCoords[27]={-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0. }; + int mesh2DConn[18]={1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4}; + MEDCouplingUMesh *mesh2D=MEDCouplingUMesh::New("mesh",2); + mesh2D->allocateCells(5); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,mesh2DConn); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_TRI3,3,mesh2DConn+3); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+6); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+10); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_QUAD4,4,mesh2DConn+14); + mesh2D->finishInsertingCells(); + DataArrayDouble *myCoords=DataArrayDouble::New(); + myCoords->alloc(9,3); + std::copy(mesh2DCoords,mesh2DCoords+27,myCoords->getPointer()); + mesh2D->setCoords(myCoords); + myCoords->decrRef(); + mesh2D->checkCoherency(); + // + double mesh3DCoords[24]={-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1. }; + int mesh3DConn[8]={0,1,2,3,4,5,6,7}; + MEDCouplingUMesh *mesh3D=MEDCouplingUMesh::New("mesh",3); + mesh3D->allocateCells(1); + mesh3D->insertNextCell(INTERP_KERNEL::NORM_HEXA8,8,mesh3DConn); + mesh3D->finishInsertingCells(); + DataArrayDouble *myCoords3D=DataArrayDouble::New(); + myCoords3D->alloc(8,3); + std::copy(mesh3DCoords,mesh3DCoords+24,myCoords3D->getPointer()); + mesh3D->setCoords(myCoords3D); + myCoords3D->decrRef(); + mesh3D->checkCoherency(); + // + MEDCouplingUMesh *mesh3D_2=dynamic_cast(mesh3D->deepCpy()); + MEDCouplingUMesh *mesh2D_2=dynamic_cast(mesh2D->deepCpy()); + MEDCouplingUMesh *mesh3D_4=dynamic_cast(mesh3D->deepCpy()); + MEDCouplingUMesh *mesh2D_4=dynamic_cast(mesh2D->deepCpy()); + DataArrayInt *renumNodes=DataArrayInt::New(); + int oldNbOf3DNodes=mesh3D->getNumberOfNodes(); + renumNodes->alloc(mesh2D->getNumberOfNodes(),1); + renumNodes->iota(oldNbOf3DNodes); + DataArrayDouble *coo=DataArrayDouble::Aggregate(mesh3D->getCoords(),mesh2D->getCoords()); + mesh3D->setCoords(coo); + mesh2D->setCoords(coo); + coo->decrRef(); + MEDCouplingUMesh *mesh2D_3=dynamic_cast(mesh2D->deepCpy()); + mesh2D_3->shiftNodeNumbersInConn(oldNbOf3DNodes); + mesh2D->renumberNodesInConn(renumNodes->getConstPointer()); + renumNodes->decrRef(); + CPPUNIT_ASSERT(mesh2D_3->isEqual(mesh2D,1e-12)); + mesh2D_3->decrRef(); + // + DataArrayInt *da1,*da2; + mesh3D->checkGeoEquivalWith(mesh3D_2,10,1e-12,da1,da2); + CPPUNIT_ASSERT(da1==0); + CPPUNIT_ASSERT_EQUAL(8,da2->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,da2->getNumberOfComponents()); + const int expected1[8]={8,11,12,9,4,5,6,7}; + for(int i=0;i<8;i++) + CPPUNIT_ASSERT_EQUAL(expected1[i],da2->getIJ(i,0)); + da2->decrRef(); + // + mesh2D->checkGeoEquivalWith(mesh2D_2,10,1e-12,da1,da2); + CPPUNIT_ASSERT(da1==0); + CPPUNIT_ASSERT_EQUAL(9,da2->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,da2->getNumberOfComponents()); + for(int i=0;i<9;i++) + CPPUNIT_ASSERT_EQUAL(8+i,da2->getIJ(i,0)); + da2->decrRef(); + // + const double vect[3]={1.,0.,0.}; + MEDCouplingUMesh *mesh2D_5=dynamic_cast(mesh2D_4->deepCpy()); + mesh2D_5->translate(vect); + std::vector meshes(3); + meshes[0]=mesh3D_4; meshes[1]=mesh2D_4; meshes[2]=mesh2D_5; + MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes); + CPPUNIT_ASSERT(mesh3D_4->getCoords()==mesh2D_4->getCoords()); + CPPUNIT_ASSERT(mesh2D_4->getCoords()==mesh2D_5->getCoords()); + mesh3D_4->checkCoherency(); mesh2D_4->checkCoherency(); mesh2D_5->checkCoherency(); + CPPUNIT_ASSERT_EQUAL(26,mesh3D_4->getNumberOfNodes()); + CPPUNIT_ASSERT_EQUAL(3,mesh3D_4->getSpaceDimension()); + CPPUNIT_ASSERT_EQUAL(9,mesh3D_4->getNodalConnectivity()->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(23,mesh2D_4->getNodalConnectivity()->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(23,mesh2D_5->getNodalConnectivity()->getNumberOfTuples()); + const int expected2[9]={18,0,1,2,3,4,5,6,7}; + const int expected3[23]={3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12}; + const int expected4[23]={3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21}; + const double expected5[78]={-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1., -0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0., 0.7, -0.3, 0.0, 1.2, -0.3, 0.0, 1.7, -0.3, 0.0, 0.7, 0.2, 0.0, 1.2, 0.2, 0.0, 1.7, 0.2, 0.0, 0.7, 0.7, 0.0, 1.2, 0.7, 0.0, 1.7, 0.7, 0.0}; + CPPUNIT_ASSERT(std::equal(expected2,expected2+9,mesh3D_4->getNodalConnectivity()->getConstPointer())); + CPPUNIT_ASSERT(std::equal(expected3,expected3+23,mesh2D_4->getNodalConnectivity()->getConstPointer())); + CPPUNIT_ASSERT(std::equal(expected4,expected4+23,mesh2D_5->getNodalConnectivity()->getConstPointer())); + for(int i=0;i<78;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected5[i],mesh3D_4->getCoords()->getIJ(0,i),1e-12); + // + MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12); + mesh3D_4->checkCoherency(); mesh2D_4->checkCoherency(); mesh2D_5->checkCoherency(); + CPPUNIT_ASSERT(mesh3D_4->getCoords()==mesh2D_4->getCoords()); + CPPUNIT_ASSERT(mesh2D_4->getCoords()==mesh2D_5->getCoords()); + CPPUNIT_ASSERT_EQUAL(19,mesh3D_4->getNumberOfNodes()); + CPPUNIT_ASSERT_EQUAL(3,mesh3D_4->getSpaceDimension()); + CPPUNIT_ASSERT_EQUAL(9,mesh3D_4->getNodalConnectivity()->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(23,mesh2D_4->getNodalConnectivity()->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(23,mesh2D_5->getNodalConnectivity()->getNumberOfTuples()); + const int expected6[9]={18,0,1,2,3,4,5,6,7}; + const int expected7[23]={3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2}; + const int expected8[23]={3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15}; + const double expected9[57]={-0.3, -0.3, 0., -0.3, 0.2, 0., 0.2, 0.2, 0., 0.2, -0.3, 0., -0.3, -0.3, 1., -0.3, 0.2, 1., + 0.2, 0.2, 1., 0.2, -0.3, 1., 0.7, -0.3, 0., 0.7, 0.2, 0., -0.3, 0.7, 0., 0.2, 0.7, 0., + 0.7, 0.7, 0., 1.2, -0.3, 0., 1.7, -0.3, 0., 1.2, 0.2, 0., 1.7, 0.2, 0., 1.2, 0.7, 0., 1.7, 0.7, 0.}; + CPPUNIT_ASSERT(std::equal(expected6,expected6+9,mesh3D_4->getNodalConnectivity()->getConstPointer())); + CPPUNIT_ASSERT(std::equal(expected7,expected7+23,mesh2D_4->getNodalConnectivity()->getConstPointer())); + CPPUNIT_ASSERT(std::equal(expected8,expected8+23,mesh2D_5->getNodalConnectivity()->getConstPointer())); + for(int i=0;i<57;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected9[i],mesh3D_4->getCoords()->getIJ(0,i),1e-12); + mesh2D_5->decrRef(); + // + mesh3D_4->decrRef(); + mesh2D_4->decrRef(); + mesh3D_2->decrRef(); + mesh2D_2->decrRef(); + // + mesh3D->decrRef(); + mesh2D->decrRef(); +} + +void MEDCouplingBasicsTest5::testComputeNeighborsOfCells1() +{ + MEDCouplingUMesh *m=build2DTargetMesh_1(); + DataArrayInt *d1=0,*d2=0; + m->computeNeighborsOfCells(d1,d2); + CPPUNIT_ASSERT_EQUAL(6,d2->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(10,d1->getNumberOfTuples()); + const int expected1[6]={0,2,4,6,8,10}; + const int expected2[10]={3,1,0,2,4,1,4,0,2,3}; + CPPUNIT_ASSERT(std::equal(expected1,expected1+6,d2->getConstPointer())); + CPPUNIT_ASSERT(std::equal(expected2,expected2+10,d1->getConstPointer())); + d1->decrRef(); + d2->decrRef(); + m->decrRef(); +} + +void MEDCouplingBasicsTest5::testCheckButterflyCellsBug1() +{ + double mesh2DCoords[10]={323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481}; + int mesh2DConn[5]={4,1,0,2,3}; + MEDCouplingUMesh *mesh2D=MEDCouplingUMesh::New("mesh",2); + mesh2D->allocateCells(1); + mesh2D->insertNextCell(INTERP_KERNEL::NORM_POLYGON,5,mesh2DConn); + mesh2D->finishInsertingCells(); + DataArrayDouble *myCoords=DataArrayDouble::New(); + myCoords->alloc(5,2); + std::copy(mesh2DCoords,mesh2DCoords+10,myCoords->getPointer()); + mesh2D->setCoords(myCoords); + myCoords->decrRef(); + mesh2D->checkCoherency(); + // + std::vector v; + mesh2D->checkButterflyCells(v); + CPPUNIT_ASSERT_EQUAL(0,(int)v.size()); + // + mesh2D->decrRef(); +} + +void MEDCouplingBasicsTest5::testDataArrayIntRange1() +{ + DataArrayInt *d=DataArrayInt::Range(2,17,7); + const int expected1[3]={2,9,16}; + CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected1,expected1+3,d->getConstPointer())); + d->decrRef(); + // + d=DataArrayInt::Range(2,23,7); + CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected1,expected1+3,d->getConstPointer())); + d->decrRef(); + // + d=DataArrayInt::Range(2,24,7); + const int expected2[4]={2,9,16,23}; + CPPUNIT_ASSERT_EQUAL(4,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected2,expected2+4,d->getConstPointer())); + d->decrRef(); + // + d=DataArrayInt::Range(24,2,-7); + const int expected3[4]={24,17,10,3}; + CPPUNIT_ASSERT_EQUAL(4,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected3,expected3+4,d->getConstPointer())); + d->decrRef(); + // + d=DataArrayInt::Range(23,2,-7); + const int expected4[3]={23,16,9}; + CPPUNIT_ASSERT_EQUAL(3,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected4,expected4+3,d->getConstPointer())); + d->decrRef(); + // + d=DataArrayInt::Range(23,22,-7); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT_EQUAL(23,d->getIJ(0,0)); + d->decrRef(); + // + d=DataArrayInt::Range(22,23,7); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + CPPUNIT_ASSERT_EQUAL(22,d->getIJ(0,0)); + d->decrRef(); + // + d=DataArrayInt::Range(22,22,7); + CPPUNIT_ASSERT_EQUAL(0,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + d->decrRef(); + // + d=DataArrayInt::Range(22,22,-7); + CPPUNIT_ASSERT_EQUAL(0,d->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,d->getNumberOfComponents()); + d->decrRef(); + // + CPPUNIT_ASSERT_THROW(DataArrayInt::Range(22,23,-7),INTERP_KERNEL::Exception); + CPPUNIT_ASSERT_THROW(DataArrayInt::Range(23,22,7),INTERP_KERNEL::Exception); + CPPUNIT_ASSERT_THROW(DataArrayInt::Range(23,22,0),INTERP_KERNEL::Exception); + CPPUNIT_ASSERT_THROW(DataArrayInt::Range(22,23,0),INTERP_KERNEL::Exception); +} + +void MEDCouplingBasicsTest5::testDataArrayDoubleGetMinMaxPerComponent1() +{ + const double values1[12]={1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.}; + DataArrayDouble *d1=DataArrayDouble::New(); + double *res=new double[2*3]; + CPPUNIT_ASSERT_THROW(d1->getMinMaxPerComponent(res),INTERP_KERNEL::Exception); + d1->alloc(4,3); + std::copy(values1,values1+12,d1->getPointer()); + d1->getMinMaxPerComponent(res); + const double expected1[6]={-0.9,1.3,1.7,2.1,3.,3.}; + for(int i=0;i<6;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected1[i],res[i],1e-14); + delete [] res; + // + d1->rearrange(2); + res=new double[2*2]; + d1->getMinMaxPerComponent(res); + const double expected2[4]={1.,3.,-0.9,3.}; + for(int i=0;i<4;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected2[i],res[i],1e-14); + delete [] res; + // + d1->rearrange(1); + res=new double[2*1]; + d1->getMinMaxPerComponent(res); + const double expected3[2]={-0.9,3.}; + for(int i=0;i<2;i++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(expected3[i],res[i],1e-14); + delete [] res; + d1->decrRef(); +} + +void MEDCouplingBasicsTest5::testDataArrayIntGetHashCode1() +{ + DataArrayInt *d1=DataArrayInt::New(); d1->alloc(3545,1); d1->iota(0); + DataArrayInt *d2=DataArrayInt::New(); d2->alloc(3545,1); d2->iota(0); + // + CPPUNIT_ASSERT_EQUAL(d1->getHashCode(),d2->getHashCode()); + CPPUNIT_ASSERT_EQUAL(232341068,d1->getHashCode()); + d1->setIJ(886,0,6); + CPPUNIT_ASSERT_EQUAL(232340188,d1->getHashCode()); + // + d1->decrRef(); + d2->decrRef(); +} + +void MEDCouplingBasicsTest5::testZipConnectivityPol1() +{ + MEDCouplingUMesh *m1=build2DTargetMesh_1(); + const int cells1[3]={2,3,4}; + MEDCouplingPointSet *m2_1=m1->buildPartOfMySelf(cells1,cells1+3,true); + MEDCouplingUMesh *m2=dynamic_cast(m2_1); + DataArrayInt *arr=0; + CPPUNIT_ASSERT(m2); + // no permutation policy 0 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,0,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + // no permutation policy 1 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + // no permutation policy 2 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + // some modification into m2 + const int modif1[3]={2,4,5}; + std::copy(modif1,modif1+3,m2->getNodalConnectivity()->getPointer()+1); + //policy 0 fails because cell0 in m2 has same orientation be not same connectivity + const int expected1[3]={5,3,4}; + CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer())); + arr->decrRef(); + //policy 1 succeeds because cell0 in m2 has not exactly the same conn + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + //policy 2 succeeds because cell0 in m2 has same nodes in connectivity + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + //some new modification into m2 + const int modif2[3]={2,5,4}; + std::copy(modif2,modif2+3,m2->getNodalConnectivity()->getPointer()+1); + //policy 0 fails because cell0 in m2 has not exactly the same conn + CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer())); + arr->decrRef(); + //policy 1 fails too because cell0 in m2 has not same orientation + CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,1,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected1,expected1+3,arr->getConstPointer())); + arr->decrRef(); + //policy 2 succeeds because cell0 in m2 has same nodes in connectivity + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr)); + CPPUNIT_ASSERT_EQUAL(3,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells1,cells1+3,arr->getConstPointer())); + arr->decrRef(); + m1->decrRef(); + m2->decrRef(); + // Now 1D + const int cells2[2]={3,2}; + m1=build1DSourceMesh_2(); + m2_1=m1->buildPartOfMySelf(cells2,cells2+2,true); + m2=dynamic_cast(m2_1); + CPPUNIT_ASSERT(m2); + arr=0; + // no permutation policy 0 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,0,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer())); + arr->decrRef(); + // no permutation policy 1 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,1,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer())); + arr->decrRef(); + // no permutation policy 2 + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer())); + arr->decrRef(); + // some modification into m2 + const int modif3[2]={4,3}; + std::copy(modif3,modif3+2,m2->getNodalConnectivity()->getPointer()+1); + //policy 0 fails because cell0 in m2 has not exactly the same conn + const int expected2[2]={4,2}; + CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,0,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected2,expected2+2,arr->getConstPointer())); + arr->decrRef(); + //policy 1 fails too because cell0 in m2 has not same orientation + CPPUNIT_ASSERT(!m1->areCellsIncludedIn(m2,1,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(expected2,expected2+2,arr->getConstPointer())); + arr->decrRef(); + //policy 2 succeeds because cell0 in m2 has same nodes in connectivity + CPPUNIT_ASSERT(m1->areCellsIncludedIn(m2,2,arr)); + CPPUNIT_ASSERT_EQUAL(2,arr->getNumberOfTuples()); + CPPUNIT_ASSERT_EQUAL(1,arr->getNumberOfComponents()); + CPPUNIT_ASSERT(std::equal(cells2,cells2+2,arr->getConstPointer())); + arr->decrRef(); + m1->decrRef(); + m2->decrRef(); +} diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTest5.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTest5.hxx index 8be6bfed6..e0d63f2e1 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTest5.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTest5.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -45,6 +45,15 @@ namespace ParaMEDMEM CPPUNIT_TEST( testBuildDescendingConnec2Of3DMesh1 ); CPPUNIT_TEST( testAre2DCellsNotCorrectlyOriented1 ); CPPUNIT_TEST( testDataArrayAbs1 ); + CPPUNIT_TEST( testGetValueOn3 ); + CPPUNIT_TEST( testGetNodeIdsOfCell2 ); + CPPUNIT_TEST( testRenumberNodesInConn1 ); + CPPUNIT_TEST( testComputeNeighborsOfCells1 ); + CPPUNIT_TEST( testCheckButterflyCellsBug1 ); + CPPUNIT_TEST( testDataArrayIntRange1 ); + CPPUNIT_TEST( testDataArrayDoubleGetMinMaxPerComponent1 ); + CPPUNIT_TEST( testDataArrayIntGetHashCode1 ); + CPPUNIT_TEST( testZipConnectivityPol1 ); CPPUNIT_TEST_SUITE_END(); public: void testUMeshTessellate2D1(); @@ -57,6 +66,15 @@ namespace ParaMEDMEM void testBuildDescendingConnec2Of3DMesh1(); void testAre2DCellsNotCorrectlyOriented1(); void testDataArrayAbs1(); + void testGetValueOn3(); + void testGetNodeIdsOfCell2(); + void testRenumberNodesInConn1(); + void testComputeNeighborsOfCells1(); + void testCheckButterflyCellsBug1(); + void testDataArrayIntRange1(); + void testDataArrayDoubleGetMinMaxPerComponent1(); + void testDataArrayIntGetHashCode1(); + void testZipConnectivityPol1(); }; } diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTestData1.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTestData1.hxx index ce11c4433..14541f4cf 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTestData1.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTestData1.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx b/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx index 3194bf28c..33c4a793d 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.hxx b/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.hxx index 671cac720..96a6781eb 100644 --- a/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.hxx +++ b/src/MEDCoupling/Test/MEDCouplingBasicsTestInterp.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx b/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx index ac14dfe68..032beb403 100644 --- a/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx +++ b/src/MEDCoupling/Test/MEDCouplingExamplesTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -43,7 +43,6 @@ void CppExampleFieldDoubleBuildSubPart1() ParaMEDMEM::MEDCouplingFieldDouble *f2=f1->buildSubPart(part1,part1+3); //! [CppSnippetFieldDoubleBuildSubPart1_2] f2->zipCoords(); - const double expected1[6]={5.,105.,4.,104.,7.,107.}; CPPUNIT_ASSERT_EQUAL(3,f2->getMesh()->getNumberOfCells()); CPPUNIT_ASSERT_EQUAL(6,f2->getMesh()->getNumberOfNodes()); CPPUNIT_ASSERT_EQUAL(2,f2->getMesh()->getSpaceDimension()); diff --git a/src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx b/src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx index 3bbb7e2e4..e348d8e51 100644 --- a/src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx +++ b/src/MEDCoupling/Test/MEDCouplingRemapperTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -1234,3 +1234,40 @@ MEDCouplingUMesh *MEDCouplingRemapperTest::build3DExtrudedUMesh_1(MEDCouplingUMe myCoords->decrRef(); return ret; } + +void MEDCouplingRemapperTest::testPartialTransfer1() +{ + MEDCouplingRemapper remapper; + MEDCouplingUMesh *sourceMesh=build1DTargetMesh_2(); + MEDCouplingUMesh *targetMesh=MEDCouplingBasicsTest::build2DTargetMesh_1(); + remapper.setIntersectionType(INTERP_KERNEL::PointLocator); + CPPUNIT_ASSERT_EQUAL(1,remapper.prepare(sourceMesh,targetMesh,"P0P0")); + MEDCouplingFieldDouble *srcField=MEDCouplingFieldDouble::New(ON_CELLS); + srcField->setNature(ConservativeVolumic); + srcField->setMesh(sourceMesh); + DataArrayDouble *array=DataArrayDouble::New(); + array->alloc(sourceMesh->getNumberOfCells(),1); + srcField->setArray(array); + double *ptr=array->getPointer(); + for(int i=0;igetNumberOfCells();i++) + ptr[i]=(double)(i+7); + array->decrRef(); + MEDCouplingFieldDouble *trgField=MEDCouplingFieldDouble::New(ON_CELLS); + trgField->setNature(ConservativeVolumic); + trgField->setMesh(targetMesh); + array=DataArrayDouble::New(); + array->alloc(targetMesh->getNumberOfCells(),1); + ptr=array->getPointer(); + std::fill(ptr,ptr+targetMesh->getNumberOfCells(),96.3); + trgField->setArray(array); + array->decrRef(); + remapper.partialTransfer(srcField,trgField); + const double valuesExpected9[5]={10.,8.,7.,96.3,10.}; + const double *values=trgField->getArray()->getConstPointer(); + for(int i0=0;i0<5;i0++) + CPPUNIT_ASSERT_DOUBLES_EQUAL(valuesExpected9[i0],values[i0],1e-12); + trgField->decrRef(); + srcField->decrRef(); + sourceMesh->decrRef(); + targetMesh->decrRef(); +} diff --git a/src/MEDCoupling/Test/MEDCouplingRemapperTest.hxx b/src/MEDCoupling/Test/MEDCouplingRemapperTest.hxx index 5085cda9a..44c4bc312 100644 --- a/src/MEDCoupling/Test/MEDCouplingRemapperTest.hxx +++ b/src/MEDCoupling/Test/MEDCouplingRemapperTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -41,6 +41,7 @@ namespace ParaMEDMEM CPPUNIT_TEST( testExtruded ); CPPUNIT_TEST( testExtruded2 ); CPPUNIT_TEST( testPrepareEx1 ); + CPPUNIT_TEST( testPartialTransfer1 ); CPPUNIT_TEST_SUITE_END(); public: void test2DInterpP0P0_1(); @@ -52,6 +53,7 @@ namespace ParaMEDMEM void testExtruded(); void testExtruded2(); void testPrepareEx1(); + void testPartialTransfer1(); private: static MEDCouplingUMesh *build1DTargetMesh_2(); static MEDCouplingUMesh *build2DTargetMesh_3(); diff --git a/src/MEDCoupling/Test/Makefile.am b/src/MEDCoupling/Test/Makefile.am index 22fd4a8b6..1e0cd1d0c 100755 --- a/src/MEDCoupling/Test/Makefile.am +++ b/src/MEDCoupling/Test/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/TestMEDCoupling.cxx b/src/MEDCoupling/Test/TestMEDCoupling.cxx index 27407cdd4..50ba03493 100644 --- a/src/MEDCoupling/Test/TestMEDCoupling.cxx +++ b/src/MEDCoupling/Test/TestMEDCoupling.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling/Test/TestMEDCouplingRemapper.cxx b/src/MEDCoupling/Test/TestMEDCouplingRemapper.cxx index 007041a5f..35ff00828 100644 --- a/src/MEDCoupling/Test/TestMEDCouplingRemapper.cxx +++ b/src/MEDCoupling/Test/TestMEDCouplingRemapper.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDCouplingCorba/CMakeLists.txt b/src/MEDCouplingCorba/CMakeLists.txt index 0cf4b8896..898dfe216 100644 --- a/src/MEDCouplingCorba/CMakeLists.txt +++ b/src/MEDCouplingCorba/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCouplingCorba/Client/CMakeLists.txt b/src/MEDCouplingCorba/Client/CMakeLists.txt index ac7c16d01..d3e8b7e76 100644 --- a/src/MEDCouplingCorba/Client/CMakeLists.txt +++ b/src/MEDCouplingCorba/Client/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCouplingCorba/Test/CMakeLists.txt b/src/MEDCouplingCorba/Test/CMakeLists.txt index dc396e006..f13326f5c 100644 --- a/src/MEDCouplingCorba/Test/CMakeLists.txt +++ b/src/MEDCouplingCorba/Test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCouplingCorba_Swig/CMakeLists.txt b/src/MEDCouplingCorba_Swig/CMakeLists.txt index 8ae48166a..c8bddc650 100644 --- a/src/MEDCouplingCorba_Swig/CMakeLists.txt +++ b/src/MEDCouplingCorba_Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCouplingCorba_Swig/Client/CMakeLists.txt b/src/MEDCouplingCorba_Swig/Client/CMakeLists.txt index f707dd7f5..afee9be39 100644 --- a/src/MEDCouplingCorba_Swig/Client/CMakeLists.txt +++ b/src/MEDCouplingCorba_Swig/Client/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling_Swig/CMakeLists.txt b/src/MEDCoupling_Swig/CMakeLists.txt index 1490d516d..9b3bdf02d 100644 --- a/src/MEDCoupling_Swig/CMakeLists.txt +++ b/src/MEDCoupling_Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling_Swig/MEDCoupling.i b/src/MEDCoupling_Swig/MEDCoupling.i index bfc770e22..95568c7f7 100644 --- a/src/MEDCoupling_Swig/MEDCoupling.i +++ b/src/MEDCoupling_Swig/MEDCoupling.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -137,6 +137,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayInt::getIdsNotEqual; %newobject ParaMEDMEM::DataArrayInt::getIdsEqualList; %newobject ParaMEDMEM::DataArrayInt::getIdsNotEqualList; +%newobject ParaMEDMEM::DataArrayInt::negate; %newobject ParaMEDMEM::DataArrayInt::Aggregate; %newobject ParaMEDMEM::DataArrayInt::Meld; %newobject ParaMEDMEM::DataArrayInt::Add; @@ -145,6 +146,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayInt::Divide; %newobject ParaMEDMEM::DataArrayInt::BuildUnion; %newobject ParaMEDMEM::DataArrayInt::BuildIntersection; +%newobject ParaMEDMEM::DataArrayInt::Range; %newobject ParaMEDMEM::DataArrayInt::fromNoInterlace; %newobject ParaMEDMEM::DataArrayInt::toNoInterlace; %newobject ParaMEDMEM::DataArrayInt::buildComplement; @@ -155,7 +157,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayInt::buildExplicitArrByRanges; %newobject ParaMEDMEM::DataArrayInt::buildPermutationArr; %newobject ParaMEDMEM::DataArrayInt::buildPermArrPerLevel; -%newobject ParaMEDMEM::DataArrayInt::__getitem__; +%newobject ParaMEDMEM::DataArrayInt::__neg__; %newobject ParaMEDMEM::DataArrayInt::__add__; %newobject ParaMEDMEM::DataArrayInt::__radd__; %newobject ParaMEDMEM::DataArrayInt::__sub__; @@ -166,6 +168,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayInt::__rdiv__; %newobject ParaMEDMEM::DataArrayInt::__mod__; %newobject ParaMEDMEM::DataArrayInt::__rmod__; +%newobject ParaMEDMEM::DataArrayIntTuple::buildDAInt; %newobject ParaMEDMEM::DataArrayDouble::New; %newobject ParaMEDMEM::DataArrayDouble::__iter__; %newobject ParaMEDMEM::DataArrayDouble::convertToIntArr; @@ -187,6 +190,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayDouble::selectByTupleIdSafe; %newobject ParaMEDMEM::DataArrayDouble::selectByTupleId2; %newobject ParaMEDMEM::DataArrayDouble::selectByTupleRanges; +%newobject ParaMEDMEM::DataArrayDouble::negate; %newobject ParaMEDMEM::DataArrayDouble::applyFunc; %newobject ParaMEDMEM::DataArrayDouble::applyFunc2; %newobject ParaMEDMEM::DataArrayDouble::applyFunc3; @@ -208,7 +212,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayDouble::fromCylToCart; %newobject ParaMEDMEM::DataArrayDouble::fromSpherToCart; %newobject ParaMEDMEM::DataArrayDouble::getDifferentValues; -%newobject ParaMEDMEM::DataArrayDouble::__getitem__; +%newobject ParaMEDMEM::DataArrayDouble::__neg__; %newobject ParaMEDMEM::DataArrayDouble::__add__; %newobject ParaMEDMEM::DataArrayDouble::__radd__; %newobject ParaMEDMEM::DataArrayDouble::__sub__; @@ -217,6 +221,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::DataArrayDouble::__rmul__; %newobject ParaMEDMEM::DataArrayDouble::__div__; %newobject ParaMEDMEM::DataArrayDouble::__rdiv__; +%newobject ParaMEDMEM::DataArrayDoubleTuple::buildDADouble; %newobject ParaMEDMEM::MEDCouplingMesh::deepCpy; %newobject ParaMEDMEM::MEDCouplingMesh::checkTypeConsistencyAndContig; %newobject ParaMEDMEM::MEDCouplingMesh::getCoordinatesAndOwner; @@ -240,6 +245,7 @@ using namespace INTERP_KERNEL; %newobject ParaMEDMEM::MEDCouplingUMesh::getNodalConnectivityIndex; %newobject ParaMEDMEM::MEDCouplingUMesh::clone; %newobject ParaMEDMEM::MEDCouplingUMesh::__iter__; +%newobject ParaMEDMEM::MEDCouplingUMesh::__getitem__; %newobject ParaMEDMEM::MEDCouplingUMesh::cellsByType; %newobject ParaMEDMEM::MEDCouplingUMesh::zipConnectivityTraducer; %newobject ParaMEDMEM::MEDCouplingUMesh::buildDescendingConnectivity; @@ -422,10 +428,8 @@ namespace ParaMEDMEM int getCellContainingPoint(PyObject *p, double eps) const throw(INTERP_KERNEL::Exception) { int sz; - double *pos=convertPyToNewDblArr2(p,&sz); - int ret=self->getCellContainingPoint(pos,eps); - delete [] pos; - return ret; + INTERP_KERNEL::AutoPtr pos=convertPyToNewDblArr2(p,&sz); + return self->getCellContainingPoint(pos,eps); } PyObject *getCellsContainingPoints(PyObject *p, int nbOfPoints, double eps) const throw(INTERP_KERNEL::Exception) @@ -525,18 +529,16 @@ namespace ParaMEDMEM void scale(PyObject *point, double factor) throw(INTERP_KERNEL::Exception) { int sz; - double *p=convertPyToNewDblArr2(point,&sz); + INTERP_KERNEL::AutoPtr p=convertPyToNewDblArr2(point,&sz); self->scale(p,factor); - delete [] p; } PyObject *getBoundingBox() const throw(INTERP_KERNEL::Exception) { int spaceDim=self->getSpaceDimension(); - double *tmp=new double[2*spaceDim]; + INTERP_KERNEL::AutoPtr tmp=new double[2*spaceDim]; self->getBoundingBox(tmp); PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,spaceDim); - delete [] tmp; return ret; } @@ -631,6 +633,12 @@ namespace ParaMEDMEM { int sz; INTERP_KERNEL::AutoPtr v=convertPyToNewDblArr2(vector,&sz); + if(sz!=self->getSpaceDimension()) + { + std::ostringstream oss; oss << "Python wrap of MEDCouplingPointSet::translate : the space dimension is " << self->getSpaceDimension() << " and the input array size is " << sz; + oss << " ! The size of the input list or tuple must be equal to " << self->getSpaceDimension() << " !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } self->translate(v); } @@ -655,6 +663,13 @@ namespace ParaMEDMEM PyList_SetItem(res,i,PyInt_FromLong(*iL)); return res; } + + static MEDCouplingMesh *MergeMeshes(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector tmp; + convertPyObjToVecMeshesCst(li,tmp); + return MEDCouplingMesh::MergeMeshes(tmp); + } } }; } @@ -803,7 +818,7 @@ namespace ParaMEDMEM void renumberNodes(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -822,7 +837,7 @@ namespace ParaMEDMEM void renumberNodes2(PyObject *li, int newNbOfNodes) throw(INTERP_KERNEL::Exception) { void *da=0; - int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); if (!SWIG_IsOK(res1)) { int size; @@ -843,13 +858,11 @@ namespace ParaMEDMEM std::vector nodes; int spaceDim=self->getSpaceDimension(); int sz1,sz2; - double *p=convertPyToNewDblArr2(pt,&sz1); - double *v=convertPyToNewDblArr2(vec,&sz2); + INTERP_KERNEL::AutoPtr p=convertPyToNewDblArr2(pt,&sz1); + INTERP_KERNEL::AutoPtr v=convertPyToNewDblArr2(vec,&sz2); if(sz1!=spaceDim || sz2!=spaceDim) throw INTERP_KERNEL::Exception("Mismatch of spaceDimension and the length of the input array point and vector !"); self->findNodesOnLine(p,v,eps,nodes); - delete [] v; - delete [] p; DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)nodes.size(),1); std::copy(nodes.begin(),nodes.end(),ret->getPointer()); @@ -859,11 +872,9 @@ namespace ParaMEDMEM { std::vector nodes; int sz; - double *p=convertPyToNewDblArr2(pt,&sz); - double *v=convertPyToNewDblArr2(vec,&sz); + INTERP_KERNEL::AutoPtr p=convertPyToNewDblArr2(pt,&sz); + INTERP_KERNEL::AutoPtr v=convertPyToNewDblArr2(vec,&sz); self->findNodesOnPlane(p,v,eps,nodes); - delete [] v; - delete [] p; DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)nodes.size(),1); std::copy(nodes.begin(),nodes.end(),ret->getPointer()); @@ -908,9 +919,8 @@ namespace ParaMEDMEM { std::vector elems; int size; - double *tmp=convertPyToNewDblArr2(bbox,&size); + INTERP_KERNEL::AutoPtr tmp=convertPyToNewDblArr2(bbox,&size); self->getCellsInBoundingBox(tmp,eps,elems); - delete [] tmp; DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)elems.size(),1); std::copy(elems.begin(),elems.end(),ret->getPointer()); @@ -920,25 +930,21 @@ namespace ParaMEDMEM static void Rotate2DAlg(PyObject *center, double angle, int nbNodes, PyObject *coords) throw(INTERP_KERNEL::Exception) { int sz; - double *c=convertPyToNewDblArr2(center,&sz); - double *coo=convertPyToNewDblArr2(coords,&sz); + INTERP_KERNEL::AutoPtr c=convertPyToNewDblArr2(center,&sz); + INTERP_KERNEL::AutoPtr coo=convertPyToNewDblArr2(coords,&sz); ParaMEDMEM::MEDCouplingPointSet::Rotate2DAlg(c,angle,nbNodes,coo); for(int i=0;i c=convertPyToNewDblArr2(center,&sz); + INTERP_KERNEL::AutoPtr coo=convertPyToNewDblArr2(coords,&sz); double *v=convertPyToNewDblArr2(vect,&sz2); ParaMEDMEM::MEDCouplingPointSet::Rotate3DAlg(c,v,angle,nbNodes,coo); for(int i=0;i getQuadraticStatus() const throw(INTERP_KERNEL::Exception); DataArrayInt *findCellsIdsOnBoundary() const throw(INTERP_KERNEL::Exception); bool checkConsecutiveCellTypes() const throw(INTERP_KERNEL::Exception); @@ -1088,12 +1095,82 @@ namespace ParaMEDMEM return self->cellIterator(); } + MEDCouplingPointSet *__getitem__(PyObject *listOrDataArrI) throw(INTERP_KERNEL::Exception) + { + int sw; + int singleVal; + std::vector multiVal; + std::pair > slic; + ParaMEDMEM::DataArrayInt *daIntTyypp=0; + int nbc=self->getNumberOfCells(); + convertObjToPossibleCpp2(listOrDataArrI,nbc,sw,singleVal,multiVal,slic,daIntTyypp); + switch(sw) + { + case 1: + { + if(singleVal>=nbc) + { + std::ostringstream oss; + oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(singleVal>=0) + return self->buildPartOfMySelf(&singleVal,&singleVal+1,true); + else + { + if(nbc+singleVal>0) + { + int tmp=nbc+singleVal; + return self->buildPartOfMySelf(&tmp,&tmp+1,true); + } + else + { + std::ostringstream oss; + oss << "Requesting for cell id " << singleVal << " having only " << nbc << " cells !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + } + } + case 2: + { + return static_cast(self->buildPartOfMySelf(&multiVal[0],&multiVal[0]+multiVal.size(),true)); + } + case 3: + { + MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::Range(slic.first,slic.second.first,slic.second.second); + return self->buildPartOfMySelf(d0->begin(),d0->end(),true); + } + case 4: + { + if(!daIntTyypp) + throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : null instance has been given in input !"); + daIntTyypp->checkAllocated(); + return self->buildPartOfMySelf(daIntTyypp->begin(),daIntTyypp->end(),true); + } + default: + throw INTERP_KERNEL::Exception("MEDCouplingUMesh::__getitem__ : unrecognized type in input ! Possibilities are : int, list or tuple of int DataArrayInt instance !"); + } + } + void insertNextCell(INTERP_KERNEL::NormalizedCellType type, int size, PyObject *li) throw(INTERP_KERNEL::Exception) { int sz; INTERP_KERNEL::AutoPtr tmp=convertPyToNewIntArr2(li,&sz); + if(size>sz) + { + std::ostringstream oss; oss << "Wrap of MEDCouplingUMesh::insertNextCell : request of connectivity with length " << size << " whereas the length of input is " << sz << " !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } self->insertNextCell(type,size,tmp); } + + void insertNextCell(INTERP_KERNEL::NormalizedCellType type, PyObject *li) throw(INTERP_KERNEL::Exception) + { + int sz; + INTERP_KERNEL::AutoPtr tmp=convertPyToNewIntArr2(li,&sz); + self->insertNextCell(type,sz,tmp); + } + DataArrayInt *getNodalConnectivity() throw(INTERP_KERNEL::Exception) { DataArrayInt *ret=self->getNodalConnectivity(); @@ -1139,10 +1216,10 @@ namespace ParaMEDMEM PyList_SetItem(res,2,SWIG_From_int(ret2)); return res; } - PyObject *checkButterflyCells() throw(INTERP_KERNEL::Exception) + PyObject *checkButterflyCells(double eps=1e-12) throw(INTERP_KERNEL::Exception) { std::vector cells; - self->checkButterflyCells(cells); + self->checkButterflyCells(cells,eps); DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)cells.size(),1); std::copy(cells.begin(),cells.end(),ret->getPointer()); @@ -1183,6 +1260,26 @@ namespace ParaMEDMEM return ret; } + void renumberNodesInConn(PyObject *li) throw(INTERP_KERNEL::Exception) + { + void *da=0; + int res1=SWIG_ConvertPtr(li,&da,SWIGTYPE_p_ParaMEDMEM__DataArrayInt, 0 | 0 ); + if (!SWIG_IsOK(res1)) + { + int size; + INTERP_KERNEL::AutoPtr tmp=convertPyToNewIntArr2(li,&size); + self->renumberNodesInConn(tmp); + } + else + { + DataArrayInt *da2=reinterpret_cast< DataArrayInt * >(da); + if(!da2) + throw INTERP_KERNEL::Exception("Not null DataArrayInt instance expected !"); + da2->checkAllocated(); + self->renumberNodesInConn(da2->getConstPointer()); + } + } + PyObject *getLevArrPerCellTypes(PyObject *li) const throw(INTERP_KERNEL::Exception) { int sz; @@ -1220,21 +1317,26 @@ namespace ParaMEDMEM return ret; } + static void PutUMeshesOnSameAggregatedCoords(PyObject *ms) throw(INTERP_KERNEL::Exception) + { + std::vector meshes; + convertPyObjToVecUMeshes(ms,meshes); + MEDCouplingUMesh::PutUMeshesOnSameAggregatedCoords(meshes); + } + + static void MergeNodesOnUMeshesSharingSameCoords(PyObject *ms, double eps) throw(INTERP_KERNEL::Exception) + { + std::vector meshes; + convertPyObjToVecUMeshes(ms,meshes); + MEDCouplingUMesh::MergeNodesOnUMeshesSharingSameCoords(meshes,eps); + } + PyObject *are2DCellsNotCorrectlyOriented(PyObject *vec, bool polyOnly) const throw(INTERP_KERNEL::Exception) { std::vector cells; int sz; - double *v=convertPyToNewDblArr2(vec,&sz); - try - { - self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells); - } - catch(INTERP_KERNEL::Exception& e) - { - delete [] v; - throw e; - } - delete [] v; + INTERP_KERNEL::AutoPtr v=convertPyToNewDblArr2(vec,&sz); + self->are2DCellsNotCorrectlyOriented(v,polyOnly,cells); DataArrayInt *ret=DataArrayInt::New(); ret->alloc((int)cells.size(),1); std::copy(cells.begin(),cells.end(),ret->getPointer()); @@ -1244,17 +1346,8 @@ namespace ParaMEDMEM void orientCorrectly2DCells(PyObject *vec, bool polyOnly) throw(INTERP_KERNEL::Exception) { int sz; - double *v=convertPyToNewDblArr2(vec,&sz); - try - { - self->orientCorrectly2DCells(v,polyOnly); - } - catch(INTERP_KERNEL::Exception& e) - { - delete [] v; - throw e; - } - delete [] v; + INTERP_KERNEL::AutoPtr v=convertPyToNewDblArr2(vec,&sz); + self->orientCorrectly2DCells(v,polyOnly); } PyObject *arePolyhedronsNotCorrectlyOriented() const throw(INTERP_KERNEL::Exception) @@ -1347,6 +1440,16 @@ namespace ParaMEDMEM return ret; } + PyObject *computeNeighborsOfCells() const throw(INTERP_KERNEL::Exception) + { + DataArrayInt *neighbors=0,*neighborsIdx=0; + self->computeNeighborsOfCells(neighbors,neighborsIdx); + PyObject *ret=PyTuple_New(2); + PyTuple_SetItem(ret,0,SWIG_NewPointerObj(SWIG_as_voidptr(neighbors),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(neighborsIdx),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); + return ret; + } + PyObject *emulateMEDMEMBDC(const MEDCouplingUMesh *nM1LevMesh) { MEDCouplingAutoRefCountObjectPtr d0=DataArrayInt::New(); @@ -1519,7 +1622,8 @@ namespace ParaMEDMEM int pos1; std::vector pos2; DataArrayInt *pos3=0; - convertObjToPossibleCpp1(li,sw,pos1,pos2,pos3); + DataArrayIntTuple *pos4=0; + convertObjToPossibleCpp1(li,sw,pos1,pos2,pos3,pos4); switch(sw) { case 1: @@ -1553,7 +1657,7 @@ namespace ParaMEDMEM class MEDCouplingExtrudedMesh : public ParaMEDMEM::MEDCouplingMesh { public: - static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); + static MEDCouplingExtrudedMesh *New(const MEDCouplingUMesh *mesh3D, const MEDCouplingUMesh *mesh2D, int cell2DId) throw(INTERP_KERNEL::Exception); MEDCouplingUMesh *build3DUnstructuredMesh() const throw(INTERP_KERNEL::Exception); %extend { std::string __str__() const @@ -1649,6 +1753,11 @@ namespace ParaMEDMEM { return self->doubleValue(); } + + DataArrayDouble *buildDADouble() + { + return self->buildDADouble(1,self->getNumberOfCompo()); + } PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) { @@ -1868,6 +1977,103 @@ namespace ParaMEDMEM %extend ParaMEDMEM::DataArrayDouble { + static DataArrayDouble *New(PyObject *elt0, PyObject *elt1=0, PyObject *elt2=0) throw(INTERP_KERNEL::Exception) + { + const char *msg="ParaMEDMEM::DataArrayDouble::New : Available API are : \n-DataArrayDouble.New()\n--DataArrayDouble.New([1.,3.,4.])\n-DataArrayDouble.New([1.,3.,4.],3)\n-DataArrayDouble.New([1.,3.,4.,5.],2,2)\n-DataArrayDouble.New(5)\n-DataArrayDouble.New(5,2) !"; + if(PyList_Check(elt0) || PyTuple_Check(elt0)) + { + if(elt1) + { + if(PyInt_Check(elt1)) + { + int nbOfTuples=PyInt_AS_LONG(elt1); + if(nbOfTuples<0) + throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive set of allocated memory !"); + if(elt2) + { + if(PyInt_Check(elt2)) + {//DataArrayDouble.New([1.,3.,4.,5.],2,2) + int nbOfCompo=PyInt_AS_LONG(elt2); + if(nbOfCompo<0) + throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive number of components !"); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); + double *tmp=new double[nbOfTuples*nbOfCompo]; + try { fillArrayWithPyListDbl(elt0,tmp,nbOfTuples*nbOfCompo,0.,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,nbOfCompo); + ret->incrRef(); + return ret; + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {//DataArrayDouble.New([1.,3.,4.],3) + MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); + double *tmp=new double[nbOfTuples]; + try { fillArrayWithPyListDbl(elt0,tmp,nbOfTuples,0.,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,1); + ret->incrRef(); + return ret; + } + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {// DataArrayDouble.New([1.,3.,4.]) + int szz=-1; + if(PyList_Check(elt0)) + szz=PyList_Size(elt0); + else + szz=PyTuple_Size(elt0); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); + double *tmp=new double[szz]; + try { fillArrayWithPyListDbl(elt0,tmp,szz,0.,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,szz,1); + ret->incrRef(); + return ret; + } + } + else if(PyInt_Check(elt0)) + { + int nbOfTuples=PyInt_AS_LONG(elt0); + if(nbOfTuples<0) + throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive set of allocated memory !"); + if(elt1) + { + if(!elt2) + { + if(PyInt_Check(elt1)) + {//DataArrayDouble.New(5,2) + int nbOfCompo=PyInt_AS_LONG(elt1); + if(nbOfCompo<0) + throw INTERP_KERNEL::Exception("DataArrayDouble::New : should be a positive number of components !"); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); + ret->alloc(nbOfTuples,nbOfCompo); + ret->incrRef(); + return ret; + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {//DataArrayDouble.New(5) + MEDCouplingAutoRefCountObjectPtr ret=DataArrayDouble::New(); + ret->alloc(nbOfTuples,1); + ret->incrRef(); + return ret; + } + } + else + throw INTERP_KERNEL::Exception(msg); + } + std::string __str__() const { return self->repr(); @@ -1900,7 +2106,7 @@ namespace ParaMEDMEM double *tmp=new double[nbOfTuples*nbOfElsPerTuple]; try { - fillArrayWithPyListDbl(li,tmp,nbOfTuples*nbOfElsPerTuple,0.); + fillArrayWithPyListDbl(li,tmp,nbOfTuples*nbOfElsPerTuple,0.,false); } catch(INTERP_KERNEL::Exception& e) { @@ -2149,22 +2355,21 @@ namespace ParaMEDMEM return ret; } + PyObject *getMinMaxPerComponent() const throw(INTERP_KERNEL::Exception) + { + int nbOfCompo=self->getNumberOfComponents(); + INTERP_KERNEL::AutoPtr tmp=new double[2*nbOfCompo]; + self->getMinMaxPerComponent(tmp); + PyObject *ret=convertDblArrToPyListOfTuple(tmp,2,nbOfCompo); + return ret; + } + PyObject *accumulate() const throw(INTERP_KERNEL::Exception) { int sz=self->getNumberOfComponents(); - double *tmp=new double[sz]; - try - { - self->accumulate(tmp); - } - catch(INTERP_KERNEL::Exception& e) - { - delete [] tmp; - throw e; - } - PyObject *ret=convertDblArrToPyList(tmp,sz); - delete [] tmp; - return ret; + INTERP_KERNEL::AutoPtr tmp=new double[sz]; + self->accumulate(tmp); + return convertDblArrToPyList(tmp,sz); } DataArrayDouble *keepSelectedComponents(PyObject *li) const throw(INTERP_KERNEL::Exception) @@ -2220,9 +2425,9 @@ namespace ParaMEDMEM return self->selectByTupleRanges(ranges); } - DataArrayDouble *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) + PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - const char msg[]="Unexpected situation in __getitem__ !"; + const char msg[]="Unexpected situation in DataArrayDouble::__getitem__ !"; self->checkAllocated(); int nbOfTuples=self->getNumberOfTuples(); int nbOfComponents=self->getNumberOfComponents(); @@ -2236,56 +2441,54 @@ namespace ParaMEDMEM switch(sw) { case 1: - return self->selectByTupleIdSafe(&it1,&it1+1); + if(nbOfComponents==1) + return PyFloat_FromDouble(self->getIJSafe(it1,0)); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&it1,&it1+1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); case 2: - return self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size())),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); case 3: - return self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); case 4: - return self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems())),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); case 5: - { - ret=self->selectByTupleIdSafe(&it1,&it1+1); - std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); - } + return PyFloat_FromDouble(self->getIJSafe(it1,ic1)); case 6: { ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 7: { ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 8: { ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 9: { ret=self->selectByTupleIdSafe(&it1,&it1+1); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 10: { ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 11: { ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 12: { ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 13: { @@ -2294,7 +2497,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 14: { @@ -2303,7 +2506,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 15: { @@ -2312,7 +2515,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } case 16: { @@ -2321,7 +2524,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ); } default: throw INTERP_KERNEL::Exception(msg); @@ -2682,13 +2885,20 @@ namespace ParaMEDMEM return self; } + DataArrayDouble *__neg__() const throw(INTERP_KERNEL::Exception) + { + return self->negate(); + } + DataArrayDouble *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception) { const char msg[]="Unexpected situation in __add__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2702,6 +2912,11 @@ namespace ParaMEDMEM { return DataArrayDouble::Add(self,a); } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Add(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2712,8 +2927,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __radd__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2723,6 +2940,11 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Add(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2733,8 +2955,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __iadd__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2747,6 +2971,18 @@ namespace ParaMEDMEM self->addEqual(a); return self; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + self->addEqual(aaa); + return self; + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + self->addEqual(aaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2757,8 +2993,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __sub__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2772,6 +3010,16 @@ namespace ParaMEDMEM { return DataArrayDouble::Substract(self,a); } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Substract(self,aaa); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Substract(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2782,8 +3030,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __rsub__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2793,6 +3043,16 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Substract(aaa,self); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Substract(aaa,self); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2803,8 +3063,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __isub__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2817,6 +3079,18 @@ namespace ParaMEDMEM self->substractEqual(a); return self; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + self->substractEqual(aaa); + return self; + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + self->substractEqual(aaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2827,8 +3101,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __mul__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2842,6 +3118,16 @@ namespace ParaMEDMEM { return DataArrayDouble::Multiply(self,a); } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Multiply(self,aaa); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Multiply(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2852,8 +3138,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __rmul__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2863,6 +3151,16 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Multiply(self,aaa); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Multiply(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2873,8 +3171,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __imul__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2887,6 +3187,18 @@ namespace ParaMEDMEM self->multiplyEqual(a); return self; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + self->multiplyEqual(aaa); + return self; + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + self->multiplyEqual(aaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2897,8 +3209,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __div__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2914,6 +3228,16 @@ namespace ParaMEDMEM { return DataArrayDouble::Divide(self,a); } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Divide(self,aaa); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Divide(self,aaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2924,8 +3248,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __rdiv__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2935,6 +3261,16 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + return DataArrayDouble::Divide(aaa,self); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + return DataArrayDouble::Divide(aaa,self); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2945,8 +3281,10 @@ namespace ParaMEDMEM const char msg[]="Unexpected situation in __imul__ !"; double val; DataArrayDouble *a; + DataArrayDoubleTuple *aa; + std::vector bb; int sw; - convertObjToPossibleCpp5(obj,sw,val,a); + convertObjToPossibleCpp5(obj,sw,val,a,aa,bb); switch(sw) { case 1: @@ -2961,6 +3299,18 @@ namespace ParaMEDMEM self->divideEqual(a); return self; } + case 3: + { + MEDCouplingAutoRefCountObjectPtr aaa=aa->buildDADouble(1,self->getNumberOfComponents()); + self->divideEqual(aaa); + return self; + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaa=DataArrayDouble::New(); aaa->useArray(&bb[0],false,CPP_DEALLOC,1,(int)bb.size()); + self->divideEqual(aaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -2978,6 +3328,11 @@ namespace ParaMEDMEM { return self->intValue(); } + + DataArrayInt *buildDAInt() + { + return self->buildDAInt(1,self->getNumberOfCompo()); + } PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) { @@ -3213,6 +3568,103 @@ namespace ParaMEDMEM %extend ParaMEDMEM::DataArrayInt { + static DataArrayInt *New(PyObject *elt0, PyObject *elt1=0, PyObject *elt2=0) throw(INTERP_KERNEL::Exception) + { + const char *msg="ParaMEDMEM::DataArrayInt::New : Available API are : \n-DataArrayInt.New()\n--DataArrayInt.New([1,3,4])\n-DataArrayInt.New([1,3,4],3)\n-DataArrayInt.New([1,3,4,5],2,2)\n-DataArrayInt.New(5)\n-DataArrayInt.New(5,2) !"; + if(PyList_Check(elt0) || PyTuple_Check(elt0)) + { + if(elt1) + { + if(PyInt_Check(elt1)) + { + int nbOfTuples=PyInt_AS_LONG(elt1); + if(nbOfTuples<0) + throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive set of allocated memory !"); + if(elt2) + { + if(PyInt_Check(elt2)) + {//DataArrayInt.New([1,3,4,5],2,2) + int nbOfCompo=PyInt_AS_LONG(elt2); + if(nbOfCompo<0) + throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive number of components !"); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + int *tmp=new int[nbOfTuples*nbOfCompo]; + try { fillArrayWithPyListInt(elt0,tmp,nbOfTuples*nbOfCompo,0,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,nbOfCompo); + ret->incrRef(); + return ret; + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {//DataArrayInt.New([1,3,4],3) + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + int *tmp=new int[nbOfTuples]; + try { fillArrayWithPyListInt(elt0,tmp,nbOfTuples,0,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,nbOfTuples,1); + ret->incrRef(); + return ret; + } + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {// DataArrayInt.New([1,3,4]) + int szz=-1; + if(PyList_Check(elt0)) + szz=PyList_Size(elt0); + else + szz=PyTuple_Size(elt0); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + int *tmp=new int[szz]; + try { fillArrayWithPyListInt(elt0,tmp,szz,0,true); } + catch(INTERP_KERNEL::Exception& e) { delete [] tmp; throw e; } + ret->useArray(tmp,true,CPP_DEALLOC,szz,1); + ret->incrRef(); + return ret; + } + } + else if(PyInt_Check(elt0)) + { + int nbOfTuples=PyInt_AS_LONG(elt0); + if(nbOfTuples<0) + throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive set of allocated memory !"); + if(elt1) + { + if(!elt2) + { + if(PyInt_Check(elt1)) + {//DataArrayInt.New(5,2) + int nbOfCompo=PyInt_AS_LONG(elt1); + if(nbOfCompo<0) + throw INTERP_KERNEL::Exception("DataArrayInt::New : should be a positive number of components !"); + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + ret->alloc(nbOfTuples,nbOfCompo); + ret->incrRef(); + return ret; + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + throw INTERP_KERNEL::Exception(msg); + } + else + {//DataArrayInt.New(5) + MEDCouplingAutoRefCountObjectPtr ret=DataArrayInt::New(); + ret->alloc(nbOfTuples,1); + ret->incrRef(); + return ret; + } + } + else + throw INTERP_KERNEL::Exception(msg); + } + std::string __str__() const { return self->repr(); @@ -3261,7 +3713,7 @@ namespace ParaMEDMEM int *tmp=new int[nbOfTuples*nbOfElsPerTuple]; try { - fillArrayWithPyListInt(li,tmp,nbOfTuples*nbOfElsPerTuple,0); + fillArrayWithPyListInt(li,tmp,nbOfTuples*nbOfElsPerTuple,0,false); } catch(INTERP_KERNEL::Exception& e) { @@ -3635,9 +4087,9 @@ namespace ParaMEDMEM return ret; } - DataArrayInt *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) + PyObject *__getitem__(PyObject *obj) throw(INTERP_KERNEL::Exception) { - const char msg[]="Unexpected situation in __getitem__ !"; + const char msg[]="Unexpected situation in DataArrayInt::__getitem__ !"; self->checkAllocated(); int nbOfTuples=self->getNumberOfTuples(); int nbOfComponents=self->getNumberOfComponents(); @@ -3651,56 +4103,56 @@ namespace ParaMEDMEM switch(sw) { case 1: - return self->selectByTupleIdSafe(&it1,&it1+1); + { + if(nbOfComponents==1) + return PyInt_FromLong(self->getIJSafe(it1,0)); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&it1,&it1+1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + } case 2: - return self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size())),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); case 3: - return self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); case 4: - return self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); + return SWIG_NewPointerObj(SWIG_as_voidptr(self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems())),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); case 5: - { - ret=self->selectByTupleIdSafe(&it1,&it1+1); - std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); - } + return PyInt_FromLong(self->getIJSafe(it1,ic1)); case 6: { ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 7: { ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 8: { ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); std::vector v2(1,ic1); - return ret->keepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 9: { ret=self->selectByTupleIdSafe(&it1,&it1+1); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 10: { ret=self->selectByTupleIdSafe(&vt1[0],&vt1[0]+vt1.size()); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 11: { ret=self->selectByTupleId2(pt1.first,pt1.second.first,pt1.second.second); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 12: { ret=self->selectByTupleIdSafe(dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems()); - return ret->keepSelectedComponents(vc1); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(vc1)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 13: { @@ -3709,7 +4161,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 14: { @@ -3718,7 +4170,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 15: { @@ -3727,7 +4179,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } case 16: { @@ -3736,7 +4188,7 @@ namespace ParaMEDMEM std::vector v2(nbOfComp); for(int i=0;ikeepSelectedComponents(v2); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret->keepSelectedComponents(v2)),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } default: throw INTERP_KERNEL::Exception(msg); @@ -3753,7 +4205,8 @@ namespace ParaMEDMEM int i1; std::vector v1; DataArrayInt *d1=0; - convertObjToPossibleCpp1(value,sw1,i1,v1,d1); + DataArrayIntTuple *dd1=0; + convertObjToPossibleCpp1(value,sw1,i1,v1,d1,dd1); int it1,ic1; std::vector vt1,vc1; std::pair > pt1,pc1; @@ -3777,6 +4230,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,it1,it1+1,1,0,nbOfComponents,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,it1,it1+1,1,0,nbOfComponents,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3797,6 +4254,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),0,nbOfComponents,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),0,nbOfComponents,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3817,6 +4278,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,0,nbOfComponents,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,0,nbOfComponents,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3837,6 +4302,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),0,nbOfComponents,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),0,nbOfComponents,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3857,6 +4326,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,it1,it1+1,1,ic1,ic1+1,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,it1,it1+1,1,ic1,ic1+1,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3877,6 +4350,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),ic1,ic1+1,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),ic1,ic1+1,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3897,6 +4374,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,ic1,ic1+1,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,ic1,ic1+1,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3917,6 +4398,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),ic1,ic1+1,1); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),ic1,ic1+1,1); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3937,6 +4422,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues2(d1,&it1,&it1+1,&vc1[0],&vc1[0]+vc1.size()); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues2(tmp,&it1,&it1+1,&vc1[0],&vc1[0]+vc1.size()); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3957,6 +4446,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues2(d1,&vt1[0],&vt1[0]+vt1.size(),&vc1[0],&vc1[0]+vc1.size()); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues2(tmp,&vt1[0],&vt1[0]+vt1.size(),&vc1[0],&vc1[0]+vc1.size()); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -3986,6 +4479,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues2(d1,&nv[0],&nv[0]+nv.size(),&vc1[0],&vc1[0]+vc1.size()); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues2(tmp,&nv[0],&nv[0]+nv.size(),&vc1[0],&vc1[0]+vc1.size()); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4006,6 +4503,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues2(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),&vc1[0],&vc1[0]+vc1.size()); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues2(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),&vc1[0],&vc1[0]+vc1.size()); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4026,6 +4527,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,it1,it1+1,1,pc1.first,pc1.second.first,pc1.second.second); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,it1,it1+1,1,pc1.first,pc1.second.first,pc1.second.second); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4046,6 +4551,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,&vt1[0],&vt1[0]+vt1.size(),pc1.first,pc1.second.first,pc1.second.second); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,&vt1[0],&vt1[0]+vt1.size(),pc1.first,pc1.second.first,pc1.second.second); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4066,6 +4575,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues1(d1,pt1.first,pt1.second.first,pt1.second.second,pc1.first,pc1.second.first,pc1.second.second); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues1(tmp,pt1.first,pt1.second.first,pt1.second.second,pc1.first,pc1.second.first,pc1.second.second); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4086,6 +4599,10 @@ namespace ParaMEDMEM case 3: self->setPartOfValues3(d1,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),pc1.first,pc1.second.first,pc1.second.second); return self; + case 4: + tmp=dd1->buildDAInt(1,self->getNumberOfComponents()); + self->setPartOfValues3(tmp,dt1->getConstPointer(),dt1->getConstPointer()+dt1->getNbOfElems(),pc1.first,pc1.second.first,pc1.second.second); + return self; default: throw INTERP_KERNEL::Exception(msg); } @@ -4097,14 +4614,20 @@ namespace ParaMEDMEM return self; } + DataArrayInt *__neg__() const throw(INTERP_KERNEL::Exception) + { + return self->negate(); + } + DataArrayInt *__add__(PyObject *obj) throw(INTERP_KERNEL::Exception) { const char msg[]="Unexpected situation in __add__ !"; int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4118,6 +4641,11 @@ namespace ParaMEDMEM { return DataArrayInt::Add(self,a); } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Add(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4129,8 +4657,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4140,6 +4669,11 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Add(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4151,8 +4685,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4160,11 +4695,23 @@ namespace ParaMEDMEM self->applyLin(1,val); return self; } + case 2: + { + MEDCouplingAutoRefCountObjectPtr bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size()); + self->addEqual(bb); + return self; + } case 3: { self->addEqual(a); return self; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + self->addEqual(aaaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4176,8 +4723,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4191,6 +4739,11 @@ namespace ParaMEDMEM { return DataArrayInt::Substract(self,a); } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Substract(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4202,8 +4755,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4213,6 +4767,11 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Substract(aaaa,self); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4224,8 +4783,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4233,11 +4793,23 @@ namespace ParaMEDMEM self->applyLin(1,-val); return self; } + case 2: + { + MEDCouplingAutoRefCountObjectPtr bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size()); + self->substractEqual(bb); + return self; + } case 3: { self->substractEqual(a); return self; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + self->substractEqual(aaaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4249,8 +4821,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4264,6 +4837,11 @@ namespace ParaMEDMEM { return DataArrayInt::Multiply(self,a); } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Multiply(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4275,8 +4853,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4286,6 +4865,11 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Multiply(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4297,8 +4881,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4306,11 +4891,23 @@ namespace ParaMEDMEM self->applyLin(val,0); return self; } + case 2: + { + MEDCouplingAutoRefCountObjectPtr bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size()); + self->multiplyEqual(bb); + return self; + } case 3: { self->multiplyEqual(a); return self; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + self->multiplyEqual(aaaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4322,8 +4919,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4337,6 +4935,11 @@ namespace ParaMEDMEM { return DataArrayInt::Divide(self,a); } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Divide(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4348,8 +4951,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4359,6 +4963,11 @@ namespace ParaMEDMEM ret->incrRef(); return ret; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Divide(aaaa,self); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4370,8 +4979,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4379,11 +4989,23 @@ namespace ParaMEDMEM self->applyDivideBy(val); return self; } + case 2: + { + MEDCouplingAutoRefCountObjectPtr bb=DataArrayInt::New(); bb->useArray(&aa[0],false,CPP_DEALLOC,1,(int)aa.size()); + self->divideEqual(bb); + return self; + } case 3: { self->divideEqual(a); return self; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + self->divideEqual(aaaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4395,8 +5017,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4410,6 +5033,11 @@ namespace ParaMEDMEM { return DataArrayInt::Modulus(self,a); } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Modulus(self,aaaa); + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4421,8 +5049,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4434,7 +5063,12 @@ namespace ParaMEDMEM } case 3: { - return DataArrayInt::Modulus(self,a); + return DataArrayInt::Modulus(a,self); + } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + return DataArrayInt::Modulus(aaaa,self); } default: throw INTERP_KERNEL::Exception(msg); @@ -4447,8 +5081,9 @@ namespace ParaMEDMEM int val; DataArrayInt *a; std::vector aa; + DataArrayIntTuple *aaa; int sw; - convertObjToPossibleCpp1(obj,sw,val,aa,a); + convertObjToPossibleCpp1(obj,sw,val,aa,a,aaa); switch(sw) { case 1: @@ -4461,6 +5096,12 @@ namespace ParaMEDMEM self->modulusEqual(a); return self; } + case 4: + { + MEDCouplingAutoRefCountObjectPtr aaaa=aaa->buildDAInt(1,self->getNumberOfComponents()); + self->modulusEqual(aaaa); + return self; + } default: throw INTERP_KERNEL::Exception(msg); } @@ -4620,6 +5261,8 @@ namespace ParaMEDMEM void sortPerTuple(bool asc) throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble &operator=(double value) throw(INTERP_KERNEL::Exception); void fillFromAnalytic(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception); + void fillFromAnalytic2(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception); + void fillFromAnalytic3(int nbOfComp, const std::vector& varsOrder, const char *func) throw(INTERP_KERNEL::Exception); void applyFunc(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception); void applyFunc2(int nbOfComp, const char *func) throw(INTERP_KERNEL::Exception); void applyFunc3(int nbOfComp, const std::vector& varsOrder, const char *func) throw(INTERP_KERNEL::Exception); diff --git a/src/MEDCoupling_Swig/MEDCouplingBasicsTest.py b/src/MEDCoupling_Swig/MEDCouplingBasicsTest.py index a15e9a867..17812f5c5 100644 --- a/src/MEDCoupling_Swig/MEDCouplingBasicsTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingBasicsTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -1421,7 +1421,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): expected1=[0,1] self.assertEqual(2,arr1.getNumberOfTuples()); self.assertEqual(1,arr1.getNumberOfComponents()); - self.assertTrue(expected1,arr1.getValues()); + self.assertEqual(expected1,arr1.getValues()); expected2=[0,3,4,1,2] arr1=m2_1.rearrange2ConsecutiveCellTypes(); self.assertEqual(5,arr1.getNumberOfTuples()); @@ -1520,7 +1520,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): targetMesh=MEDCouplingUMesh.New(); targetMesh.setMeshDimension(2); targetMesh.allocateCells(1); - targetMesh.insertNextCell(NORM_QUAD4,4,targetConn[0:4]) + targetMesh.insertNextCell(NORM_QUAD4,targetConn[0:4]) targetMesh.finishInsertingCells(); myCoords=DataArrayDouble.New(); myCoords.setValues(targetCoords,4,3); @@ -2596,7 +2596,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(5,len(types)); expected1=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4, NORM_TRI6, NORM_QUAD8] expected1.sort() - self.assertTrue(expected1==types); + self.assertEqual(expected1,types); self.assertTrue(mesh.isPresenceOfQuadratic()); self.assertEqual(62,mesh.getMeshLength()); f1=mesh.getMeasureField(False); @@ -2613,7 +2613,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(3,len(types2)); expected2=[NORM_POLYGON, NORM_TRI3, NORM_QUAD4] expected2.sort() - self.assertTrue(expected2==types2); + self.assertEqual(expected2,types2); pass def testCheckGeoEquivalWith(self): @@ -2796,7 +2796,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): m2=MEDCouplingUMesh.New(); m2.setMeshDimension(2); m2.allocateCells(1); - m2.insertNextCell(NORM_QUAD4,4,targetConn[0:4]) + m2.insertNextCell(NORM_QUAD4,targetConn[0:4]) m2.finishInsertingCells(); myCoords=DataArrayDouble.New(); myCoords.setValues(targetCoords,4,2); @@ -3813,7 +3813,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): # tmpConn=[0,1,2,3,4,5,6,7] mesh.allocateCells(3); - mesh.insertNextCell(NORM_HEXA8,8,tmpConn[0:8]) + self.assertRaises(InterpKernelException,mesh.insertNextCell,NORM_HEXA8,9,tmpConn[0:8]) + mesh.insertNextCell(NORM_HEXA8,tmpConn[0:8]) mesh.insertNextCell(NORM_PENTA6,6,[i+8 for i in tmpConn]) mesh.insertNextCell(NORM_PYRA5,5,[i+14 for i in tmpConn]) mesh.finishInsertingCells(); @@ -4285,11 +4286,11 @@ class MEDCouplingBasicsTest(unittest.TestCase): da.setValues(discX,4,1); m.setCoordsAt(0,da); m.checkCoherency(); - self.assertEqual(0,m.getCellContainingPoint([2.4],12)); - self.assertEqual(1,m.getCellContainingPoint([3.7],12)); - self.assertEqual(2,m.getCellContainingPoint([5.9],12)); - self.assertEqual(-1,m.getCellContainingPoint([10.3],12)); - self.assertEqual(-1,m.getCellContainingPoint([1.3],12)); + self.assertEqual(0,m.getCellContainingPoint([2.4],1e-12)); + self.assertEqual(1,m.getCellContainingPoint([3.7],1e-12)); + self.assertEqual(2,m.getCellContainingPoint([5.9],1e-12)); + self.assertEqual(-1,m.getCellContainingPoint([10.3],1e-12)); + self.assertEqual(-1,m.getCellContainingPoint([1.3],1e-12)); # m2=m.buildUnstructured(); m2.checkCoherency(); @@ -5509,7 +5510,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertTrue(tmp2); self.assertEqual(37,tmp3); i.convertDegeneratedCells(); - vec1=[10.,0.,0.] + vec1=[10.,0] i.translate(vec1); g2=h.applyFunc(3,"13.5/3.5*x*IVec+0*JVec+13.5/3.5*y*KVec"); f.setCoords(g2); @@ -6940,11 +6941,16 @@ class MEDCouplingBasicsTest(unittest.TestCase): # ms=[m1,m2_2,m3_2]; # + self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[None]); + self.assertRaises(InterpKernelException,MEDCouplingUMesh.MergeUMeshes,ms+[3.4]) m4=MEDCouplingUMesh.MergeUMeshes(ms); m4.checkCoherency(); self.assertEqual(10,m4.getNumberOfCells()); self.assertEqual(20,m4.getNumberOfNodes()); self.assertEqual(45,m4.getMeshLength()); + m4bis=MEDCouplingMesh.MergeMeshes(ms); + self.assertTrue(m4.isEqual(m4bis,1e-12)) + del m4bis # vec3=[0,1,2,3,4] m4_1=m4.buildPartOfMySelf(vec3,False); @@ -8512,7 +8518,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertEqual(10,ret.getNbOfElems()); self.assertEqual(7,newNbTuple); self.assertEqual(1,ret.getNumberOfComponents()); - self.assertTrue(expected,ret.getValues()); + self.assertEqual(expected,ret.getValues()); pass def testDADIReverse1(self): @@ -8524,7 +8530,7 @@ class MEDCouplingBasicsTest(unittest.TestCase): for i in xrange(6): self.assertEqual(arr[5-i],a.getIJ(i,0)); pass - a.setValues(arr,5,1); + a.setValues(arr[:-1],5,1); a.reverse(); for i in xrange(5): self.assertEqual(arr[4-i],a.getIJ(i,0)); @@ -8792,8 +8798,8 @@ class MEDCouplingBasicsTest(unittest.TestCase): pass self.assertEqual(60,m12.getNodalConnectivity().getNumberOfTuples()); self.assertEqual(9,m12.getNodalConnectivityIndex().getNumberOfTuples()); - self.assertTrue(expected3,m12.getNodalConnectivity().getValues()); - self.assertTrue(expected4,m12.getNodalConnectivityIndex().getValues()); + self.assertEqual(expected3,m12.getNodalConnectivity().getValues()); + self.assertEqual(expected4,m12.getNodalConnectivityIndex().getValues()); pass def testIntersect2DMeshesTmp4(self): @@ -9238,7 +9244,858 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertAlmostEqual(expected1[i],arr1.getIJ(0,i),14); pass pass + + def testGetNodeIdsOfCell2(self): + m1c=MEDCouplingCMesh.New(); + coordsX=DataArrayDouble.New(); + arrX=[ -1., 1., 2., 4., 4.5 ] + coordsX.setValues(arrX,5,1); + coordsY=DataArrayDouble.New(); + arrY=[ -2., 2., 4., 8.] + coordsY.setValues(arrY,4,1); + coordsZ=DataArrayDouble.New(); + arrZ=[ -2., 2., 4.] + coordsZ.setValues(arrZ,3,1); + # test in 1D + m1c.setCoordsAt(0,coordsX); + expected1=[[0,1],[1,2],[2,3],[3,4]] + self.assertEqual(4,m1c.getNumberOfCells()) + for i in xrange(m1c.getNumberOfCells()): + self.assertEqual(expected1[i],m1c.getNodeIdsOfCell(i)) + pass + # test in 2D + m1c.setCoordsAt(1,coordsY); + self.assertEqual(12,m1c.getNumberOfCells()) + expected2=[[0,1,6,5],[1,2,7,6],[2,3,8,7],[3,4,9,8],[4,5,11,10],[5,6,12,11],[6,7,13,12],[7,8,14,13],[8,9,16,15],[9,10,17,16],[10,11,18,17],[11,12,19,18]] + for i in xrange(m1c.getNumberOfCells()): + self.assertEqual(expected2[i],m1c.getNodeIdsOfCell(i)) + pass + # test in 3D + m1c.setCoordsAt(2,coordsZ); + expected3=[[0,1,6,5,20,21,26,25],[1,2,7,6,21,22,27,26],[2,3,8,7,22,23,28,27],[3,4,9,8,23,24,29,28],[4,5,11,10,24,25,31,30],[5,6,12,11,25,26,32,31],[6,7,13,12,26,27,33,32],[7,8,14,13,27,28,34,33],[8,9,16,15,28,29,36,35],[9,10,17,16,29,30,37,36],[10,11,18,17,30,31,38,37],[11,12,19,18,31,32,39,38],[20,21,26,25,40,41,46,45],[21,22,27,26,41,42,47,46],[22,23,28,27,42,43,48,47],[23,24,29,28,43,44,49,48],[24,25,31,30,44,45,51,50],[25,26,32,31,45,46,52,51],[26,27,33,32,46,47,53,52],[27,28,34,33,47,48,54,53],[28,29,36,35,48,49,56,55],[29,30,37,36,49,50,57,56],[30,31,38,37,50,51,58,57],[31,32,39,38,51,52,59,58]] + self.assertEqual(24,m1c.getNumberOfCells()) + for i in xrange(m1c.getNumberOfCells()): + self.assertEqual(expected3[i],m1c.getNodeIdsOfCell(i)) + pass + pass + + def testSwigDADOp4(self): + da=DataArrayDouble.New(range(6,30),12,2) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13) + pass + # operator transpose + da.transpose() + self.assertEqual(2,da.getNumberOfTuples()); + self.assertEqual(12,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),float(i+6),13) + pass + da.transpose() + # operator __neg__ + da2=DataArrayDouble.New(12,1) + da2.iota(0.) + dabis=-da + for i in xrange(24): + self.assertAlmostEqual(dabis.getIJ(0,i),-float(i+6),13) + pass + # operator+= + da+=da2 + expected1=[6.,7.,9.,10.,12.,13.,15.,16.,18.,19.,21.,22.,24.,25.,27.,28.,30.,31.,33.,34.,36.,37.,39.,40.] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13) + pass + da=-dabis + da+=[100.,101.] + expected2=[106.,108.,108.,110.,110.,112.,112.,114.,114.,116.,116.,118.,118.,120.,120.,122.,122.,124.,124.,126.,126.,128.,128.,130.] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13) + pass + for pos,elt in enumerate(dabis): + da[pos]+=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for elt in da: + li=elt[:] + self.assertAlmostEqual(li[0],100.,13) ; self.assertAlmostEqual(li[1],101.,13) + pass + # operator-= + da=DataArrayDouble.New(range(6,30),12,2) + da2=DataArrayDouble.New(range(12),12,1) + dabis=-da + da-=da2 + expected1=[6.,7.,7.,8.,8.,9.,9.,10.,10.,11.,11.,12.,12.,13.,13.,14.,14.,15.,15.,16.,16.,17.,17.,18.] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13) + pass + da=-dabis + da-=[100.,101.] + expected2=[-94.,-94.,-92.,-92.,-90.,-90.,-88.,-88.,-86.,-86.,-84.,-84.,-82.,-82.,-80.,-80.,-78.,-78.,-76.,-76.,-74.,-74.,-72.,-72.] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13) + pass + for pos,elt in enumerate(dabis): + da[pos]-=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected3=[-88.,-87.,-84.,-83.,-80.,-79.,-76.,-75.,-72.,-71.,-68.,-67.,-64.,-63.,-60.,-59.,-56.,-55.,-52.,-51.,-48.,-47.,-44.,-43.] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13) + pass + # operator*= + da=DataArrayDouble.New(range(6,30),12,2) + da2=DataArrayDouble.New(range(12),12,1) + dabis=-da + da*=da2 + expected1=[0.,0.,8.,9.,20.,22.,36.,39.,56.,60.,80.,85.,108.,114.,140.,147.,176.,184.,216.,225.,260.,270.,308.,319.] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13) + pass + da=-dabis + da*=[100.,101.] + expected2=[600.,707.,800.,909.,1000.,1111.,1200.,1313.,1400.,1515.,1600.,1717.,1800.,1919.,2000.,2121.,2200.,2323.,2400.,2525.,2600.,2727.,2800.,2929.] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13) + pass + for pos,elt in enumerate(dabis): + da[pos]*=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected3=[-3600.,-4949.,-6400.,-8181.,-10000.,-12221.,-14400.,-17069.,-19600.,-22725.,-25600.,-29189.,-32400.,-36461.,-40000.,-44541.,-48400.,-53429.,-57600.,-63125.,-67600.,-73629.,-78400.,-84941.0] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13) + pass + # operator/= + da=DataArrayDouble.New(range(6,30),12,2) + da2=DataArrayDouble.New(range(1,13),12,1) + dabis=-da + da/=da2 + expected1=[6.0,7.0,4.0,4.5,3.3333333333333335,3.6666666666666665,3.0,3.25,2.8,3.0,2.6666666666666665,2.8333333333333335,2.5714285714285716,2.7142857142857144,2.5,2.625,2.4444444444444446,2.5555555555555554,2.4,2.5,2.3636363636363638,2.4545454545454546,2.3333333333333335,2.4166666666666665] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected1[i],13) + pass + da=-dabis + da/=[100.,101.] + expected2=[0.06,0.06930693069306931,0.08,0.0891089108910891,0.1,0.10891089108910891,0.12,0.12871287128712872,0.14,0.1485148514851485,0.16,0.16831683168316833,0.18,0.18811881188118812,0.2,0.2079207920792079,0.22,0.22772277227722773,0.24,0.24752475247524752,0.26,0.26732673267326734,0.28,0.2871287128712871] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected2[i],13) + pass + for pos,elt in enumerate(dabis): + da[pos]/=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected3=[-0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.009900990099009901, -0.01, -0.0099009900990099] + for i in xrange(24): + self.assertAlmostEqual(da.getIJ(0,i),expected3[i],13) + pass + pass + + def testSwigDAIOp4(self): + da=DataArrayInt.New(range(6,30),12,2) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),i+6) + pass + # operator transpose + da.transpose() + self.assertEqual(2,da.getNumberOfTuples()); + self.assertEqual(12,da.getNumberOfComponents()); + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),i+6) + pass + da.transpose() + # operator __neg__ + da2=DataArrayInt.New(12,1) + da2.iota(0) + dabis=-da + for i in xrange(24): + self.assertEqual(dabis.getIJ(0,i),-(i+6)) + pass + # operator+= + da+=da2 + expected1=[6,7,9,10,12,13,15,16,18,19,21,22,24,25,27,28,30,31,33,34,36,37,39,40] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected1[i]) + pass + da=-dabis + da+=[100,101] + expected2=[106,108,108,110,110,112,112,114,114,116,116,118,118,120,120,122,122,124,124,126,126,128,128,130] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected2[i]) + pass + for pos,elt in enumerate(dabis): + da[pos]+=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for elt in da: + li=elt[:] + self.assertEqual(li[0],100) ; self.assertEqual(li[1],101) + pass + # operator-= + da=DataArrayInt.New(range(6,30),12,2) + da2=DataArrayInt.New(range(12),12,1) + dabis=-da + da-=da2 + expected1=[6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected1[i]) + pass + da=-dabis + da-=[100,101] + expected2=[-94,-94,-92,-92,-90,-90,-88,-88,-86,-86,-84,-84,-82,-82,-80,-80,-78,-78,-76,-76,-74,-74,-72,-72] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected2[i]) + pass + for pos,elt in enumerate(dabis): + da[pos]-=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected3=[-88,-87,-84,-83,-80,-79,-76,-75,-72,-71,-68,-67,-64,-63,-60,-59,-56,-55,-52,-51,-48,-47,-44,-43] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected3[i]) + pass + # operator*= + da=DataArrayInt.New(range(6,30),12,2) + da2=DataArrayInt.New(range(12),12,1) + dabis=-da + da*=da2 + expected1=[0,0,8,9,20,22,36,39,56,60,80,85,108,114,140,147,176,184,216,225,260,270,308,319] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected1[i]) + pass + da=-dabis + da*=[100,101] + expected2=[600,707,800,909,1000,1111,1200,1313,1400,1515,1600,1717,1800,1919,2000,2121,2200,2323,2400,2525,2600,2727,2800,2929] + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected2[i]) + pass + for pos,elt in enumerate(dabis): + da[pos]*=elt + pass + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected3=[-3600,-4949,-6400,-8181,-10000,-12221,-14400,-17069,-19600,-22725,-25600,-29189,-32400,-36461,-40000,-44541,-48400,-53429,-57600,-63125,-67600,-73629,-78400,-84941.0] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected3[i]) + pass + # operator/= + da=DataArrayInt.New(range(6,30),12,2) + da2=DataArrayInt.New(range(1,13),12,1) + dabis=-da + da/=da2 + expected1=[6,7,4,4,3,3,3,3,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected1[i]) + pass + da=-dabis + da/=DataArrayInt.New([2,3],1,2) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + expected2=[3,2,4,3,5,3,6,4,7,5,8,5,9,6,10,7,11,7,12,8,13,9,14,9] + for i in xrange(24): + self.assertEqual(da.getIJ(0,i),expected2[i]) + pass + pass + + def testSwigDADOp5(self): + da=DataArrayDouble.New([5,6,7,8,9,6,7,-2,3,9,8,10]) + da.rearrange(3) + da2=DataArrayDouble.New([5.,8.,10.,12]) + self.assertEqual(4,da2.getNumberOfTuples()); + self.assertEqual(1,da2.getNumberOfComponents()); + da3=da+da2 + self.assertEqual(4,da3.getNumberOfTuples()); + self.assertEqual(3,da3.getNumberOfComponents()); + expected1=[10.,11.,12.,16.,17.,14.,17.,8.,13.,21.,20.,22.] + for i in xrange(12): + self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13) + pass + da3=da2+da + self.assertEqual(4,da3.getNumberOfTuples()); + self.assertEqual(3,da3.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da3.getIJ(0,i),expected1[i],13) + pass + # Test new API of classmethod DataArrayDouble.New + vals=[5,6,7,8,9,6,7,-2,3,9,8,10] + da=DataArrayDouble.New(vals) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(1,da.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da.getIJ(0,i),vals[i],13) + pass + da=DataArrayDouble.New(vals,12) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(1,da.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da.getIJ(0,i),vals[i],13) + pass + da=DataArrayDouble.New(vals,1,12) + self.assertEqual(1,da.getNumberOfTuples()); + self.assertEqual(12,da.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da.getIJ(0,i),vals[i],13) + pass + da=DataArrayDouble.New(vals,6,2) + self.assertEqual(6,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da.getIJ(0,i),vals[i],13) + pass + da=DataArrayDouble.New(vals,4,3) + self.assertEqual(4,da.getNumberOfTuples()); + self.assertEqual(3,da.getNumberOfComponents()); + for i in xrange(12): + self.assertAlmostEqual(da.getIJ(0,i),vals[i],13) + pass + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2); + pass + + def testSwigDADOp6(self): + da=DataArrayInt.New([5,6,7,8,9,6,7,-2,3,9,8,10]) + da.rearrange(3) + da2=DataArrayInt.New([5,8,10,12]) + self.assertEqual(4,da2.getNumberOfTuples()); + self.assertEqual(1,da2.getNumberOfComponents()); + da3=da+da2 + self.assertEqual(4,da3.getNumberOfTuples()); + self.assertEqual(3,da3.getNumberOfComponents()); + expected1=[10,11,12,16,17,14,17,8,13,21,20,22] + for i in xrange(12): + self.assertEqual(da3.getIJ(0,i),expected1[i]) + pass + da3=da2+da + self.assertEqual(4,da3.getNumberOfTuples()); + self.assertEqual(3,da3.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da3.getIJ(0,i),expected1[i]) + pass + da3=da+DataArrayInt.New(da2.getValues()) + # Test new API of classmethod DataArrayInt.New + vals=[5,6,7,8,9,6,7,-2,3,9,8,10] + da=DataArrayDouble.New(vals) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(1,da.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da.getIJ(0,i),vals[i]) + pass + da=DataArrayDouble.New(vals,12) + self.assertEqual(12,da.getNumberOfTuples()); + self.assertEqual(1,da.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da.getIJ(0,i),vals[i]) + pass + da=DataArrayDouble.New(vals,1,12) + self.assertEqual(1,da.getNumberOfTuples()); + self.assertEqual(12,da.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da.getIJ(0,i),vals[i]) + pass + da=DataArrayDouble.New(vals,6,2) + self.assertEqual(6,da.getNumberOfTuples()); + self.assertEqual(2,da.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da.getIJ(0,i),vals[i]) + pass + da=DataArrayDouble.New(vals,4,3) + self.assertEqual(4,da.getNumberOfTuples()); + self.assertEqual(3,da.getNumberOfComponents()); + for i in xrange(12): + self.assertEqual(da.getIJ(0,i),vals[i]) + pass + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,11); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,13); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,5,2); + self.assertRaises(InterpKernelException,DataArrayDouble.New,vals,7,2); + pass + + def testRenumberNodesInConn1(self): + mesh2DCoords=[-0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0. ] + mesh2DConn=[1,4,2, 4,5,2, 0,3,4,1, 6,7,4,3, 7,8,5,4] + mesh2D=MEDCouplingUMesh.New("mesh",2); + mesh2D.allocateCells(5); + mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[0:3]) + mesh2D.insertNextCell(NORM_TRI3,3,mesh2DConn[3:6]) + mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[6:10]) + mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[10:14]) + mesh2D.insertNextCell(NORM_QUAD4,4,mesh2DConn[14:18]) + mesh2D.finishInsertingCells(); + myCoords=DataArrayDouble.New(mesh2DCoords,9,3); + mesh2D.setCoords(myCoords); + mesh2D.checkCoherency(); + # + mesh3DCoords=[-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1. ] + mesh3DConn=[0,1,2,3,4,5,6,7] + mesh3D=MEDCouplingUMesh.New("mesh",3); + mesh3D.allocateCells(1); + mesh3D.insertNextCell(NORM_HEXA8,8,mesh3DConn[:]) + mesh3D.finishInsertingCells(); + myCoords3D=DataArrayDouble.New(mesh3DCoords,8,3); + mesh3D.setCoords(myCoords3D); + mesh3D.checkCoherency(); + # + mesh3D_2=mesh3D.deepCpy(); + mesh2D_2=mesh2D.deepCpy(); + mesh3D_4=mesh3D.deepCpy(); + mesh2D_4=mesh2D.deepCpy(); + oldNbOf3DNodes=mesh3D.getNumberOfNodes(); + renumNodes=DataArrayInt.New(); + renumNodes.alloc(mesh2D.getNumberOfNodes(),1); + renumNodes.iota(oldNbOf3DNodes); + coo=DataArrayDouble.Aggregate(mesh3D.getCoords(),mesh2D.getCoords()); + mesh3D.setCoords(coo); + mesh2D.setCoords(coo); + mesh2DCpy=mesh2D.deepCpy() + mesh2D_3=mesh2D.deepCpy(); + mesh2D_3.shiftNodeNumbersInConn(oldNbOf3DNodes); + mesh2D.renumberNodesInConn(renumNodes); + mesh2DCpy.renumberNodesInConn(renumNodes.getValues()); + self.assertTrue(mesh2D.isEqual(mesh2DCpy,1e-12)) + self.assertTrue(mesh2D.isEqual(mesh2D_3,1e-12)) + # + da1,da2=mesh3D.checkGeoEquivalWith(mesh3D_2,10,1e-12); + self.assertTrue(da1==None); + self.assertEqual(8,da2.getNumberOfTuples()); + self.assertEqual(1,da2.getNumberOfComponents()); + expected1=[8,11,12,9,4,5,6,7] + for i in xrange(8): + self.assertEqual(expected1[i],da2.getIJ(i,0)); + pass + # + da1,da2=mesh2D.checkGeoEquivalWith(mesh2D_2,10,1e-12); + self.assertTrue(da1==None); + self.assertEqual(9,da2.getNumberOfTuples()); + self.assertEqual(1,da2.getNumberOfComponents()); + for i in xrange(9): + self.assertEqual(8+i,da2.getIJ(i,0)); + pass + # + mesh2D_5=mesh2D_4.deepCpy(); + mesh2D_5.translate([1.,0.,0.]); + meshes=[mesh3D_4,mesh2D_4,mesh2D_5]; + MEDCouplingUMesh.PutUMeshesOnSameAggregatedCoords(meshes); + self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer()); + self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer()); + mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency(); + self.assertEqual(26,mesh3D_4.getNumberOfNodes()); + self.assertEqual(3,mesh3D_4.getSpaceDimension()); + self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples()); + self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples()); + self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples()); + expected2=[18,0,1,2,3,4,5,6,7] + expected3=[3,9,12,10, 3,12,13,10, 4,8,11,12,9, 4,14,15,12,11, 4,15,16,13,12] + expected4=[3,18,21,19, 3,21,22,19, 4,17,20,21,18, 4,23,24,21,20, 4,24,25,22,21] + expected5=[-0.3,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.2,-0.3,0., -0.3,-0.3,1., -0.3,0.2,1., 0.2,0.2,1., 0.2,-0.3,1., -0.3,-0.3,0., 0.2,-0.3,0., 0.7,-0.3,0., -0.3,0.2,0., 0.2,0.2,0., 0.7,0.2,0., -0.3,0.7,0., 0.2,0.7,0., 0.7,0.7,0., 0.7, -0.3, 0.0, 1.2, -0.3, 0.0, 1.7, -0.3, 0.0, 0.7, 0.2, 0.0, 1.2, 0.2, 0.0, 1.7, 0.2, 0.0, 0.7, 0.7, 0.0, 1.2, 0.7, 0.0, 1.7, 0.7, 0.0] + self.assertEqual(expected2,mesh3D_4.getNodalConnectivity().getValues()); + self.assertEqual(expected3,mesh2D_4.getNodalConnectivity().getValues()); + self.assertEqual(expected4,mesh2D_5.getNodalConnectivity().getValues()); + for i in xrange(78): + self.assertAlmostEqual(expected5[i],mesh3D_4.getCoords().getIJ(0,i),12); + pass + # + MEDCouplingUMesh.MergeNodesOnUMeshesSharingSameCoords(meshes,1e-12); + mesh3D_4.checkCoherency(); mesh2D_4.checkCoherency(); mesh2D_5.checkCoherency(); + self.assertTrue(mesh3D_4.getCoords().getHiddenCppPointer()==mesh2D_4.getCoords().getHiddenCppPointer()); + self.assertTrue(mesh2D_4.getCoords().getHiddenCppPointer()==mesh2D_5.getCoords().getHiddenCppPointer()); + self.assertEqual(19,mesh3D_4.getNumberOfNodes()); + self.assertEqual(3,mesh3D_4.getSpaceDimension()); + self.assertEqual(9,mesh3D_4.getNodalConnectivity().getNumberOfTuples()); + self.assertEqual(23,mesh2D_4.getNodalConnectivity().getNumberOfTuples()); + self.assertEqual(23,mesh2D_5.getNodalConnectivity().getNumberOfTuples()); + expected6=[18,0,1,2,3,4,5,6,7] + expected7=[3,3,2,8, 3,2,9,8, 4,0,1,2,3, 4,10,11,2,1, 4,11,12,9,2] + expected8=[3,13,15,14, 3,15,16,14, 4,8,9,15,13, 4,12,17,15,9, 4,17,18,16,15] + expected9=[-0.3, -0.3, 0., -0.3, 0.2, 0., 0.2, 0.2, 0., 0.2, -0.3, 0., -0.3, -0.3, 1., -0.3, 0.2, 1., + 0.2, 0.2, 1., 0.2, -0.3, 1., 0.7, -0.3, 0., 0.7, 0.2, 0., -0.3, 0.7, 0., 0.2, 0.7, 0., + 0.7, 0.7, 0., 1.2, -0.3, 0., 1.7, -0.3, 0., 1.2, 0.2, 0., 1.7, 0.2, 0., 1.2, 0.7, 0., 1.7, 0.7, 0.] + self.assertEqual(expected6,mesh3D_4.getNodalConnectivity().getValues()); + self.assertEqual(expected7,mesh2D_4.getNodalConnectivity().getValues()); + self.assertEqual(expected8,mesh2D_5.getNodalConnectivity().getValues()); + for i in xrange(57): + self.assertAlmostEqual(expected9[i],mesh3D_4.getCoords().getIJ(0,i),1e-12); + pass + # + pass + + def testComputeNeighborsOfCells1(self): + m=MEDCouplingDataForTest.build2DTargetMesh_1(); + d1,d2=m.computeNeighborsOfCells(); + self.assertEqual(6,d2.getNumberOfTuples()); + self.assertEqual(10,d1.getNumberOfTuples()); + expected1=[0,2,4,6,8,10] + expected2=[3,1,0,2,4,1,4,0,2,3] + self.assertEqual(expected1,d2.getValues()); + self.assertEqual(expected2,d1.getValues()); + pass + + def testCheckButterflyCellsBug1(self): + mesh2DCoords=[323.85,120.983748908684,317.5,131.982271536747,336.55,120.983748908686,330.2,131.982271536751,323.85,142.98079416481] + mesh2DConn=[4,1,0,2,3] + mesh2D=MEDCouplingUMesh.New("mesh",2); + mesh2D.allocateCells(1); + mesh2D.insertNextCell(NORM_POLYGON,5,mesh2DConn[0:5]) + mesh2D.finishInsertingCells(); + myCoords=DataArrayDouble.New(mesh2DCoords,5,2); + mesh2D.setCoords(myCoords); + mesh2D.checkCoherency(); + # + v=mesh2D.checkButterflyCells(); + self.assertTrue(v.empty()); + pass + + def testDataArrayIntRange1(self): + d=DataArrayInt.Range(2,17,7); + expected1=[2,9,16] + self.assertEqual(3,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(expected1,d.getValues()); + # + d=DataArrayInt.Range(2,23,7); + self.assertEqual(3,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(expected1,d.getValues()); + # + d=DataArrayInt.Range(2,24,7); + expected2=[2,9,16,23] + self.assertEqual(4,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(expected2,d.getValues()); + # + d=DataArrayInt.Range(24,2,-7); + expected3=[24,17,10,3] + self.assertEqual(4,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(expected3,d.getValues()); + # + d=DataArrayInt.Range(23,2,-7); + expected4=[23,16,9] + self.assertEqual(3,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(expected4,d.getValues()); + # + d=DataArrayInt.Range(23,22,-7); + self.assertEqual(1,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(23,d.getIJ(0,0)); + # + d=DataArrayInt.Range(22,23,7); + self.assertEqual(1,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + self.assertEqual(22,d.getIJ(0,0)); + # + d=DataArrayInt.Range(22,22,7); + self.assertEqual(0,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + # + d=DataArrayInt.Range(22,22,-7); + self.assertEqual(0,d.getNumberOfTuples()); + self.assertEqual(1,d.getNumberOfComponents()); + # + self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,-7); + self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,7); + self.assertRaises(InterpKernelException,DataArrayInt.Range,23,22,0); + self.assertRaises(InterpKernelException,DataArrayInt.Range,22,23,0); + pass + + def testSwigUMeshGetItem1(self): + m=MEDCouplingDataForTest.build2DTargetMesh_1(); + subMesh=m.buildPartOfMySelf([1,3],True); + self.assertTrue(isinstance(subMesh,MEDCouplingUMesh)) + m1=m[[1,3]] + self.assertTrue(isinstance(m1,MEDCouplingUMesh)) + m2=m[(1,3)] + self.assertTrue(isinstance(m2,MEDCouplingUMesh)) + m3=m[1::2] + self.assertTrue(isinstance(m3,MEDCouplingUMesh)) + m4=m[DataArrayInt.New([1,3])] + m5_1=m[1] + self.assertTrue(isinstance(m5_1,MEDCouplingUMesh)) + m5_2=m[3] + self.assertTrue(isinstance(m5_2,MEDCouplingUMesh)) + m5=MEDCouplingUMesh.MergeUMeshesOnSameCoords([m5_1,m5_2]); + m5.setName(subMesh.getName()) + self.assertTrue(isinstance(m4,MEDCouplingUMesh)) + self.assertTrue(subMesh.isEqual(m1,1e-12)) + self.assertTrue(subMesh.isEqual(m2,1e-12)) + self.assertTrue(subMesh.isEqual(m3,1e-12)) + self.assertTrue(subMesh.isEqual(m4,1e-12)) + self.assertTrue(subMesh.isEqual(m5,1e-12)) + self.assertRaises(InterpKernelException,m.buildPartOfMySelf,[1,5],True); + pass + def testSwigGetItem3(self): + da=DataArrayInt.New([4,5,6]) + self.assertEqual(5,da[1]) + self.assertRaises(InterpKernelException,da.__getitem__,-1) + self.assertRaises(InterpKernelException,da.__getitem__,3) + da=DataArrayInt.New([4,5,6,7,8,9],2,3) + self.assertEqual(9,da[1,2]) + da=DataArrayDouble.New([4.1,5.2,6.3]) + self.assertAlmostEqual(5.2,da[1],12) + self.assertRaises(InterpKernelException,da.__getitem__,-1) + self.assertRaises(InterpKernelException,da.__getitem__,3) + da=DataArrayDouble.New([4.12,5.12,6.12,7.12,8.12,9.12],2,3) + self.assertAlmostEqual(9.12,da[1,2],12) + pass + + def testSwigDADISub1(self): + mesh3D,mesh2D=MEDCouplingDataForTest.build3DExtrudedUMesh_1(); + bary=mesh3D.getBarycenterAndOwner() + bary=bary[:,:2] + pts=bary.getDifferentValues(1e-12) + expected=[[0,6,12],[1,7,13],[2,8,14],[3,9,15],[4,10,16],[5,11,17]] + for pos,pt in enumerate(pts): + bary2=bary[:,:2] + bary2[:]-=pt + norm=bary2.magnitude() + self.assertEqual(expected[pos],norm.getIdsInRange(-1.,1e-5).getValues()) + pass + expected2=[[3.,54.],[-141.,180.],[21.,54.],[39.,72.],[-15.,90.],[21.,90.]] + for pos,pt in enumerate(pts): + bary2=bary[:,:2] + bary2[:]+=pt + self.assertAlmostEqual(expected2[pos][0],bary2.accumulate()[0],12); + self.assertAlmostEqual(expected2[pos][1],bary2.accumulate()[1],12); + pass + expected3=[[-3.,22.5],[45.,337.5],[-9., 22.5],[-15.,67.5],[3.,112.5],[-9.,112.5]] + for pos,pt in enumerate(pts): + bary2=bary[:,:2] + bary2[:]*=pt + self.assertAlmostEqual(expected3[pos][0],bary2.accumulate()[0],12); + self.assertAlmostEqual(expected3[pos][1],bary2.accumulate()[1],12); + pass + expected4=[[-12.,90.],[0.8,6.],[-4,90.],[-2.4,30.],[12.,18],[-4,18.]] + for pos,pt in enumerate(pts): + bary2=bary[:,:2] + bary2[:]/=pt + self.assertAlmostEqual(expected4[pos][0],bary2.accumulate()[0],12); + self.assertAlmostEqual(expected4[pos][1],bary2.accumulate()[1],12); + pass + # + d=DataArrayInt.New([1,2,0,1,0,2],3,2) + e=DataArrayInt.New([1,11,101,2,12,102,3,13,103,4,14,104],4,3) + expected5=[[1,11,101,77,77,77,77,77,77,4,14,104],[77,77,77,77,77,77,3,13,103,4,14,104],[77,77,77,2,12,102,77,77,77,4,14,104]] + expected6=[[1,77,77,2,77,77,3,77,77,4,77,77],[77,77,101,77,77,102,77,77,103,77,77,104],[77,11,77,77,12,77,77,13,77,77,14,77]] + for pos,tup in enumerate(d): + f=e[:] + self.assertTrue(isinstance(f,DataArrayInt)) + f[tup]=77 + self.assertEqual(expected5[pos],f.getValues()) + self.assertEqual(6*[77],f[tup].getValues()) + f=e[:] + f[:,tup]=77 + self.assertEqual(expected6[pos],f.getValues()) + self.assertEqual(8*[77],f[:,tup].getValues()) + pass + # + e=e.convertToDblArr() + for pos,tup in enumerate(d): + f=e[:] + self.assertTrue(isinstance(f,DataArrayDouble)) + f[tup]=77. + self.assertEqual(expected5[pos],f.convertToIntArr().getValues()) + self.assertEqual(6*[77],f[tup].convertToIntArr().getValues()) + f=e[:] + f[:,tup]=77. + self.assertEqual(expected6[pos],f.convertToIntArr().getValues()) + self.assertEqual(8*[77],f[:,tup].convertToIntArr().getValues()) + pass + pass + + def testDataArrayDoubleGetMinMaxPerComponent1(self): + values1=[1.,2.,3.,-0.9,2.1,3.,1.3,1.7,3.,1.,1.8,3.] + d1=DataArrayDouble.New(); + self.assertRaises(InterpKernelException,d1.getMinMaxPerComponent) + d1=DataArrayDouble.New(values1,4,3); + res=d1.getMinMaxPerComponent(); + self.assertTrue(isinstance(res,list)) + self.assertEqual(3,len(res)) + for i in xrange(3): + self.assertTrue(isinstance(res[i],tuple)) + self.assertEqual(2,len(res[i])) + pass + expected1=[-0.9,1.3,1.7,2.1,3.,3.] + for i in xrange(6): + self.assertAlmostEqual(expected1[i],res[i/2][i%2],14) + pass + # + d1.rearrange(2); + res=d1.getMinMaxPerComponent(); + self.assertTrue(isinstance(res,list)) + self.assertEqual(2,len(res)) + for i in xrange(2): + self.assertTrue(isinstance(res[i],tuple)) + self.assertEqual(2,len(res[i])) + pass + expected2=[1.,3.,-0.9,3.] + for i in xrange(4): + self.assertAlmostEqual(expected2[i],res[i/2][i%2],14) + pass + # + d1.rearrange(1); + res=d1.getMinMaxPerComponent(); + self.assertTrue(isinstance(res,list)) + self.assertEqual(1,len(res)) + for i in xrange(1): + self.assertTrue(isinstance(res[i],tuple)) + self.assertEqual(2,len(res[i])) + pass + expected3=[-0.9,3.] + for i in xrange(2): + self.assertAlmostEqual(expected3[i],res[i/2][i%2],14) + pass + pass + + def testDataArrayIntGetHashCode1(self): + d1=DataArrayInt.New(range(3545)) + d2=DataArrayInt.New(range(3545)) + self.assertEqual(d2.getHashCode(),d1.getHashCode()) + self.assertEqual(232341068,d1.getHashCode()) + d1[886]=6 + self.assertEqual(232340188,d1.getHashCode()) + pass + + def testZipConnectivityPol1(self): + m1=MEDCouplingDataForTest.build2DTargetMesh_1(); + cells1=[2,3,4] + m2_1=m1.buildPartOfMySelf(cells1,True); + m2=m2_1 + self.assertTrue(isinstance(m2,MEDCouplingUMesh)) + # no permutation policy 0 + isOk,arr=m1.areCellsIncludedIn(m2,0) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + # no permutation policy 1 + isOk,arr=m1.areCellsIncludedIn(m2,1) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + # no permutation policy 2 + isOk,arr=m1.areCellsIncludedIn(m2,2) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + # some modification into m2 + modif1=[2,4,5] + m2.getNodalConnectivity()[1:4]=modif1 + #policy 0 fails because cell0 in m2 has same orientation be not same connectivity + expected1=[5,3,4] + isOk,arr=m1.areCellsIncludedIn(m2,0) + self.assertTrue(not isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(expected1,arr.getValues()) + #policy 1 succeeds because cell0 in m2 has not exactly the same conn + isOk,arr=m1.areCellsIncludedIn(m2,1) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + #policy 2 succeeds because cell0 in m2 has same nodes in connectivity + isOk,arr=m1.areCellsIncludedIn(m2,2) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + #some new modification into m2 + modif2=[2,5,4] + m2.getNodalConnectivity()[1:4]=modif2 + #policy 0 fails because cell0 in m2 has not exactly the same conn + isOk,arr=m1.areCellsIncludedIn(m2,0) + self.assertTrue(not isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(expected1,arr.getValues()) + #policy 1 fails too because cell0 in m2 has not same orientation + isOk,arr=m1.areCellsIncludedIn(m2,1) + self.assertTrue(not isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(expected1,arr.getValues()) + #policy 2 succeeds because cell0 in m2 has same nodes in connectivity + isOk,arr=m1.areCellsIncludedIn(m2,2) + self.assertTrue(isOk); + self.assertEqual(3,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells1,arr.getValues()) + # Now 1D + cells2=[3,2] + m1=MEDCouplingDataForTest.build1DSourceMesh_2(); + m2_1=m1.buildPartOfMySelf(cells2,True); + m2=m2_1 + self.assertTrue(isinstance(m2,MEDCouplingUMesh)) + # no permutation policy 0 + isOk,arr=m1.areCellsIncludedIn(m2,0) + self.assertTrue(isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells2,arr.getValues()) + # no permutation policy 1 + isOk,arr=m1.areCellsIncludedIn(m2,1) + self.assertTrue(isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells2,arr.getValues()) + # no permutation policy 2 + isOk,arr=m1.areCellsIncludedIn(m2,2) + self.assertTrue(isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells2,arr.getValues()) + # some modification into m2 + modif3=[4,3] + m2.getNodalConnectivity()[1:3]=modif3 + #policy 0 fails because cell0 in m2 has not exactly the same conn + expected2=[4,2] + isOk,arr=m1.areCellsIncludedIn(m2,0) + self.assertTrue(not isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(expected2,arr.getValues()) + #policy 1 fails too because cell0 in m2 has not same orientation + isOk,arr=m1.areCellsIncludedIn(m2,1) + self.assertTrue(not isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(expected2,arr.getValues()) + #policy 2 succeeds because cell0 in m2 has same nodes in connectivity + isOk,arr=m1.areCellsIncludedIn(m2,2) + self.assertTrue(isOk); + self.assertEqual(2,arr.getNumberOfTuples()); + self.assertEqual(1,arr.getNumberOfComponents()); + self.assertEqual(cells2,arr.getValues()) + pass + def setUp(self): pass pass diff --git a/src/MEDCoupling_Swig/MEDCouplingDataForTest.py b/src/MEDCoupling_Swig/MEDCouplingDataForTest.py index 8c4c197b2..1c0bab110 100644 --- a/src/MEDCoupling_Swig/MEDCouplingDataForTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingDataForTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -278,6 +278,18 @@ class MEDCouplingDataForTest: myCoords.setValues(targetCoords,9,2); targetMesh.setCoords(myCoords); return targetMesh; + + def build1DSourceMesh_2(cls): + ret=MEDCouplingUMesh.New("1DSourceMesh",1); + ret.allocateCells(4); + conn=[0,1,2,3,1,2,3,4] + for i in xrange(4): + ret.insertNextCell(NORM_SEG2,2,conn[2*i:2*i+2]); + pass + ret.finishInsertingCells(); + myCoords=DataArrayDouble.New([0.3,0.7,0.9,1.0,1.12],5,1); + ret.setCoords(myCoords); + return ret def build1DTargetMesh_3(cls): ret=MEDCouplingUMesh.New("1DMesh_3",1); @@ -575,6 +587,7 @@ class MEDCouplingDataForTest: build3DTargetMeshMergeNode_1=classmethod(build3DTargetMeshMergeNode_1) build2DTargetMeshMerged_1=classmethod(build2DTargetMeshMerged_1) build2DTargetMesh_2=classmethod(build2DTargetMesh_2) + build1DSourceMesh_2=classmethod(build1DSourceMesh_2) build1DTargetMesh_3=classmethod(build1DTargetMesh_3) build2DCurveTargetMesh_3=classmethod(build2DCurveTargetMesh_3) build2DTargetMesh_3=classmethod(build2DTargetMesh_3) diff --git a/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py b/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py index ad328820c..b127750ac 100644 --- a/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingExamplesTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling_Swig/MEDCouplingRemapper.i b/src/MEDCoupling_Swig/MEDCouplingRemapper.i index 650ff55bd..406425067 100644 --- a/src/MEDCoupling_Swig/MEDCouplingRemapper.i +++ b/src/MEDCoupling_Swig/MEDCouplingRemapper.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -52,6 +52,7 @@ namespace ParaMEDMEM int prepare(const MEDCouplingMesh *srcMesh, const MEDCouplingMesh *targetMesh, const char *method) throw(INTERP_KERNEL::Exception); int prepareEx(const MEDCouplingFieldTemplate *src, const MEDCouplingFieldTemplate *target) throw(INTERP_KERNEL::Exception); void transfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); + void partialTransfer(const MEDCouplingFieldDouble *srcField, MEDCouplingFieldDouble *targetField) throw(INTERP_KERNEL::Exception); void reverseTransfer(MEDCouplingFieldDouble *srcField, const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *transferField(const MEDCouplingFieldDouble *srcField, double dftValue) throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *reverseTransferField(const MEDCouplingFieldDouble *targetField, double dftValue) throw(INTERP_KERNEL::Exception); diff --git a/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py b/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py index a1561e7b4..1e7727e3f 100644 --- a/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py +++ b/src/MEDCoupling_Swig/MEDCouplingRemapperTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -80,6 +80,48 @@ class MEDCouplingBasicsTest(unittest.TestCase): self.assertAlmostEqual(valuesExpected[i0],values[i0],12); pass pass + + def testPartialTransfer1(self): + sourceMesh=self.build2DSourceMesh_1(); + targetMesh=self.build2DTargetMesh_3(); + # + remapper=MEDCouplingRemapper(); + remapper.setPrecision(1e-12); + remapper.setIntersectionType(Triangulation); + srcFt=MEDCouplingFieldTemplate.New(ON_CELLS); + trgFt=MEDCouplingFieldTemplate.New(ON_CELLS); + srcFt.setMesh(sourceMesh); + trgFt.setMesh(targetMesh); + self.assertEqual(1,remapper.prepareEx(srcFt,trgFt)); + srcField=MEDCouplingFieldDouble.New(ON_CELLS); + srcField.setNature(ConservativeVolumic); + srcField.setMesh(sourceMesh); + array=DataArrayDouble.New(); + ptr=sourceMesh.getNumberOfCells()*[None] + for i in xrange(sourceMesh.getNumberOfCells()): + ptr[i]=float(i+7); + pass + array.setValues(ptr,sourceMesh.getNumberOfCells(),1); + srcField.setArray(array); + trgfield=MEDCouplingFieldDouble.New(ON_CELLS); + trgfield.setNature(ConservativeVolumic); + trgfield.setMesh(targetMesh); + array=DataArrayDouble.New(); + ptr=targetMesh.getNumberOfCells()*[None] + for i in xrange(targetMesh.getNumberOfCells()): + ptr[i]=4.220173; + pass + array.setValues(ptr,targetMesh.getNumberOfCells(),1); + trgfield.setArray(array); + remapper.partialTransfer(srcField,trgfield); + values=trgfield.getArray().getValues(); + valuesExpected=[7.75, 7.0625, 4.220173,8.0] + self.assertEqual(4,trgfield.getArray().getNumberOfTuples()); + self.assertEqual(1,trgfield.getArray().getNumberOfComponents()); + for i0 in xrange(4): + self.assertAlmostEqual(valuesExpected[i0],values[i0],12); + pass + pass def build2DSourceMesh_1(self): sourceCoords=[-0.3,-0.3, 0.7,-0.3, -0.3,0.7, 0.7,0.7] diff --git a/src/MEDCoupling_Swig/MEDCouplingTypemaps.i b/src/MEDCoupling_Swig/MEDCouplingTypemaps.i index f116a9945..419f82f88 100644 --- a/src/MEDCoupling_Swig/MEDCouplingTypemaps.i +++ b/src/MEDCoupling_Swig/MEDCouplingTypemaps.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -297,11 +297,17 @@ static void convertPyToNewIntArr3(PyObject *pyLi, std::vector& arr) throw(I } } -static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArray, int dftVal) throw(INTERP_KERNEL::Exception) +static void fillArrayWithPyListInt(PyObject *pyLi, int *arrToFill, int sizeOfArray, int dftVal, bool chckSize) throw(INTERP_KERNEL::Exception) { if(PyList_Check(pyLi)) { int size=PyList_Size(pyLi); + if(chckSize) + if(size!=sizeOfArray) + { + std::ostringstream oss; oss << "fillArrayWithPyListInt : List expected to be of size " << sizeOfArray << " but the size is " << size << " !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } for(int i=0;i& v) throw(INTERP_KERNEL::Exception) +{ + if(PyList_Check(ms)) + { + int size=PyList_Size(ms); + v.resize(size); + for(int i=0;i(argp); + v[i]=arg; + } + } + else + { + const char msg[]="convertPyObjToVecUMeshes : not a list"; + PyErr_SetString(PyExc_TypeError,msg); + throw INTERP_KERNEL::Exception(msg); + } +} + +void convertPyObjToVecMeshesCst(PyObject *ms, std::vector& v) throw(INTERP_KERNEL::Exception) +{ + if(PyList_Check(ms)) + { + int size=PyList_Size(ms); + v.resize(size); + for(int i=0;i(argp); + v[i]=arg; + } + } + else + { + const char msg[]="convertPyObjToVecUMeshesCst : not a list"; + PyErr_SetString(PyExc_TypeError,msg); + throw INTERP_KERNEL::Exception(msg); + } +} + void convertPyObjToVecDataArrayDblCst(PyObject *ms, std::vector& v) throw(INTERP_KERNEL::Exception) { if(PyList_Check(ms)) @@ -589,7 +667,7 @@ void convertPyObjToVecFieldDblCst(PyObject *ms, std::vector cpp vector sw=2 * if python tuple[int] -> cpp vector sw=2 * if python DataArrayInt -> cpp DataArrayInt sw=3 + * if python DataArrayIntTuple -> cpp DataArrayIntTuple sw=4 * * switch between (int,vector,DataArrayInt) */ -static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std::vector& stdvecTyypp, ParaMEDMEM::DataArrayInt *& daIntTyypp) throw(INTERP_KERNEL::Exception) +static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std::vector& stdvecTyypp, ParaMEDMEM::DataArrayInt *& daIntTyypp, ParaMEDMEM::DataArrayIntTuple *&daIntTuple) throw(INTERP_KERNEL::Exception) { sw=-1; if(PyInt_Check(value)) @@ -689,10 +768,20 @@ static void convertObjToPossibleCpp1(PyObject *value, int& sw, int& iTyypp, std: } void *argp; int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - if(!SWIG_IsOK(status)) - throw INTERP_KERNEL::Exception("4 types accepted : integer, tuple of integer, list of integer, DataArrayInt"); - daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); - sw=3; + if(SWIG_IsOK(status)) + { + daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + sw=3; + return; + } + status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayIntTuple,0|0); + if(SWIG_IsOK(status)) + { + daIntTuple=reinterpret_cast< ParaMEDMEM::DataArrayIntTuple * >(argp); + sw=4; + return ; + } + throw INTERP_KERNEL::Exception("5 types accepted : integer, tuple of integer, list of integer, DataArrayInt, DataArrayIntTuple"); } /*! @@ -854,6 +943,7 @@ static void convertObjToPossibleCpp44(PyObject *value, int& sw, double& iTyypp, */ static void convertObjToPossibleCpp2(PyObject *value, int nbelem, int& sw, int& iTyypp, std::vector& stdvecTyypp, std::pair >& p, ParaMEDMEM::DataArrayInt *& daIntTyypp) throw(INTERP_KERNEL::Exception) { + const char *msg="5 types accepted : integer, tuple of integer, list of integer, slice, DataArrayInt, DataArrayIntTuple"; sw=-1; if(PyInt_Check(value)) { @@ -914,10 +1004,32 @@ static void convertObjToPossibleCpp2(PyObject *value, int nbelem, int& sw, int& } void *argp; int status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayInt,0|0); - if(!SWIG_IsOK(status)) - throw INTERP_KERNEL::Exception("4 types accepted : integer, tuple of integer, list of integer, slice, DataArrayInt"); - daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); - sw=4; + if(SWIG_IsOK(status)) + { + daIntTyypp=reinterpret_cast< ParaMEDMEM::DataArrayInt * >(argp); + if(!daIntTyypp) + { + std::ostringstream oss; oss << msg << " Instance in null !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + sw=4; + return ; + } + status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayIntTuple,0|0);; + if(SWIG_IsOK(status)) + { + ParaMEDMEM::DataArrayIntTuple *tmp=reinterpret_cast< ParaMEDMEM::DataArrayIntTuple * >(argp); + if(!tmp) + { + std::ostringstream oss; oss << msg << " Instance in null !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + stdvecTyypp.resize(tmp->getNumberOfCompo()); + std::copy(tmp->getConstPointer(),tmp->getConstPointer()+tmp->getNumberOfCompo(),stdvecTyypp.begin()); + sw=2; + return ; + } + throw INTERP_KERNEL::Exception(msg); } static void convertObjToPossibleCpp22(PyObject *value, int nbelem, int& sw, int& iTyypp, std::vector& stdvecTyypp, std::pair >& p, ParaMEDMEM::DataArrayIntTuple *& daIntTyypp) throw(INTERP_KERNEL::Exception) @@ -1044,8 +1156,11 @@ static void convertObjToPossibleCpp3(PyObject *value, int nbTuple, int nbCompo, * if value int -> cpp val sw=1 * if value double -> cpp val sw=1 * if value DataArrayDouble -> cpp DataArrayDouble sw=2 + * if value DataArrayDoubleTuple -> cpp DataArrayDoubleTuple sw=3 + * if value list[int,double] -> cpp std::vector sw=4 + * if value tuple[int,double] -> cpp std::vector sw=4 */ -static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, ParaMEDMEM::DataArrayDouble *&d) +static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, ParaMEDMEM::DataArrayDouble *&d, ParaMEDMEM::DataArrayDoubleTuple *&e, std::vector& f) { sw=-1; if(PyFloat_Check(value)) @@ -1060,10 +1175,60 @@ static void convertObjToPossibleCpp5(PyObject *value, int& sw, double& val, Para sw=1; return; } + if(PyTuple_Check(value)) + { + int size=PyTuple_Size(value); + f.resize(size); + for(int i=0;i(argp); - sw=2; + if(SWIG_IsOK(status)) + { + d=reinterpret_cast< ParaMEDMEM::DataArrayDouble * >(argp); + sw=2; + return ; + } + status=SWIG_ConvertPtr(value,&argp,SWIGTYPE_p_ParaMEDMEM__DataArrayDoubleTuple,0|0); + if(SWIG_IsOK(status)) + { + e=reinterpret_cast< ParaMEDMEM::DataArrayDoubleTuple * >(argp); + sw=3; + return ; + } + throw INTERP_KERNEL::Exception("4 types accepted : integer, double, DataArrayDouble, DataArrayDoubleTuple"); } diff --git a/src/MEDCoupling_Swig/Makefile.am b/src/MEDCoupling_Swig/Makefile.am index f6b096a92..cc06dc64a 100644 --- a/src/MEDCoupling_Swig/Makefile.am +++ b/src/MEDCoupling_Swig/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDCoupling_Swig/libMEDCoupling_Swig.py b/src/MEDCoupling_Swig/libMEDCoupling_Swig.py index bad586db1..dcf64b76d 100644 --- a/src/MEDCoupling_Swig/libMEDCoupling_Swig.py +++ b/src/MEDCoupling_Swig/libMEDCoupling_Swig.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDGUI/CMakeLists.txt b/src/MEDGUI/CMakeLists.txt index a74795233..5cb654278 100644 --- a/src/MEDGUI/CMakeLists.txt +++ b/src/MEDGUI/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -38,6 +38,7 @@ QT4_WRAP_UI(MEDGUI_FORMS_HEADERS ${MEDGUI_FORMS}) INCLUDE_DIRECTORIES( ${OMNIORB_INCLUDES_DIR} ${CAS_INCLUDES_DIR} + ${BOOST_INCLUDES_DIR} ${KERNEL_ROOT_DIR}/include/salome ${GUI_ROOT_DIR}/include/salome ${CMAKE_CURRENT_BINARY_DIR} @@ -57,7 +58,7 @@ SET(MEDGUITS_SOURCES ) ADD_LIBRARY(MEDGUI SHARED ${MEDGUI_SOURCES} ${MEDGUI_HEADERS_MOC} ${MEDGUI_FORMS_HEADERS}) -SET_TARGET_PROPERTIES(MEDGUI PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${XDR_FLAGS} ${CAS_FLAGS}") +SET_TARGET_PROPERTIES(MEDGUI PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${XDR_FLAGS} ${CAS_FLAGS} ${BOOST_FLAGS}") TARGET_LINK_LIBRARIES(MEDGUI medcalculator ${QT_MT_LIBS} ${CAS_KERNEL} ${BOOST_LIBS} ${GUI_LDFLAGS} ${SalomeApp} ${CAM} ${LightApp} ${qtx} ${suit} ${SalomeObject}) INSTALL(TARGETS MEDGUI DESTINATION ${MED_salomelib_LIBS}) QT4_INSTALL_TS_RESOURCES("${MEDGUITS_SOURCES}" "${MED_salomeres_DATA}") diff --git a/src/MEDLoader/CMakeLists.txt b/src/MEDLoader/CMakeLists.txt index 26f5d1c17..04a26227c 100644 --- a/src/MEDLoader/CMakeLists.txt +++ b/src/MEDLoader/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -48,7 +48,7 @@ SET(medloader_SOURCES ADD_LIBRARY(medloader SHARED ${medloader_SOURCES}) SET_TARGET_PROPERTIES(medloader PROPERTIES COMPILE_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS}") -TARGET_LINK_LIBRARIES(medloader medcoupling ${MED3_LIBS_C_ONLY}) +TARGET_LINK_LIBRARIES(medloader medcoupling ${MED3_LIBS_C_ONLY} ${HDF5_LIBS}) INSTALL(TARGETS medloader DESTINATION ${MED_salomelib_LIBS}) FILE(GLOB medloader_HEADERS_HXX "${CMAKE_CURRENT_SOURCE_DIR}/*.hxx") diff --git a/src/MEDLoader/MEDFileBasis.cxx b/src/MEDLoader/MEDFileBasis.cxx index abe2d0b29..aa856a492 100644 --- a/src/MEDLoader/MEDFileBasis.cxx +++ b/src/MEDLoader/MEDFileBasis.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileBasis.hxx b/src/MEDLoader/MEDFileBasis.hxx index f42daa58a..24de3909a 100644 --- a/src/MEDLoader/MEDFileBasis.hxx +++ b/src/MEDLoader/MEDFileBasis.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileData.cxx b/src/MEDLoader/MEDFileData.cxx index cdeb5f137..f82a56dac 100644 --- a/src/MEDLoader/MEDFileData.cxx +++ b/src/MEDLoader/MEDFileData.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileData.hxx b/src/MEDLoader/MEDFileData.hxx index 468f063a3..b7a4a5c7a 100644 --- a/src/MEDLoader/MEDFileData.hxx +++ b/src/MEDLoader/MEDFileData.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileField.cxx b/src/MEDLoader/MEDFileField.cxx index 7c05cabfb..e993e283a 100644 --- a/src/MEDLoader/MEDFileField.cxx +++ b/src/MEDLoader/MEDFileField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -112,6 +112,11 @@ void MEDFileFieldLoc::simpleRepr(std::ostream& oss) const oss << "GaussPtsCoords="; std::copy(_gs_coo.begin(),_gs_coo.end(),std::ostream_iterator(oss," ")); oss << std::endl; } +void MEDFileFieldLoc::setName(const char *name) +{ + _name=name; +} + bool MEDFileFieldLoc::isEqual(const MEDFileFieldLoc& other, double eps) const { if(_name!=other._name) @@ -493,11 +498,45 @@ std::string MEDFileFieldPerMeshPerTypePerDisc::getProfile() const return _profile; } +void MEDFileFieldPerMeshPerTypePerDisc::setProfile(const char *newPflName) +{ + _profile=newPflName; +} + std::string MEDFileFieldPerMeshPerTypePerDisc::getLocalization() const { return _localization; } +void MEDFileFieldPerMeshPerTypePerDisc::setLocalization(const char *newLocName) +{ + _localization=newLocName; +} + +void MEDFileFieldPerMeshPerTypePerDisc::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< std::pair, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++) + { + if(std::find((*it2).first.begin(),(*it2).first.end(),_profile)!=(*it2).first.end()) + { + _profile=(*it2).second; + return; + } + } +} + +void MEDFileFieldPerMeshPerTypePerDisc::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< std::pair, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++) + { + if(std::find((*it2).first.begin(),(*it2).first.end(),_localization)!=(*it2).first.end()) + { + _localization=(*it2).second; + return; + } + } +} + void MEDFileFieldPerMeshPerTypePerDisc::getFieldAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair >& dads, std::vector& pfls, std::vector& locs, std::vector& geoTypes) const { if(type!=_type) @@ -884,16 +923,51 @@ const std::vector& MEDFileFieldPerMeshPerType::getInfo() const std::vector MEDFileFieldPerMeshPerType::getPflsReallyUsed() const { std::vector ret; + std::set ret2; for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) { std::string tmp=(*it1)->getProfile(); if(!tmp.empty()) - ret.push_back(tmp); + if(ret2.find(tmp)==ret2.end()) + { + ret.push_back(tmp); + ret2.insert(tmp); + } } return ret; } std::vector MEDFileFieldPerMeshPerType::getLocsReallyUsed() const +{ + std::vector ret; + std::set ret2; + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) + { + std::string tmp=(*it1)->getLocalization(); + if(!tmp.empty() && tmp!=MED_GAUSS_ELNO) + if(ret2.find(tmp)==ret2.end()) + { + ret.push_back(tmp); + ret2.insert(tmp); + } + } + return ret; +} + +std::vector MEDFileFieldPerMeshPerType::getPflsReallyUsedMulti() const +{ + std::vector ret; + std::set ret2; + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) + { + std::string tmp=(*it1)->getProfile(); + if(!tmp.empty()) + ret.push_back(tmp); + } + return ret; +} + +std::vector MEDFileFieldPerMeshPerType::getLocsReallyUsedMulti() const { std::vector ret; for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) @@ -905,6 +979,52 @@ std::vector MEDFileFieldPerMeshPerType::getLocsReallyUsed() const return ret; } +void MEDFileFieldPerMeshPerType::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) + (*it1)->changePflsRefsNamesGen(mapOfModif); +} + +void MEDFileFieldPerMeshPerType::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it1=_field_pm_pt_pd.begin();it1!=_field_pm_pt_pd.end();it1++) + (*it1)->changeLocsRefsNamesGen(mapOfModif); +} + +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerType::getLeafGivenLocId(int locId) throw(INTERP_KERNEL::Exception) +{ + if(_field_pm_pt_pd.empty()) + { + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type); + std::ostringstream oss; oss << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no localizations for geotype \"" << cm.getRepr() << "\" !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(locId>=0 && locId<(int)_field_pm_pt_pd.size()) + return _field_pm_pt_pd[locId]; + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type); + std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no such locId available (" << locId; + oss2 << ") for geometric type \"" << cm.getRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !"; + throw INTERP_KERNEL::Exception(oss2.str().c_str()); + return static_cast(0); +} + +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMeshPerType::getLeafGivenLocId(int locId) const throw(INTERP_KERNEL::Exception) +{ + if(_field_pm_pt_pd.empty()) + { + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type); + std::ostringstream oss; oss << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no localizations for geotype \"" << cm.getRepr() << "\" !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + if(locId>=0 && locId<(int)_field_pm_pt_pd.size()) + return _field_pm_pt_pd[locId]; + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(_geo_type); + std::ostringstream oss2; oss2 << "MEDFileFieldPerMeshPerType::getLeafGivenLocId : no such locId available (" << locId; + oss2 << ") for geometric type \"" << cm.getRepr() << "\" It should be in [0," << _field_pm_pt_pd.size() << ") !"; + throw INTERP_KERNEL::Exception(oss2.str().c_str()); + return static_cast(0); +} + void MEDFileFieldPerMeshPerType::getFieldAtLevel(int meshDim, TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair >& dads, std::vector& pfls, std::vector& locs, std::vector& geoTypes) const { if(_geo_type!=INTERP_KERNEL::NORM_ERROR) @@ -1280,6 +1400,17 @@ std::vector MEDFileFieldPerMesh::getPflsReallyUsed() const return ret; } +std::vector MEDFileFieldPerMesh::getPflsReallyUsedMulti() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + std::vector tmp=(*it)->getPflsReallyUsedMulti(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + std::vector MEDFileFieldPerMesh::getLocsReallyUsed() const { std::vector ret; @@ -1297,6 +1428,29 @@ std::vector MEDFileFieldPerMesh::getLocsReallyUsed() const return ret; } +std::vector MEDFileFieldPerMesh::getLocsReallyUsedMulti() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + std::vector tmp=(*it)->getLocsReallyUsedMulti(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +void MEDFileFieldPerMesh::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + (*it)->changePflsRefsNamesGen(mapOfModif); +} + +void MEDFileFieldPerMesh::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + (*it)->changeLocsRefsNamesGen(mapOfModif); +} + MEDCouplingFieldDouble *MEDFileFieldPerMesh::getFieldOnMeshAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl) const throw(INTERP_KERNEL::Exception) { if(_field_pm_pt.empty()) @@ -1413,6 +1567,42 @@ DataArrayDouble *MEDFileFieldPerMesh::getUndergroundDataArrayExt(std::vector< st return _father->getUndergroundDataArray(); } +MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + if((*it)->getGeoType()==typ) + return (*it)->getLeafGivenLocId(locId); + } + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ); + std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl; + oss << "Possiblities are : "; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType()); + oss << "\"" << cm2.getRepr() << "\", "; + } + throw INTERP_KERNEL::Exception(oss.str().c_str()); +} + +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileFieldPerMesh::getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + if((*it)->getGeoType()==typ) + return (*it)->getLeafGivenLocId(locId); + } + const INTERP_KERNEL::CellModel& cm=INTERP_KERNEL::CellModel::GetCellModel(typ); + std::ostringstream oss; oss << "MEDFileFieldPerMesh::getLeafGivenTypeAndLocId : no such geometric type \"" << cm.getRepr() << "\" in this !" << std::endl; + oss << "Possiblities are : "; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMeshPerType > >::const_iterator it=_field_pm_pt.begin();it!=_field_pm_pt.end();it++) + { + const INTERP_KERNEL::CellModel& cm2=INTERP_KERNEL::CellModel::GetCellModel((*it)->getGeoType()); + oss << "\"" << cm2.getRepr() << "\", "; + } + throw INTERP_KERNEL::Exception(oss.str().c_str()); +} + int MEDFileFieldPerMesh::addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type) { int i=0; @@ -1512,6 +1702,27 @@ MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField3(const MEDFieldFieldGlo if(nbOfTuples==ComputeNbOfElems(glob,ON_NODES,geoTypes2,dads,locs))//No problem for NORM_ERROR because it is in context of node return finishField(ON_NODES,glob,dads,locs,mesh,isPfl); } + // Treatment of particular case where nodal field on pfl is requested with a meshDimRelToMax=1. + const MEDCouplingUMesh *meshu=dynamic_cast(mesh); + if(meshu) + { + if(meshu->getNodalConnectivity()==0) + { + MEDCouplingAutoRefCountObjectPtr ret=finishField(ON_CELLS,glob,dads,locs,mesh,isPfl); + int nb=da->getNbOfElems(); + const int *ptr=da->getConstPointer(); + MEDCouplingUMesh *meshuc=const_cast(meshu); + meshuc->allocateCells(nb); + for(int i=0;iinsertNextCell(INTERP_KERNEL::NORM_POINT1,1,ptr+i); + meshuc->finishInsertingCells(); + ret->setMesh(meshuc); + ret->checkCoherency(); + ret->incrRef(); + return ret; + } + } + // MEDCouplingAutoRefCountObjectPtr ret=finishField(ON_NODES,glob,dads,locs,mesh,isPfl); isPfl=true; DataArrayInt *arr2=0; @@ -1532,8 +1743,9 @@ MEDCouplingFieldDouble *MEDFileFieldPerMesh::finishField3(const MEDFieldFieldGlo { std::ostringstream oss; oss << "MEDFileFieldPerMesh::finishField3 : The field on nodes lies on a node profile so that it is impossible to find a submesh having exactly the same nodes of that profile !!!"; oss << "So it is impossible to return a well definied MEDCouplingFieldDouble instance on specified mesh on a specified meshDim !" << std::endl; - oss << "To retrieve correctly such a field you have 2 possibilities :" << std::endl; + oss << "To retrieve correctly such a field you have 3 possibilities :" << std::endl; oss << " - use an another meshDim compatible with the field on nodes (MED file does not have such information)" << std::endl; + oss << " - use an another a meshDimRelToMax equal to 1 -> it will return a mesh with artificial cell POINT1 containing the profile !" << std::endl; oss << " - if definitely the node profile has no link with mesh connectivity use MEDFileField1TS::getFieldWithProfile or MEDFileFieldMultiTS::getFieldWithProfile methods instead !"; throw INTERP_KERNEL::Exception(oss.str().c_str()); } @@ -1766,6 +1978,46 @@ void MEDFieldFieldGlobs::setFileName(const char *fileName) _file_name=fileName; } +void MEDFieldFieldGlobs::changePflsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it=_pfls.begin();it!=_pfls.end();it++) + { + DataArrayInt *elt(*it); + if(elt) + { + std::string name(elt->getName()); + for(std::vector< std::pair, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++) + { + if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end()) + { + elt->setName((*it2).second.c_str()); + return; + } + } + } + } +} + +void MEDFieldFieldGlobs::changeLocsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it=_locs.begin();it!=_locs.end();it++) + { + MEDFileFieldLoc *elt(*it); + if(elt) + { + std::string name(elt->getName()); + for(std::vector< std::pair, std::string > >::const_iterator it2=mapOfModif.begin();it2!=mapOfModif.end();it2++) + { + if(std::find((*it2).first.begin(),(*it2).first.end(),name)!=(*it2).first.end()) + { + elt->setName((*it2).second.c_str()); + return; + } + } + } + } +} + int MEDFieldFieldGlobs::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception) { if(locId<0 || locId>=(int)_locs.size()) @@ -1773,9 +2025,9 @@ int MEDFieldFieldGlobs::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERN return _locs[locId]->getNbOfGaussPtPerCell(); } -const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception) +const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception) { - return getLocalizationFromId(getLocalizationId(pflName)); + return getLocalizationFromId(getLocalizationId(locName)); } const MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception) @@ -1819,12 +2071,13 @@ int MEDFieldFieldGlobs::getLocalizationId(const char *loc) const throw(INTERP_KE return std::distance(_locs.begin(),it); } -const DataArrayInt *MEDFieldFieldGlobs::getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception) +const DataArrayInt *MEDFieldFieldGlobs::getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception) { - std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflName)); + std::string pflNameCpp(pflName); + std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflNameCpp)); if(it==_pfls.end()) { - std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflName << "\" Possible profiles are : "; + std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : "; for(it=_pfls.begin();it!=_pfls.end();it++) oss << "\"" << (*it)->getName() << "\", "; throw INTERP_KERNEL::Exception(oss.str().c_str()); @@ -1832,6 +2085,70 @@ const DataArrayInt *MEDFieldFieldGlobs::getProfile(const std::string& pflName) c return *it; } +const DataArrayInt *MEDFieldFieldGlobs::getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception) +{ + if(pflId<0 || pflId>=(int)_pfls.size()) + throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getProfileFromId : Invalid profile id !"); + return _pfls[pflId]; +} + +MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception) +{ + if(locId<0 || locId>=(int)_locs.size()) + throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getLocalizationFromId : Invalid localization id !"); + return *_locs[locId]; +} + +MEDFileFieldLoc& MEDFieldFieldGlobs::getLocalization(const char *locName) throw(INTERP_KERNEL::Exception) +{ + return getLocalizationFromId(getLocalizationId(locName)); +} + +DataArrayInt *MEDFieldFieldGlobs::getProfile(const char *pflName) throw(INTERP_KERNEL::Exception) +{ + std::string pflNameCpp(pflName); + std::vector< MEDCouplingAutoRefCountObjectPtr >::iterator it=std::find_if(_pfls.begin(),_pfls.end(),ParaMEDMEMImpl::PflFinder(pflNameCpp)); + if(it==_pfls.end()) + { + std::ostringstream oss; oss << "MEDFieldFieldGlobs::getProfile: no such profile name : \"" << pflNameCpp << "\" Possible profiles are : "; + for(it=_pfls.begin();it!=_pfls.end();it++) + oss << "\"" << (*it)->getName() << "\", "; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } + return *it; +} + +DataArrayInt *MEDFieldFieldGlobs::getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception) +{ + if(pflId<0 || pflId>=(int)_pfls.size()) + throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::getProfileFromId : Invalid profile id !"); + return _pfls[pflId]; +} + +void MEDFieldFieldGlobs::killProfileIds(const std::vector& pflIds) throw(INTERP_KERNEL::Exception) +{ + std::vector< MEDCouplingAutoRefCountObjectPtr > newPfls; + int i=0; + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++) + { + if(std::find(pflIds.begin(),pflIds.end(),i)==pflIds.end()) + newPfls.push_back(*it); + } + _pfls=newPfls; +} + +void MEDFieldFieldGlobs::killLocalizationIds(const std::vector& locIds) throw(INTERP_KERNEL::Exception) +{ + std::vector< MEDCouplingAutoRefCountObjectPtr > newLocs; + int i=0; + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_locs.begin();it!=_locs.end();it++,i++) + { + if(std::find(locIds.begin(),locIds.end(),i)==locIds.end()) + newLocs.push_back(*it); + } + _locs=newLocs; +} + std::vector MEDFieldFieldGlobs::getPfls() const { int sz=_pfls.size(); @@ -1850,6 +2167,65 @@ std::vector MEDFieldFieldGlobs::getLocs() const return ret; } +bool MEDFieldFieldGlobs::existsPfl(const char *pflName) const +{ + std::vector v=getPfls(); + std::string s(pflName); + return std::find(v.begin(),v.end(),s)!=v.end(); +} + +bool MEDFieldFieldGlobs::existsLoc(const char *locName) const +{ + std::vector v=getLocs(); + std::string s(locName); + return std::find(v.begin(),v.end(),s)!=v.end(); +} + +std::vector< std::vector > MEDFieldFieldGlobs::whichAreEqualProfiles() const +{ + std::map > m; + int i=0; + for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_pfls.begin();it!=_pfls.end();it++,i++) + { + const DataArrayInt *tmp=(*it); + if(tmp) + { + m[tmp->getHashCode()].push_back(i); + } + } + std::vector< std::vector > ret; + for(std::map >::const_iterator it2=m.begin();it2!=m.end();it2++) + { + if((*it2).second.size()>1) + { + std::vector ret0; + bool equalityOrNot=false; + for(std::vector::const_iterator it3=(*it2).second.begin();it3!=(*it2).second.end();it3++) + { + std::vector::const_iterator it4=it3; it4++; + for(;it4!=(*it2).second.end();it4++) + { + if(_pfls[*it3]->isEqualWithoutConsideringStr(*_pfls[*it4])) + { + if(!equalityOrNot) + ret0.push_back(*it3); + ret0.push_back(*it4); + equalityOrNot=true; + } + } + } + if(!ret0.empty()) + ret.push_back(ret0); + } + } + return ret; +} + +std::vector< std::vector > MEDFieldFieldGlobs::whichAreEqualLocs(double eps) const +{ + throw INTERP_KERNEL::Exception("MEDFieldFieldGlobs::whichAreEqualLocs : no implemented yet ! Sorry !"); +} + void MEDFieldFieldGlobs::appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception) { std::string name(pfl->getName()); @@ -1953,11 +2329,125 @@ std::vector MEDFieldFieldGlobsReal::getLocs() const return _globals->getLocs(); } +bool MEDFieldFieldGlobsReal::existsPfl(const char *pflName) const +{ + return _globals->existsPfl(pflName); +} + +bool MEDFieldFieldGlobsReal::existsLoc(const char *locName) const +{ + return _globals->existsLoc(locName); +} + void MEDFieldFieldGlobsReal::setFileName(const char *fileName) { _globals->setFileName(fileName); } +std::vector< std::vector > MEDFieldFieldGlobsReal::whichAreEqualProfiles() const +{ + return _globals->whichAreEqualProfiles(); +} + +std::vector< std::vector > MEDFieldFieldGlobsReal::whichAreEqualLocs(double eps) const +{ + return _globals->whichAreEqualLocs(eps); +} + +void MEDFieldFieldGlobsReal::changePflsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + _globals->changePflsNamesInStruct(mapOfModif); +} + +void MEDFieldFieldGlobsReal::changeLocsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + _globals->changeLocsNamesInStruct(mapOfModif); +} + +/*! + * This method is a generalization of MEDFieldFieldGlobsReal::changePflName. + * This method contrary to abstract method MEDFieldFieldGlobsReal::changePflsRefsNamesGen updates in addition of MEDFieldFieldGlobsReal::changePflsRefsNamesGen, + * the profiles themselves and not only leaves of field. + */ +void MEDFieldFieldGlobsReal::changePflsNames(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changePflsRefsNamesGen(mapOfModif); + changePflsNamesInStruct(mapOfModif); +} + +/*! + * This method is a generalization of MEDFieldFieldGlobsReal::changePflName. + * This method contrary to abstract method MEDFieldFieldGlobsReal::changeLocsRefsNamesGen updates in addition of MEDFieldFieldGlobsReal::changeLocsRefsNamesGen, + * the localizations themselves and not only leaves of field. + */ +void MEDFieldFieldGlobsReal::changeLocsNames(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changeLocsRefsNamesGen(mapOfModif); + changeLocsNamesInStruct(mapOfModif); +} + +/*! + * This method is a more friendly API but less general method than MEDFieldFieldGlobsReal::changePflsNames. + */ +void MEDFieldFieldGlobsReal::changePflName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception) +{ + std::vector< std::pair, std::string > > mapOfModif(1); + std::pair, std::string > p(std::vector(1,std::string(oldName)),std::string(newName)); + mapOfModif[0]=p; + changePflsNames(mapOfModif); +} + +/*! + * This method is a more friendly API but less general method than MEDFieldFieldGlobsReal::changeLocsNames. + */ +void MEDFieldFieldGlobsReal::changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception) +{ + std::vector< std::pair, std::string > > mapOfModif(1); + std::pair, std::string > p(std::vector(1,std::string(oldName)),std::string(newName)); + mapOfModif[0]=p; + changeLocsNames(mapOfModif); +} + +std::vector< std::pair, std::string > > MEDFieldFieldGlobsReal::zipPflsNames() throw(INTERP_KERNEL::Exception) +{ + std::vector< std::vector > pseudoRet=whichAreEqualProfiles(); + std::vector< std::pair, std::string > > ret(pseudoRet.size()); + int i=0; + for(std::vector< std::vector >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++) + { + std::vector< std::string > tmp((*it).size()); + int j=0; + for(std::vector::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++) + tmp[j]=std::string(getProfileFromId(*it2)->getName()); + std::pair, std::string > p(tmp,tmp.front()); + ret[i]=p; + std::vector tmp2((*it).begin()+1,(*it).end()); + killProfileIds(tmp2); + } + changePflsRefsNamesGen(ret); + return ret; +} + +std::vector< std::pair, std::string > > MEDFieldFieldGlobsReal::zipLocsNames(double eps) throw(INTERP_KERNEL::Exception) +{ + std::vector< std::vector > pseudoRet=whichAreEqualLocs(eps); + std::vector< std::pair, std::string > > ret(pseudoRet.size()); + int i=0; + for(std::vector< std::vector >::const_iterator it=pseudoRet.begin();it!=pseudoRet.end();it++,i++) + { + std::vector< std::string > tmp((*it).size()); + int j=0; + for(std::vector::const_iterator it2=(*it).begin();it2!=(*it).end();it2++,j++) + tmp[j]=std::string(getLocalizationFromId(*it2).getName()); + std::pair, std::string > p(tmp,tmp.front()); + ret[i]=p; + std::vector tmp2((*it).begin()+1,(*it).end()); + killLocalizationIds(tmp2); + } + changeLocsRefsNamesGen(ret); + return ret; +} + int MEDFieldFieldGlobsReal::getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception) { return _globals->getNbOfGaussPtPerCell(locId); @@ -1978,9 +2468,9 @@ std::string MEDFieldFieldGlobsReal::getFileName2() const return _globals->getFileName2(); } -const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception) +const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception) { - return _globals->getLocalization(pflName); + return _globals->getLocalization(locName); } const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception) @@ -1988,11 +2478,46 @@ const MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId) return _globals->getLocalizationFromId(locId); } -const DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception) +const DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception) { return _globals->getProfile(pflName); } +const DataArrayInt *MEDFieldFieldGlobsReal::getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception) +{ + return _globals->getProfileFromId(pflId); +} + +MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception) +{ + return _globals->getLocalizationFromId(locId); +} + +MEDFileFieldLoc& MEDFieldFieldGlobsReal::getLocalization(const char *locName) throw(INTERP_KERNEL::Exception) +{ + return _globals->getLocalization(locName); +} + +DataArrayInt *MEDFieldFieldGlobsReal::getProfile(const char *pflName) throw(INTERP_KERNEL::Exception) +{ + return _globals->getProfile(pflName); +} + +DataArrayInt *MEDFieldFieldGlobsReal::getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception) +{ + return _globals->getProfileFromId(pflId); +} + +void MEDFieldFieldGlobsReal::killProfileIds(const std::vector& pflIds) throw(INTERP_KERNEL::Exception) +{ + _globals->killProfileIds(pflIds); +} + +void MEDFieldFieldGlobsReal::killLocalizationIds(const std::vector& locIds) throw(INTERP_KERNEL::Exception) +{ + _globals->killLocalizationIds(locIds); +} + void MEDFieldFieldGlobsReal::appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception) { _globals->appendProfile(pfl); @@ -2386,6 +2911,41 @@ std::vector MEDFileField1TSWithoutDAS::getLocsReallyUsed2() const return ret; } +std::vector MEDFileField1TSWithoutDAS::getPflsReallyUsedMulti2() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++) + { + std::vector tmp=(*it)->getPflsReallyUsedMulti(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +std::vector MEDFileField1TSWithoutDAS::getLocsReallyUsedMulti2() const +{ + std::vector ret; + std::set ret2; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::const_iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++) + { + std::vector tmp=(*it)->getLocsReallyUsedMulti(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +void MEDFileField1TSWithoutDAS::changePflsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++) + (*it)->changePflsRefsNamesGen(mapOfModif); +} + +void MEDFileField1TSWithoutDAS::changeLocsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldPerMesh > >::iterator it=_field_per_mesh.begin();it!=_field_per_mesh.end();it++) + (*it)->changeLocsRefsNamesGen(mapOfModif); +} + void MEDFileField1TSWithoutDAS::writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception) { if(_field_per_mesh.empty()) @@ -2465,10 +3025,11 @@ MEDCouplingFieldDouble *MEDFileField1TSWithoutDAS::getFieldAtLevel(TypeOfField t MEDCouplingFieldDouble *MEDFileField1TSWithoutDAS::getFieldOnMeshAtLevel(TypeOfField type, int meshDimRelToMax, int renumPol, const MEDFieldFieldGlobsReal *glob, const MEDFileMesh *mesh) const throw(INTERP_KERNEL::Exception) { - CheckMeshDimRel(meshDimRelToMax); MEDCouplingAutoRefCountObjectPtr m=mesh->getGenMeshAtLevel(meshDimRelToMax,false); const DataArrayInt *d=mesh->getNumberFieldAtLevel(meshDimRelToMax); const DataArrayInt *e=mesh->getNumberFieldAtLevel(1); + if(meshDimRelToMax==1) + (static_cast((MEDCouplingMesh *)m))->setMeshDimension(0); return MEDFileField1TSWithoutDAS::getFieldOnMeshAtLevel(type,renumPol,glob,m,d,e); } @@ -2612,6 +3173,9 @@ int MEDFileField1TSWithoutDAS::addNewEntryIfNecessary(const MEDCouplingMesh *mes return sz; } +/*! + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh. + */ int MEDFileField1TSWithoutDAS::getMeshIdFromMeshName(const char *mName) const throw(INTERP_KERNEL::Exception) { if(_field_per_mesh.empty()) @@ -2633,6 +3197,30 @@ int MEDFileField1TSWithoutDAS::getMeshIdFromMeshName(const char *mName) const th throw INTERP_KERNEL::Exception(oss.str().c_str()); } +/*! + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh. + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of + * \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0. + */ +MEDFileFieldPerMeshPerTypePerDisc *MEDFileField1TSWithoutDAS::getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception) +{ + int mid=getMeshIdFromMeshName(mName); + return _field_per_mesh[mid]->getLeafGivenTypeAndLocId(typ,locId); +} + +/*! + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh. + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of + * \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0. + */ +const MEDFileFieldPerMeshPerTypePerDisc *MEDFileField1TSWithoutDAS::getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception) +{ + int mid=getMeshIdFromMeshName(mName); + return _field_per_mesh[mid]->getLeafGivenTypeAndLocId(typ,locId); +} + DataArrayDouble *MEDFileField1TSWithoutDAS::getOrCreateAndGetArray() { DataArrayDouble *ret=_arr; @@ -2773,16 +3361,53 @@ MEDFileField1TS::MEDFileField1TS() { } +/*! + * This method returns all profiles whose name is non empty used. + * \b WARNING If profile is used several times it will be reported \b only \b once. + * To get non empty name profiles as time as they appear in \b this call MEDFileField1TS::getPflsReallyUsedMulti instead. + */ std::vector MEDFileField1TS::getPflsReallyUsed() const { return getPflsReallyUsed2(); } +/*! + * This method returns all localizations whose name is non empty used. + * \b WARNING If localization is used several times it will be reported \b only \b once. + */ std::vector MEDFileField1TS::getLocsReallyUsed() const { return getLocsReallyUsed2(); } +/*! + * This method returns all profiles whose name is non empty used. + * \b WARNING contrary to MEDFileField1TS::getPflsReallyUsed, if profile is used several times it will be reported as time as it appears. + */ +std::vector MEDFileField1TS::getPflsReallyUsedMulti() const +{ + return getPflsReallyUsedMulti2(); +} + +/*! + * This method returns all localizations whose name is non empty used. + * \b WARNING contrary to MEDFileField1TS::getLocsReallyUsed if localization is used several times it will be reported as time as it appears. + */ +std::vector MEDFileField1TS::getLocsReallyUsedMulti() const +{ + return getLocsReallyUsedMulti2(); +} + +void MEDFileField1TS::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changePflsRefsNamesGen2(mapOfModif); +} + +void MEDFileField1TS::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changeLocsRefsNamesGen2(mapOfModif); +} + /*! * This method requests underlying file to perform the job, for mesh reading. If the current instance is not coming from a file and has been constructed from scratch * an exception will be thrown. In this case you should use MEDFileField1TS::getFieldOnMeshAtLevel method instead. @@ -2871,6 +3496,81 @@ void MEDFileField1TS::setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileField1TSWithoutDAS::setFieldProfile(field,mesh,meshDimRelToMax,profile,*this); } +/*! + * This method as MEDFileField1TSW::setLocNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure + * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutDAS::getFieldSplitedByType or MEDFileField1TSWithoutDAS::getFieldSplitedByType2. + * This method changes the attribute (here it's profile name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance). + * It is the responsability of the caller to invoke MEDFieldFieldGlobs::appendProfile or MEDFieldFieldGlobs::getProfile + * to keep a valid instance. + * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown. + * If \b newPflName profile name does not already exist the profile with old name will be renamed with name \b newPflName. + * If \b newPflName already exists and that \b forceRenameOnGlob is false (the default) an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newPflName. + * + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh. + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of + * \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0. + * \param [in] newLocName is the new localization name. + * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newPflName already exists. If true, the renaming is done without check. It can lead to major bug. + * If false, an exception will be thrown to force user to change previously the name of the profile with name \b newPflName + */ +void MEDFileField1TS::setProfileNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob) throw(INTERP_KERNEL::Exception) +{ + MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId); + std::string oldPflName=disc->getProfile(); + std::vector vv=getPflsReallyUsedMulti(); + int nbOfOcc=std::count(vv.begin(),vv.end(),oldPflName); + if(forceRenameOnGlob || (!existsPfl(newPflName) && nbOfOcc==1)) + { + disc->setProfile(newPflName); + DataArrayInt *pfl=getProfile(oldPflName.c_str()); + pfl->setName(newPflName); + } + else + { + std::ostringstream oss; oss << "MEDFileField1TS::setProfileNameOnLeaf : Profile \"" << newPflName << "\" already exists or referenced more than one !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } +} + +/*! + * This method as MEDFileField1TSW::setProfileNameOnLeaf, is dedicated for advanced user that a want a very fine control on their data structure + * without overhead. This method can be called only regarding information returned by MEDFileField1TSWithoutDAS::getFieldSplitedByType or MEDFileField1TSWithoutDAS::getFieldSplitedByType2. + * This method changes the attribute (here it's localization name) of the leaf datastructure (MEDFileFieldPerMeshPerTypePerDisc instance). + * It is the responsability of the caller to invoke MEDFieldFieldGlobs::appendProfile or MEDFieldFieldGlobs::getProfile + * to keep a valid instance. + * If \b this do not have any leaf that correspond to the request of the input parameter (\b mName, \b typ, \b locId) an INTERP_KERNEL::Exception will be thrown. + * This method is an extension of MEDFileField1TSWithoutDAS::setProfileNameOnLeafExt method because it performs a modification of global info. + * If \b newLocName profile name does not already exist the localization with old name will be renamed with name \b newLocName. + * If \b newLocName already exists an INTERP_KERNEL::Exception will be thrown to avoid big confusion. In this case the called should rename before the profile name with name \b newLocName. + * + * \param [in] mName specifies the underlying mesh name. This value can be pointer 0 for users that do not deal with fields on multi mesh. + * \param [in] typ is for the geometric cell type (or INTERP_KERNEL::NORM_ERROR for node field) entry to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. + * \param [in] locId is the localization id to find the right MEDFileFieldPerMeshPerTypePerDisc instance to set. It corresponds to the position of + * \c pfls[std::distance(types.begin(),std::find(types.begin(),typ)] vector in MEDFileField1TSWithoutDAS::getFieldSplitedByType. For non gausspoints field users, the value is 0. + * \param [in] newLocName is the new localization name. + * \param [in] forceRenameOnGlob specifies the behaviour in case of profile \b newLocName already exists. If true, the renaming is done without check. It can lead to major bug. + * If false, an exception will be thrown to force user to change previously the name of the profile with name \b newLocName + */ +void MEDFileField1TS::setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob) throw(INTERP_KERNEL::Exception) +{ + MEDFileFieldPerMeshPerTypePerDisc *disc=getLeafGivenMeshAndTypeAndLocId(mName,typ,locId); + std::string oldLocName=disc->getLocalization(); + std::vector vv=getLocsReallyUsedMulti(); + int nbOfOcc=std::count(vv.begin(),vv.end(),oldLocName); + if(forceRenameOnGlob || (!existsLoc(newLocName) && nbOfOcc==1)) + { + disc->setLocalization(newLocName); + MEDFileFieldLoc& loc=getLocalization(oldLocName.c_str()); + loc.setName(newLocName); + } + else + { + std::ostringstream oss; oss << "MEDFileField1TS::setLocNameOnLeaf : Localization \"" << newLocName << "\" already exists or referenced more than one !"; + throw INTERP_KERNEL::Exception(oss.str().c_str()); + } +} + MEDFileFieldMultiTSWithoutDAS *MEDFileFieldMultiTSWithoutDAS::New(med_idt fid, const char *fieldName, int id, int ft, const std::vector& infos, int nbOfStep) throw(INTERP_KERNEL::Exception) { return new MEDFileFieldMultiTSWithoutDAS(fid,fieldName,id,ft,infos,nbOfStep); @@ -3194,6 +3894,40 @@ std::vector MEDFileFieldMultiTSWithoutDAS::getLocsReallyUsed2() con return ret; } +std::vector MEDFileFieldMultiTSWithoutDAS::getPflsReallyUsedMulti2() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++) + { + std::vector tmp=(*it)->getPflsReallyUsedMulti2(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +std::vector MEDFileFieldMultiTSWithoutDAS::getLocsReallyUsedMulti2() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::const_iterator it=_time_steps.begin();it!=_time_steps.end();it++) + { + std::vector tmp=(*it)->getLocsReallyUsedMulti2(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +void MEDFileFieldMultiTSWithoutDAS::changePflsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++) + (*it)->changePflsRefsNamesGen2(mapOfModif); +} + +void MEDFileFieldMultiTSWithoutDAS::changeLocsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileField1TSWithoutDAS > >::iterator it=_time_steps.begin();it!=_time_steps.end();it++) + (*it)->changeLocsRefsNamesGen2(mapOfModif); +} + MEDFileFieldMultiTS *MEDFileFieldMultiTS::New() { return new MEDFileFieldMultiTS; @@ -3384,6 +4118,26 @@ std::vector MEDFileFieldMultiTS::getLocsReallyUsed() const return getLocsReallyUsed2(); } +std::vector MEDFileFieldMultiTS::getPflsReallyUsedMulti() const +{ + return getPflsReallyUsedMulti2(); +} + +std::vector MEDFileFieldMultiTS::getLocsReallyUsedMulti() const +{ + return getLocsReallyUsedMulti2(); +} + +void MEDFileFieldMultiTS::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changePflsRefsNamesGen2(mapOfModif); +} + +void MEDFileFieldMultiTS::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + changeLocsRefsNamesGen2(mapOfModif); +} + MEDFileFields *MEDFileFields::New() { return new MEDFileFields; @@ -3558,6 +4312,40 @@ std::vector MEDFileFields::getLocsReallyUsed() const return ret; } +std::vector MEDFileFields::getPflsReallyUsedMulti() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::const_iterator it=_fields.begin();it!=_fields.end();it++) + { + std::vector tmp=(*it)->getPflsReallyUsedMulti2(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +std::vector MEDFileFields::getLocsReallyUsedMulti() const +{ + std::vector ret; + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::const_iterator it=_fields.begin();it!=_fields.end();it++) + { + std::vector tmp=(*it)->getLocsReallyUsed2(); + ret.insert(ret.end(),tmp.begin(),tmp.end()); + } + return ret; +} + +void MEDFileFields::changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::iterator it=_fields.begin();it!=_fields.end();it++) + (*it)->changePflsRefsNamesGen2(mapOfModif); +} + +void MEDFileFields::changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) +{ + for(std::vector< MEDCouplingAutoRefCountObjectPtr< MEDFileFieldMultiTSWithoutDAS > >::iterator it=_fields.begin();it!=_fields.end();it++) + (*it)->changeLocsRefsNamesGen2(mapOfModif); +} + void MEDFileFields::resize(int newSize) throw(INTERP_KERNEL::Exception) { _fields.resize(newSize); diff --git a/src/MEDLoader/MEDFileField.hxx b/src/MEDLoader/MEDFileField.hxx index 32e9df5ab..53ce15005 100644 --- a/src/MEDLoader/MEDFileField.hxx +++ b/src/MEDLoader/MEDFileField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -34,10 +34,7 @@ #include #include -extern "C" -{ #include "med.h" -} namespace ParaMEDMEM { @@ -51,6 +48,7 @@ namespace ParaMEDMEM public: void MEDLOADER_EXPORT simpleRepr(std::ostream& oss) const; const MEDLOADER_EXPORT std::string& getName() const { return _name; } + void MEDLOADER_EXPORT setName(const char *name); static MEDFileFieldLoc *New(med_idt fid, const char *locName); static MEDFileFieldLoc *New(med_idt fid, int id); static MEDFileFieldLoc *New(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector& refCoo, const std::vector& gsCoo, const std::vector& w); @@ -114,8 +112,12 @@ namespace ParaMEDMEM const DataArrayDouble *getArray() const; const std::vector& getInfo() const; std::string getProfile() const; + void setProfile(const char *newPflName); std::string getLocalization() const; + void setLocalization(const char *newLocName); int getLocId() const { return _loc_id; } + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); void getFieldAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair >& dads, std::vector& pfls, std::vector& locs, std::vector& geoTypes) const; void fillValues(int discId, int& startEntryId, std::vector< std::pair,std::pair > >& entries) const; @@ -128,8 +130,7 @@ namespace ParaMEDMEM MEDFileFieldPerMeshPerType *_father; int _start; int _end; - //MEDCouplingAutoRefCountObjectPtr< DataArrayDouble > _arr; - //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(end-start)/nbi) + //! _nval is different than end-start in case of ON_GAUSS_PT and ON_GAUSS_NE ! (_nval=(_end-_start)/nbi) int _nval; int _profile_it; std::string _profile; @@ -168,6 +169,12 @@ namespace ParaMEDMEM const std::vector& getInfo() const; std::vector getPflsReallyUsed() const; std::vector getLocsReallyUsed() const; + std::vector getPflsReallyUsedMulti() const; + std::vector getLocsReallyUsedMulti() const; + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) throw(INTERP_KERNEL::Exception); + const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenLocId(int locId) const throw(INTERP_KERNEL::Exception); void getFieldAtLevel(int meshDim, TypeOfField type, const MEDFieldFieldGlobsReal *glob, std::vector< std::pair >& dads, std::vector& pfls, std::vector& locs, std::vector& geoTypes) const; void fillValues(int& startEntryId, std::vector< std::pair,std::pair > >& entries) const; static med_entity_type ConvertIntoMEDFileType(TypeOfField ikType, INTERP_KERNEL::NormalizedCellType ikGeoType, med_geometry_type& medfGeoType); @@ -216,9 +223,15 @@ namespace ParaMEDMEM const std::vector& getInfo() const; std::vector getPflsReallyUsed() const; std::vector getLocsReallyUsed() const; + std::vector getPflsReallyUsedMulti() const; + std::vector getLocsReallyUsedMulti() const; + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); MEDCouplingFieldDouble *getFieldOnMeshAtLevel(TypeOfField type, const MEDFieldFieldGlobsReal *glob, const MEDCouplingMesh *mesh, bool& isPfl) const throw(INTERP_KERNEL::Exception); DataArrayDouble *getFieldOnMeshAtLevelWithPfl(TypeOfField type, const MEDCouplingMesh *mesh, DataArrayInt *&pfl, const MEDFieldFieldGlobsReal *glob) const throw(INTERP_KERNEL::Exception); DataArrayDouble *getUndergroundDataArrayExt(std::vector< std::pair,std::pair > >& entries) const throw(INTERP_KERNEL::Exception); + MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception); + const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenTypeAndLocId(INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception); private: int addNewEntryIfNecessary(INTERP_KERNEL::NormalizedCellType type); MEDCouplingFieldDouble *finishField(TypeOfField type, const MEDFieldFieldGlobsReal *glob, @@ -262,14 +275,27 @@ namespace ParaMEDMEM void writeGlobals(med_idt fid, const MEDFileWritable& opt) const throw(INTERP_KERNEL::Exception); std::vector getPfls() const; std::vector getLocs() const; + bool existsPfl(const char *pflName) const; + bool existsLoc(const char *locName) const; + std::vector< std::vector > whichAreEqualProfiles() const; + std::vector< std::vector > whichAreEqualLocs(double eps) const; void setFileName(const char *fileName); + void changePflsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception); int getLocalizationId(const char *loc) const throw(INTERP_KERNEL::Exception); const char *getFileName() const { return _file_name.c_str(); } std::string getFileName2() const { return _file_name; } const MEDFileFieldLoc& getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception); - const MEDFileFieldLoc& getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception); - const DataArrayInt *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception); + const MEDFileFieldLoc& getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception); + const DataArrayInt *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception); + const DataArrayInt *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception); + MEDFileFieldLoc& getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception); + MEDFileFieldLoc& getLocalization(const char *locName) throw(INTERP_KERNEL::Exception); + DataArrayInt *getProfile(const char *pflName) throw(INTERP_KERNEL::Exception); + DataArrayInt *getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception); + void killProfileIds(const std::vector& pflIds) throw(INTERP_KERNEL::Exception); + void killLocalizationIds(const std::vector& locIds) throw(INTERP_KERNEL::Exception); // void appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception); void appendLoc(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector& refCoo, const std::vector& gsCoo, const std::vector& w) throw(INTERP_KERNEL::Exception); @@ -295,6 +321,10 @@ namespace ParaMEDMEM void appendGlobs(const MEDFieldFieldGlobsReal& other, double eps) throw(INTERP_KERNEL::Exception); virtual std::vector getPflsReallyUsed() const = 0; virtual std::vector getLocsReallyUsed() const = 0; + virtual std::vector getPflsReallyUsedMulti() const = 0; + virtual std::vector getLocsReallyUsedMulti() const = 0; + virtual void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) = 0; + virtual void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception) = 0; virtual ~MEDFieldFieldGlobsReal(); // void loadProfileInFile(med_idt fid, int id, const char *pflName) throw(INTERP_KERNEL::Exception); @@ -304,14 +334,33 @@ namespace ParaMEDMEM void writeGlobals(med_idt fid, const MEDFileWritable& opt) const throw(INTERP_KERNEL::Exception); std::vector getPfls() const; std::vector getLocs() const; + bool existsPfl(const char *pflName) const; + bool existsLoc(const char *locName) const; + std::vector< std::vector > whichAreEqualProfiles() const; + std::vector< std::vector > whichAreEqualLocs(double eps) const; void setFileName(const char *fileName); + void changePflsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsNamesInStruct(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changePflsNames(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsNames(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changePflName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception); + void changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception); + std::vector< std::pair, std::string > > zipPflsNames() throw(INTERP_KERNEL::Exception); + std::vector< std::pair, std::string > > zipLocsNames(double eps) throw(INTERP_KERNEL::Exception); int getNbOfGaussPtPerCell(int locId) const throw(INTERP_KERNEL::Exception); int getLocalizationId(const char *loc) const throw(INTERP_KERNEL::Exception); const char *getFileName() const; std::string getFileName2() const; const MEDFileFieldLoc& getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception); - const MEDFileFieldLoc& getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception); - const DataArrayInt *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception); + const MEDFileFieldLoc& getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception); + MEDFileFieldLoc& getLocalizationFromId(int locId) throw(INTERP_KERNEL::Exception); + MEDFileFieldLoc& getLocalization(const char *locName) throw(INTERP_KERNEL::Exception); + const DataArrayInt *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception); + const DataArrayInt *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception); + DataArrayInt *getProfile(const char *pflName) throw(INTERP_KERNEL::Exception); + DataArrayInt *getProfileFromId(int pflId) throw(INTERP_KERNEL::Exception); + void killProfileIds(const std::vector& pflIds) throw(INTERP_KERNEL::Exception); + void killLocalizationIds(const std::vector& locIds) throw(INTERP_KERNEL::Exception); // void appendProfile(DataArrayInt *pfl) throw(INTERP_KERNEL::Exception); void appendLoc(const char *locName, INTERP_KERNEL::NormalizedCellType geoType, const std::vector& refCoo, const std::vector& gsCoo, const std::vector& w) throw(INTERP_KERNEL::Exception); @@ -319,6 +368,9 @@ namespace ParaMEDMEM MEDCouplingAutoRefCountObjectPtr< MEDFieldFieldGlobs > _globals; }; + /*! + * DAS is for Shared Data Arrays such as profiles. + */ class MEDLOADER_EXPORT MEDFileField1TSWithoutDAS : public RefCountObject, public MEDFileWritable { public: @@ -348,6 +400,10 @@ namespace ParaMEDMEM virtual void writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception); std::vector getPflsReallyUsed2() const; std::vector getLocsReallyUsed2() const; + std::vector getPflsReallyUsedMulti2() const; + std::vector getLocsReallyUsedMulti2() const; + void changePflsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); static void CheckMeshDimRel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception); static std::vector CheckSBTMesh(const MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception); // @@ -368,6 +424,8 @@ namespace ParaMEDMEM protected: int addNewEntryIfNecessary(const MEDCouplingMesh *mesh) throw(INTERP_KERNEL::Exception); int getMeshIdFromMeshName(const char *mName) const throw(INTERP_KERNEL::Exception); + MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) throw(INTERP_KERNEL::Exception); + const MEDFileFieldPerMeshPerTypePerDisc *getLeafGivenMeshAndTypeAndLocId(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId) const throw(INTERP_KERNEL::Exception); MEDFileField1TSWithoutDAS(const char *fieldName, int csit, int fieldtype, int iteration, int order, const std::vector& infos); public: MEDFileField1TSWithoutDAS(); @@ -405,10 +463,19 @@ namespace ParaMEDMEM // void setFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception); void setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception); + public: + //! underground method see MEDFileField1TSWithoutDAS::setProfileNameOnLeaf + void setProfileNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception); + //! underground method see MEDFileField1TSWithoutDAS::setLocNameOnLeaf + void setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception); private: void writeLL(med_idt fid) const throw(INTERP_KERNEL::Exception); std::vector getPflsReallyUsed() const; std::vector getLocsReallyUsed() const; + std::vector getPflsReallyUsedMulti() const; + std::vector getLocsReallyUsedMulti() const; + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); MEDFileField1TS(const char *fileName, const char *fieldName, int iteration, int order) throw(INTERP_KERNEL::Exception); MEDFileField1TS(); }; @@ -434,6 +501,10 @@ namespace ParaMEDMEM public: std::vector getPflsReallyUsed2() const; std::vector getLocsReallyUsed2() const; + std::vector getPflsReallyUsedMulti2() const; + std::vector getLocsReallyUsedMulti2() const; + void changePflsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen2(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); protected: const MEDFileField1TSWithoutDAS& getTimeStepEntry(int iteration, int order) const throw(INTERP_KERNEL::Exception); MEDFileField1TSWithoutDAS& getTimeStepEntry(int iteration, int order) throw(INTERP_KERNEL::Exception); @@ -476,6 +547,10 @@ namespace ParaMEDMEM private: std::vector getPflsReallyUsed() const; std::vector getLocsReallyUsed() const; + std::vector getPflsReallyUsedMulti() const; + std::vector getLocsReallyUsedMulti() const; + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); private: MEDFileFieldMultiTS(); MEDFileFieldMultiTS(const MEDFileFieldMultiTSWithoutDAS& other); @@ -507,6 +582,10 @@ namespace ParaMEDMEM int getPosFromFieldName(const char *fieldName) const throw(INTERP_KERNEL::Exception); std::vector getPflsReallyUsed() const; std::vector getLocsReallyUsed() const; + std::vector getPflsReallyUsedMulti() const; + std::vector getLocsReallyUsedMulti() const; + void changePflsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); + void changeLocsRefsNamesGen(const std::vector< std::pair, std::string > >& mapOfModif) throw(INTERP_KERNEL::Exception); private: MEDFileFields(); MEDFileFields(const char *fileName) throw(INTERP_KERNEL::Exception); diff --git a/src/MEDLoader/MEDFileMesh.cxx b/src/MEDLoader/MEDFileMesh.cxx index dff6bf526..6fb0a0535 100644 --- a/src/MEDLoader/MEDFileMesh.cxx +++ b/src/MEDLoader/MEDFileMesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -1582,6 +1582,7 @@ MEDCouplingUMesh *MEDFileUMesh::getMeshAtLevel(int meshDimRelToMaxExt, bool renu MEDCouplingAutoRefCountObjectPtr cc=_coords->deepCpy(); umesh->setCoords(cc); MEDFileUMeshSplitL1::ClearNonDiscrAttributes(umesh); + umesh->setName(getName()); return umesh; } } diff --git a/src/MEDLoader/MEDFileMesh.hxx b/src/MEDLoader/MEDFileMesh.hxx index f25b1ef0e..b10e3a671 100644 --- a/src/MEDLoader/MEDFileMesh.hxx +++ b/src/MEDLoader/MEDFileMesh.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileMeshElt.cxx b/src/MEDLoader/MEDFileMeshElt.cxx index 88fa052e5..456397918 100644 --- a/src/MEDLoader/MEDFileMeshElt.cxx +++ b/src/MEDLoader/MEDFileMeshElt.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileMeshElt.hxx b/src/MEDLoader/MEDFileMeshElt.hxx index 699bc121a..7cf22da69 100644 --- a/src/MEDLoader/MEDFileMeshElt.hxx +++ b/src/MEDLoader/MEDFileMeshElt.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -25,10 +25,7 @@ #include "NormalizedUnstructuredMesh.hxx" -extern "C" -{ #include "med.h" -} namespace ParaMEDMEM { diff --git a/src/MEDLoader/MEDFileMeshLL.cxx b/src/MEDLoader/MEDFileMeshLL.cxx index 6b9992bc9..028511608 100644 --- a/src/MEDLoader/MEDFileMeshLL.cxx +++ b/src/MEDLoader/MEDFileMeshLL.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileMeshLL.hxx b/src/MEDLoader/MEDFileMeshLL.hxx index 6c20a72f1..37ed23d4d 100644 --- a/src/MEDLoader/MEDFileMeshLL.hxx +++ b/src/MEDLoader/MEDFileMeshLL.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -27,10 +27,7 @@ #include "MEDCouplingCMesh.hxx" #include "MEDCouplingAutoRefCountObjectPtr.hxx" -extern "C" -{ #include "med.h" -} #include diff --git a/src/MEDLoader/MEDFileUtilities.cxx b/src/MEDLoader/MEDFileUtilities.cxx index 49784d087..6114e0ea7 100644 --- a/src/MEDLoader/MEDFileUtilities.cxx +++ b/src/MEDLoader/MEDFileUtilities.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDFileUtilities.hxx b/src/MEDLoader/MEDFileUtilities.hxx index 0e636b592..b814c1282 100644 --- a/src/MEDLoader/MEDFileUtilities.hxx +++ b/src/MEDLoader/MEDFileUtilities.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -23,10 +23,7 @@ #include "InterpKernelException.hxx" #include "MEDLoaderDefines.hxx" -extern "C" -{ #include "med.h" -} namespace MEDFileUtilities { diff --git a/src/MEDLoader/MEDLoader.cxx b/src/MEDLoader/MEDLoader.cxx index 8a408b3b4..c613a1c73 100644 --- a/src/MEDLoader/MEDLoader.cxx +++ b/src/MEDLoader/MEDLoader.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -29,10 +29,7 @@ #include "InterpKernelAutoPtr.hxx" -extern "C" -{ #include "med.h" -} #include #include diff --git a/src/MEDLoader/MEDLoader.hxx b/src/MEDLoader/MEDLoader.hxx index f2fd1c0a1..33907f219 100644 --- a/src/MEDLoader/MEDLoader.hxx +++ b/src/MEDLoader/MEDLoader.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDLoaderBase.cxx b/src/MEDLoader/MEDLoaderBase.cxx index 3ff67c2e3..129c027b8 100644 --- a/src/MEDLoader/MEDLoaderBase.cxx +++ b/src/MEDLoader/MEDLoaderBase.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDLoaderBase.hxx b/src/MEDLoader/MEDLoaderBase.hxx index 15333d228..d23a9b537 100644 --- a/src/MEDLoader/MEDLoaderBase.hxx +++ b/src/MEDLoader/MEDLoaderBase.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/MEDLoaderDefines.hxx b/src/MEDLoader/MEDLoaderDefines.hxx index 33fd69dbe..f1a087457 100644 --- a/src/MEDLoader/MEDLoaderDefines.hxx +++ b/src/MEDLoader/MEDLoaderDefines.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Makefile.am b/src/MEDLoader/Makefile.am index f9fb66ad3..1edb2c85f 100755 --- a/src/MEDLoader/Makefile.am +++ b/src/MEDLoader/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvMedConvertor.cxx b/src/MEDLoader/SauvMedConvertor.cxx index 0357275a5..0345cb180 100644 --- a/src/MEDLoader/SauvMedConvertor.cxx +++ b/src/MEDLoader/SauvMedConvertor.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvMedConvertor.hxx b/src/MEDLoader/SauvMedConvertor.hxx index b189e9216..a50ac34ae 100644 --- a/src/MEDLoader/SauvMedConvertor.hxx +++ b/src/MEDLoader/SauvMedConvertor.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvReader.cxx b/src/MEDLoader/SauvReader.cxx index ca3c924ce..720d34b65 100644 --- a/src/MEDLoader/SauvReader.cxx +++ b/src/MEDLoader/SauvReader.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvReader.hxx b/src/MEDLoader/SauvReader.hxx index db41704df..eaf49c7a1 100644 --- a/src/MEDLoader/SauvReader.hxx +++ b/src/MEDLoader/SauvReader.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvUtilities.hxx b/src/MEDLoader/SauvUtilities.hxx index 19c822f77..40c364228 100644 --- a/src/MEDLoader/SauvUtilities.hxx +++ b/src/MEDLoader/SauvUtilities.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/SauvWriter.cxx b/src/MEDLoader/SauvWriter.cxx index fb41ea3a6..60dc24928 100644 --- a/src/MEDLoader/SauvWriter.cxx +++ b/src/MEDLoader/SauvWriter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -469,7 +469,7 @@ void SauvWriter::fillProfileSubMeshes() if ( !pfl2sm->second ) { SubMesh* sm = pfl2sm->second = addSubMesh( "", dimRelExt ); // no names for profiles - const DataArrayInt * pfl = isOnAll ? 0 : fields[i]->getProfile( pfls[iType][iPfl] ); + const DataArrayInt * pfl = isOnAll ? 0 : fields[i]->getProfile( pfls[iType][iPfl].c_str() ); makeProfileIDs( sm, types[iType], pfl ); } } diff --git a/src/MEDLoader/SauvWriter.hxx b/src/MEDLoader/SauvWriter.hxx index 0fe151340..7ba8a6a76 100644 --- a/src/MEDLoader/SauvWriter.hxx +++ b/src/MEDLoader/SauvWriter.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Swig/CMakeLists.txt b/src/MEDLoader/Swig/CMakeLists.txt index 8525be191..80d6046d5 100644 --- a/src/MEDLoader/Swig/CMakeLists.txt +++ b/src/MEDLoader/Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Swig/MEDLoader.i b/src/MEDLoader/Swig/MEDLoader.i index d0903d3c3..148c2a1b6 100644 --- a/src/MEDLoader/Swig/MEDLoader.i +++ b/src/MEDLoader/Swig/MEDLoader.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -642,9 +642,15 @@ namespace ParaMEDMEM std::vector getLocs() const; virtual std::vector getPflsReallyUsed() const = 0; virtual std::vector getLocsReallyUsed() const = 0; + virtual std::vector getPflsReallyUsedMulti() const = 0; + virtual std::vector getLocsReallyUsedMulti() const = 0; + void killProfileIds(const std::vector& pflIds) throw(INTERP_KERNEL::Exception); + void killLocalizationIds(const std::vector& locIds) throw(INTERP_KERNEL::Exception); + void changePflName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception); + void changeLocName(const char *oldName, const char *newName) throw(INTERP_KERNEL::Exception); %extend { - PyObject *getProfile(const std::string& pflName) const throw(INTERP_KERNEL::Exception) + PyObject *getProfile(const char *pflName) const throw(INTERP_KERNEL::Exception) { const DataArrayInt *ret=self->getProfile(pflName); if(ret) @@ -652,6 +658,14 @@ namespace ParaMEDMEM return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); } + PyObject *getProfileFromId(int pflId) const throw(INTERP_KERNEL::Exception) + { + const DataArrayInt *ret=self->getProfileFromId(pflId); + if(ret) + ret->incrRef(); + return SWIG_NewPointerObj(SWIG_as_voidptr(ret),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 ); + } + PyObject *getLocalizationFromId(int locId) const throw(INTERP_KERNEL::Exception) { const MEDFileFieldLoc *loc=&self->getLocalizationFromId(locId); @@ -659,12 +673,60 @@ namespace ParaMEDMEM return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_ParaMEDMEM__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 ); } - PyObject *getLocalization(const char *pflName) const throw(INTERP_KERNEL::Exception) + PyObject *getLocalization(const char *locName) const throw(INTERP_KERNEL::Exception) { - const MEDFileFieldLoc *loc=&self->getLocalization(pflName); + const MEDFileFieldLoc *loc=&self->getLocalization(locName); loc->incrRef(); return SWIG_NewPointerObj(SWIG_as_voidptr(loc),SWIGTYPE_p_ParaMEDMEM__MEDFileFieldLoc, SWIG_POINTER_OWN | 0 ); } + + PyObject *zipPflsNames() throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > ret=self->zipPflsNames(); + return convertVecPairVecStToPy(ret); + } + + PyObject *zipLocsNames(double eps) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > ret=self->zipLocsNames(eps); + return convertVecPairVecStToPy(ret); + } + + void changePflsNames(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changePflsNames(v); + } + + void changePflsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changePflsRefsNamesGen(v); + } + + void changePflsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changePflsNamesInStruct(v); + } + + void changeLocsNames(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changeLocsNames(v); + } + + void changeLocsRefsNamesGen(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changeLocsRefsNamesGen(v); + } + + void changeLocsNamesInStruct(PyObject *li) throw(INTERP_KERNEL::Exception) + { + std::vector< std::pair, std::string > > v=convertVecPairVecStFromPy(li); + self->changeLocsNamesInStruct(v); + } } }; @@ -843,6 +905,8 @@ namespace ParaMEDMEM // void setFieldNoProfileSBT(const MEDCouplingFieldDouble *field) throw(INTERP_KERNEL::Exception); void setFieldProfile(const MEDCouplingFieldDouble *field, const MEDFileMesh *mesh, int meshDimRelToMax, const DataArrayInt *profile) throw(INTERP_KERNEL::Exception); + void setProfileNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception); + void setLocNameOnLeaf(const char *mName, INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception); %extend { std::string __str__() const @@ -859,6 +923,16 @@ namespace ParaMEDMEM PyTuple_SetItem(ret,1,SWIG_NewPointerObj(SWIG_as_voidptr(ret1),SWIGTYPE_p_ParaMEDMEM__DataArrayInt, SWIG_POINTER_OWN | 0 )); return ret; } + + void setProfileNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newPflName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception) + { + self->setProfileNameOnLeaf(0,typ,locId,newPflName,forceRenameOnGlob); + } + + void setLocNameOnLeaf(INTERP_KERNEL::NormalizedCellType typ, int locId, const char *newLocName, bool forceRenameOnGlob=false) throw(INTERP_KERNEL::Exception) + { + self->setLocNameOnLeaf(0,typ,locId,newLocName,forceRenameOnGlob); + } } }; diff --git a/src/MEDLoader/Swig/MEDLoaderDataForTest.py b/src/MEDLoader/Swig/MEDLoaderDataForTest.py index 3436e073b..d7ea584e4 100644 --- a/src/MEDLoader/Swig/MEDLoaderDataForTest.py +++ b/src/MEDLoader/Swig/MEDLoaderDataForTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Swig/MEDLoaderTest.py b/src/MEDLoader/Swig/MEDLoaderTest.py index 7eb90e933..2e31afb65 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest.py +++ b/src/MEDLoader/Swig/MEDLoaderTest.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Swig/MEDLoaderTest2.py b/src/MEDLoader/Swig/MEDLoaderTest2.py index c7e72e4b3..4e7a94760 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest2.py +++ b/src/MEDLoader/Swig/MEDLoaderTest2.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDLoader/Swig/MEDLoaderTest3.py b/src/MEDLoader/Swig/MEDLoaderTest3.py index 15f3afaf8..c224c6bbd 100644 --- a/src/MEDLoader/Swig/MEDLoaderTest3.py +++ b/src/MEDLoader/Swig/MEDLoaderTest3.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -610,6 +610,7 @@ class MEDLoaderTest(unittest.TestCase): da=DataArrayInt.New(); da.alloc(9,1) ; da.iota(0) ; da.setName("sup1") # ff1.setFieldProfile(f1,mm1,0,da) + ff1.changePflsNames([(["sup1_NORM_QUAD4"],"ForV650")]) ff1.write(fname,0) # vals,pfl=ff1.getFieldWithProfile(ON_CELLS,0,mm1) ; vals.setName("") @@ -624,7 +625,7 @@ class MEDLoaderTest(unittest.TestCase): self.assertEqual([7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],sbt[0][1][0][1].getValues())# values for TRI3 self.assertEqual(4,sbt[1][0])#QUAD4 self.assertEqual(0,sbt[1][1][0][0])#CELL For QUAD4 - self.assertEqual("sup1_NORM_QUAD4",sbt[1][1][0][2])# profile For QUAD4 + self.assertEqual("ForV650",sbt[1][1][0][2])# profile For QUAD4 self.assertEqual([19, 20, 21, 22, 23, 24],sbt[1][1][0][1].getValues())# values for QUAD4 self.assertEqual([0],ff2.getTypesOfFieldAvailable()) vals,pfl=ff2.getFieldWithProfile(ON_CELLS,0,mm1) ; vals.setName("") @@ -1064,7 +1065,91 @@ class MEDLoaderTest(unittest.TestCase): self.assertEqual(ff2.getNonEmptyLevels(),(1, [0,-1])) self.assertEqual(ff2.getFieldSplitedByType(),[(0, [(0, (0, 4), '', '')]), (1, [(0, (4, 84), '', '')])]) pass + + def testFieldOnPflRetrieveOnMdimRelMax1(self): + fname="Pyfile43.med" + m2,m1,m0,f2,f1,f0,p,n2,n1,n0,fns,fids,grpns,famIdsPerGrp=MEDLoaderDataForTest.buildMultiLevelMesh_1() + m=MEDFileUMesh.New() + m.setMeshAtLevel(0,m2) + m.setMeshAtLevel(-1,m1) + m.setMeshAtLevel(-2,m0) + f=MEDFileField1TS.New() + ff=MEDCouplingFieldDouble.New(ON_NODES,ONE_TIME) + ff.setName("NodeFieldPfl") + arr=DataArrayDouble.New() ; arr.setValues([1.,10.,100.,2.,20.,200.],2,3) + ff.setArray(arr) + pfl=DataArrayInt.New() ; pfl.setValues([2,3],2,1) ; pfl.setName("PflNode") + f.setFieldProfile(ff,m,-2,pfl) + tes0=f.getFieldOnMeshAtLevel(ON_NODES,-1,m) + self.assertEqual(ON_NODES,tes0.getTypeOfField()) + self.assertEqual(1,tes0.getMesh().getMeshDimension()) + self.assertEqual(1,tes0.getMesh().getNumberOfCells()) + self.assertEqual(2,tes0.getMesh().getNumberOfNodes()) + self.assertEqual([1,0,1],tes0.getMesh().getNodalConnectivity().getValues()) + self.assertEqual([0,3],tes0.getMesh().getNodalConnectivityIndex().getValues()) + self.assertEqual(2,tes0.getArray().getNumberOfTuples()) + self.assertEqual(3,tes0.getArray().getNumberOfComponents()) + expected1=[1.,10.,100.,2.,20.,200.] + nodeCoordsWithValue1=[10.,2.5,0.] + nodeCoordsWithValue2=[10.,3.75,0.] + for i in xrange(3): + self.assertAlmostEqual(nodeCoordsWithValue1[i],tes0.getMesh().getCoordinatesOfNode(0)[i],13); + self.assertAlmostEqual(nodeCoordsWithValue2[i],tes0.getMesh().getCoordinatesOfNode(1)[i],13); + pass + for i in xrange(6): + self.assertAlmostEqual(expected1[i],tes0.getArray().getIJ(0,i),13); + pass + del tes0 + # + tes1=f.getFieldOnMeshAtLevel(ON_NODES,1,m) + self.assertEqual(ON_CELLS,tes1.getTypeOfField())# it is not a bug even if ON_NODES has been sepecified + self.assertEqual(0,tes1.getMesh().getMeshDimension()) + self.assertEqual(2,tes1.getMesh().getNumberOfCells()) + self.assertEqual(135,tes1.getMesh().getNumberOfNodes()) + self.assertEqual([0,2,0,3],tes1.getMesh().getNodalConnectivity().getValues()) + self.assertEqual([0,2,4],tes1.getMesh().getNodalConnectivityIndex().getValues()) + self.assertEqual(2,tes1.getArray().getNumberOfTuples()) + self.assertEqual(3,tes1.getArray().getNumberOfComponents()) + for i in xrange(6): + self.assertAlmostEqual(expected1[i],tes1.getArray().getIJ(0,i),13); + pass + m.write(fname,2) + f.write(fname,0) + # + pfl=DataArrayInt.New() ; pfl.setValues([3,2],2,1) ; pfl.setName("PflNode") + f=MEDFileField1TS.New() + f.setFieldProfile(ff,m,-2,pfl) + tes2=f.getFieldOnMeshAtLevel(ON_NODES,-1,m) + self.assertEqual(ON_NODES,tes2.getTypeOfField()) + self.assertEqual(1,tes2.getMesh().getMeshDimension()) + self.assertEqual(1,tes2.getMesh().getNumberOfCells()) + self.assertEqual(2,tes2.getMesh().getNumberOfNodes()) + self.assertEqual([1,0,1],tes2.getMesh().getNodalConnectivity().getValues()) + self.assertEqual([0,3],tes2.getMesh().getNodalConnectivityIndex().getValues()) + self.assertEqual(2,tes2.getArray().getNumberOfTuples()) + self.assertEqual(3,tes2.getArray().getNumberOfComponents()) + expected2=[2.,20.,200.,1.,10.,100.] + for i in xrange(3): + self.assertAlmostEqual(nodeCoordsWithValue1[i],tes2.getMesh().getCoordinatesOfNode(0)[i],13); + self.assertAlmostEqual(nodeCoordsWithValue2[i],tes2.getMesh().getCoordinatesOfNode(1)[i],13); + pass + for i in xrange(6): + self.assertAlmostEqual(expected2[i],tes2.getArray().getIJ(0,i),13);#compare tes2 and tes3 + pass + # + tes3=f.getFieldOnMeshAtLevel(ON_NODES,1,m) + self.assertEqual(ON_CELLS,tes3.getTypeOfField())# it is not a bug even if ON_NODES has been sepecified + self.assertEqual(0,tes3.getMesh().getMeshDimension()) + self.assertEqual(2,tes3.getMesh().getNumberOfCells()) + self.assertEqual(135,tes3.getMesh().getNumberOfNodes()) + self.assertEqual([0,3,0,2],tes3.getMesh().getNodalConnectivity().getValues()) + self.assertEqual([0,2,4],tes3.getMesh().getNodalConnectivityIndex().getValues()) + self.assertEqual(2,tes3.getArray().getNumberOfTuples()) + self.assertEqual(3,tes3.getArray().getNumberOfComponents()) + for i in xrange(6): + self.assertAlmostEqual(expected1[i],tes3.getArray().getIJ(0,i),13); + pass + pass pass unittest.main() - diff --git a/src/MEDLoader/Swig/MEDLoaderTypemaps.i b/src/MEDLoader/Swig/MEDLoaderTypemaps.i index 73e598e95..493c0cda5 100644 --- a/src/MEDLoader/Swig/MEDLoaderTypemaps.i +++ b/src/MEDLoader/Swig/MEDLoaderTypemaps.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -186,3 +186,71 @@ static std::vector convertUMeshVecFromPy(P } return ret; } + +PyObject *convertVecPairVecStToPy(const std::vector< std::pair, std::string > >& vec) +{ + int sz=(int)vec.size(); + PyObject *ret=PyList_New(sz); + for(int i=0;i, std::string > > convertVecPairVecStFromPy(PyObject *pyLi) +{ + std::vector< std::pair, std::string > > ret; + const char *msg="convertVecPairVecStFromPy : Expecting PyList of Tuples of size 2 ! The first elt in tupe is a list of strings and the 2nd one a string !"; + if(PyList_Check(pyLi)) + { + int size=PyList_Size(pyLi); + ret.resize(size); + for(int i=0;i, std::string> p; + int size2=PyTuple_Size(o); + if(size2!=2) + throw INTERP_KERNEL::Exception(msg); + PyObject *o0=PyTuple_GetItem(o,0); + if(PyList_Check(o0)) + { + int size2=PyList_Size(o0); + p.first.resize(size2); + for(int j=0;j #include -extern "C" -{ #include "med.h" -} using namespace MEDPARTITIONER; diff --git a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.hxx b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.hxx index bebac0d91..af6a8758a 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionDriver.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx index 57ea4f540..edae2e981 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx index 13b72dd5a..06674a8fc 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedAsciiDriver.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx index 2406505c9..9a7df8f5c 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -36,6 +36,11 @@ #include #include #include +#ifdef WIN32 +#include +#include +#endif + #include #include @@ -194,13 +199,22 @@ void MeshCollectionMedXmlDriver::write(const char* filename, ParaDomainSelector* xmlNewProp(node, BAD_CAST "ver", BAD_CAST "1"); //Description tag - time_t present; + time_t present; + char date[6]; +#ifndef WIN32 time( &present); struct tm *time_asc = localtime(&present); - char date[6]; sprintf(date,"%02d%02d%02d",time_asc->tm_year ,time_asc->tm_mon+1 ,time_asc->tm_mday); +#else + SYSTEMTIME st; + GetLocalTime ( &st ); + sprintf(date,"%02d%02d%02d", + st.wYear + ,st.wMonth + ,st.wDay); +#endif node = xmlNewChild(root_node,0, BAD_CAST "description",0); diff --git a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx index 2b269960e..7990fa410 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MeshCollectionMedXmlDriver.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.cxx b/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.cxx index dda41050b..5f89b9573 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.hxx b/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.hxx index e7e3b12d7..6a0f80ecb 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_MetisGraph.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParMetisGraph.cxx b/src/MEDPartitioner/MEDPARTITIONER_ParMetisGraph.cxx index 5046ac4ed..5e85a6f94 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParMetisGraph.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParMetisGraph.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx b/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx index 820544859..48f7a6ca6 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.hxx b/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.hxx index ac33e6a15..cfe465a9a 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParaDomainSelector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx index 82254607e..a97f22089 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx index 8dcf1207d..72eaeab73 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ParallelTopology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.cxx b/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.cxx index 99b542707..0aa821cdf 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.hxx b/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.hxx index b8ef1f347..762afbc52 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_ScotchGraph.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.cxx b/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.cxx index da02771ab..e50a55b56 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.hxx b/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.hxx index e0b9707ff..32574736e 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_SkyLineArray.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_Topology.hxx b/src/MEDPartitioner/MEDPARTITIONER_Topology.hxx index 2253ce1cb..4ac6173b9 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_Topology.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_Topology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_UserGraph.cxx b/src/MEDPartitioner/MEDPARTITIONER_UserGraph.cxx index 203a496a6..f3ef8bcbc 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_UserGraph.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_UserGraph.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_UserGraph.hxx b/src/MEDPartitioner/MEDPARTITIONER_UserGraph.hxx index fc1583aa8..160940347 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_UserGraph.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_UserGraph.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx b/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx index cc5c87482..6bbe1a86c 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_Utils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx b/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx index e69cfe91e..02b74cf28 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx +++ b/src/MEDPartitioner/MEDPARTITIONER_Utils.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/MEDPARTITIONER_UtilsPara.cxx b/src/MEDPartitioner/MEDPARTITIONER_UtilsPara.cxx index fa63df8ba..aa4967cae 100644 --- a/src/MEDPartitioner/MEDPARTITIONER_UtilsPara.cxx +++ b/src/MEDPartitioner/MEDPARTITIONER_UtilsPara.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/Makefile.am b/src/MEDPartitioner/Makefile.am index c8e7e5ae0..c6039a030 100644 --- a/src/MEDPartitioner/Makefile.am +++ b/src/MEDPartitioner/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/Test/CMakeLists.txt b/src/MEDPartitioner/Test/CMakeLists.txt index 751ea2cca..8e2b10f54 100644 --- a/src/MEDPartitioner/Test/CMakeLists.txt +++ b/src/MEDPartitioner/Test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx b/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx index 155e0bfaf..1a3772363 100644 --- a/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx +++ b/src/MEDPartitioner/Test/MEDPARTITIONERTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -80,6 +80,25 @@ void MEDPARTITIONERTest::setbigSize() setSize(200,300,500); //nb of hexa9 } +std::string MEDPARTITIONERTest::getPartitionerExe() const +{ + std::string execName; + if ( getenv("top_builddir")) // make distcheck + { + execName = getenv("top_builddir"); + execName += "/src/MEDPartitioner/medpartitioner"; + } + else if ( getenv("MED_ROOT_DIR") ) + { + execName=getenv("MED_ROOT_DIR"); //.../INSTALL/MED + execName+="/bin/salome/medpartitioner"; + } + else + { + CPPUNIT_FAIL("Can't find medpartitioner, neither MED_ROOT_DIR nor top_builddir is set"); + } + return execName; +} // ============================================================================ /*! @@ -971,12 +990,11 @@ void MEDPARTITIONERTest::launchMetisOrScotchMedpartitionerOnTestMeshes(std::stri int res; string cmd,execName,sourceName,targetName; - execName=getenv("MED_ROOT_DIR"); //.../INSTALL/MED - execName+="/bin/salome/medpartitioner"; + execName=getPartitionerExe(); cmd="which "+execName+" 2>/dev/null 1>/dev/null"; //no trace res=system(cmd.c_str()); - CPPUNIT_ASSERT_EQUAL(0, res); + CPPUNIT_ASSERT_EQUAL_MESSAGE(execName + " - INVALID PATH TO medpartitioner", 0, res); cmd=execName+" --ndomains=2 --split-method="+MetisOrScotch; //on same proc sourceName=_file_name; @@ -1019,8 +1037,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForMesh(std { int res; string fileName,cmd,execName,sourceName,targetName,input; - execName=getenv("MED_ROOT_DIR"); //.../INSTALL/MED - execName+="/bin/salome/medpartitioner"; + execName=getPartitionerExe(); fileName=_file_name_with_faces; ParaMEDMEM::MEDFileUMesh* initialMesh=ParaMEDMEM::MEDFileUMesh::New(fileName.c_str(),_mesh_name.c_str()); @@ -1117,8 +1134,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForFieldOnC { int res; string fileName,cmd,execName,sourceName,targetName,input; - execName=getenv("MED_ROOT_DIR"); //.../INSTALL/MED - execName+="/bin/salome/medpartitioner"; + execName=getPartitionerExe(); fileName=_file_name; fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnCells.med"); @@ -1205,8 +1221,7 @@ void MEDPARTITIONERTest::verifyMetisOrScotchMedpartitionerOnSmallSizeForFieldOnG { int res; string fileName,cmd,execName,sourceName,targetName,input; - execName=getenv("MED_ROOT_DIR"); //.../INSTALL/MED - execName+="/bin/salome/medpartitioner"; + execName=getPartitionerExe(); fileName=_file_name; fileName.replace(fileName.find(".med"),4,"_WithVecFieldOnGaussNe.med"); diff --git a/src/MEDPartitioner/Test/MEDPARTITIONERTest.hxx b/src/MEDPartitioner/Test/MEDPARTITIONERTest.hxx index 0a182195c..5d1445ec8 100644 --- a/src/MEDPartitioner/Test/MEDPARTITIONERTest.hxx +++ b/src/MEDPartitioner/Test/MEDPARTITIONERTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 @@ -20,6 +20,17 @@ #ifndef __MEDPARTITIONERTEST_HXX__ #define __MEDPARTITIONERTEST_HXX__ +#ifdef WIN32 +# if defined MEDPARTITIONERTEST_EXPORTS || defined MEDPARTITIONERTest_EXPORTS +# define MEDPARTITIONERTEST_EXPORT __declspec( dllexport ) +# else +# define MEDPARTITIONERTEST_EXPORT __declspec( dllimport ) +# endif +#else +# define MEDPARTITIONERTEST_EXPORT +#endif + + #include #include @@ -30,7 +41,7 @@ #include "MEDCouplingExtrudedMesh.hxx" #include "MEDCouplingFieldDouble.hxx" -class MEDPARTITIONERTest : public CppUnit::TestFixture +class MEDPARTITIONERTEST_EXPORT MEDPARTITIONERTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE( MEDPARTITIONERTest ); CPPUNIT_TEST( testMeshCollectionSingle ); @@ -78,6 +89,7 @@ public: void setSmallSize(); void setMedianSize(); void setbigSize(); + std::string getPartitionerExe() const; ParaMEDMEM::MEDCouplingUMesh * buildCUBE3DMesh(); ParaMEDMEM::MEDCouplingUMesh * buildFACE3DMesh(); ParaMEDMEM::MEDCouplingUMesh * buildCARRE3DMesh(); diff --git a/src/MEDPartitioner/Test/MEDPARTITIONERTestPara.cxx b/src/MEDPartitioner/Test/MEDPARTITIONERTestPara.cxx index 4671c179f..a6bebba04 100644 --- a/src/MEDPartitioner/Test/MEDPARTITIONERTestPara.cxx +++ b/src/MEDPartitioner/Test/MEDPARTITIONERTestPara.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/Test/Makefile.am b/src/MEDPartitioner/Test/Makefile.am index 68dbbdaee..19dcc2283 100644 --- a/src/MEDPartitioner/Test/Makefile.am +++ b/src/MEDPartitioner/Test/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/Test/TestMEDPARTITIONER.cxx b/src/MEDPartitioner/Test/TestMEDPARTITIONER.cxx index 3b00f7c4d..6a2551e4f 100644 --- a/src/MEDPartitioner/Test/TestMEDPARTITIONER.cxx +++ b/src/MEDPartitioner/Test/TestMEDPARTITIONER.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/medpartitioner.cxx b/src/MEDPartitioner/medpartitioner.cxx index 470d8164d..29073b76e 100644 --- a/src/MEDPartitioner/medpartitioner.cxx +++ b/src/MEDPartitioner/medpartitioner.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDPartitioner/medpartitioner_para.cxx b/src/MEDPartitioner/medpartitioner_para.cxx index 1628e863b..236e8c665 100644 --- a/src/MEDPartitioner/medpartitioner_para.cxx +++ b/src/MEDPartitioner/medpartitioner_para.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/MEDSPLITTER/CMakeLists.txt b/src/MEDSPLITTER/CMakeLists.txt index 650d4355b..3cc23b634 100644 --- a/src/MEDSPLITTER/CMakeLists.txt +++ b/src/MEDSPLITTER/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDSPLITTER/Test/CMakeLists.txt b/src/MEDSPLITTER/Test/CMakeLists.txt index 7c5541a5c..6a2e5adea 100644 --- a/src/MEDSPLITTER/Test/CMakeLists.txt +++ b/src/MEDSPLITTER/Test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDSPLITTER_Swig/CMakeLists.txt b/src/MEDSPLITTER_Swig/CMakeLists.txt index c1b1b2be2..14f1e76df 100644 --- a/src/MEDSPLITTER_Swig/CMakeLists.txt +++ b/src/MEDSPLITTER_Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -28,6 +28,7 @@ INCLUDE_DIRECTORIES( ${PYTHON_INCLUDES_DIR} ${MED3_INCLUDES_DIR} ${HDF5_INCLUDES_DIR} + ${BOOST_INCLUDES_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../MEDSPLITTER ${CMAKE_CURRENT_SOURCE_DIR}/../MEDMEM @@ -41,6 +42,7 @@ INCLUDE_DIRECTORIES( SWIG_ADD_MODULE(libMEDSPLITTER_Swig python libMEDSPLITTER_Swig.i) SWIG_LINK_LIBRARIES(libMEDSPLITTER_Swig ${PYTHON_LIBRARIES} medsplittercpp) +SET_TARGET_PROPERTIES(_libMEDSPLITTER_Swig PROPERTIES COMPILE_FLAGS "${BOOST_FLAGS}") INSTALL(TARGETS _libMEDSPLITTER_Swig DESTINATION ${MED_salomepythondir}) INSTALL(FILES libMEDSPLITTER_Swig.i DESTINATION ${MED_salomeinclude_HEADERS}) diff --git a/src/MEDWrapper/Base/CMakeLists.txt b/src/MEDWrapper/Base/CMakeLists.txt index d9db94162..2e6cb5ab1 100644 --- a/src/MEDWrapper/Base/CMakeLists.txt +++ b/src/MEDWrapper/Base/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/CMakeLists.txt b/src/MEDWrapper/CMakeLists.txt index 35ed7d3b7..c07bedcc6 100644 --- a/src/MEDWrapper/CMakeLists.txt +++ b/src/MEDWrapper/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/Factory/CMakeLists.txt b/src/MEDWrapper/Factory/CMakeLists.txt index 4c056b105..5f0b15f91 100644 --- a/src/MEDWrapper/Factory/CMakeLists.txt +++ b/src/MEDWrapper/Factory/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/V2_1/CMakeLists.txt b/src/MEDWrapper/V2_1/CMakeLists.txt index 912fd13a0..6257a5089 100644 --- a/src/MEDWrapper/V2_1/CMakeLists.txt +++ b/src/MEDWrapper/V2_1/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/V2_1/Core/CMakeLists.txt b/src/MEDWrapper/V2_1/Core/CMakeLists.txt index 53ceafeef..34d9ff3aa 100644 --- a/src/MEDWrapper/V2_1/Core/CMakeLists.txt +++ b/src/MEDWrapper/V2_1/Core/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/V2_1/Wrapper/CMakeLists.txt b/src/MEDWrapper/V2_1/Wrapper/CMakeLists.txt index 4ff7dfd33..1d8f71c12 100644 --- a/src/MEDWrapper/V2_1/Wrapper/CMakeLists.txt +++ b/src/MEDWrapper/V2_1/Wrapper/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MEDWrapper/V2_2/CMakeLists.txt b/src/MEDWrapper/V2_2/CMakeLists.txt index 0edaf8dac..dc3424c49 100644 --- a/src/MEDWrapper/V2_2/CMakeLists.txt +++ b/src/MEDWrapper/V2_2/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MED_SWIG/CMakeLists.txt b/src/MED_SWIG/CMakeLists.txt index 90ef19962..cdd2ac2a3 100644 --- a/src/MED_SWIG/CMakeLists.txt +++ b/src/MED_SWIG/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/CMakeLists.txt b/src/MedClient/CMakeLists.txt index d7bbf9320..ba7fd6885 100644 --- a/src/MedClient/CMakeLists.txt +++ b/src/MedClient/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/src/CMakeLists.txt b/src/MedClient/src/CMakeLists.txt index 9865205e0..19438c548 100644 --- a/src/MedClient/src/CMakeLists.txt +++ b/src/MedClient/src/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/test/CMakeLists.txt b/src/MedClient/test/CMakeLists.txt index aeb5e6ce3..6a8eef981 100644 --- a/src/MedClient/test/CMakeLists.txt +++ b/src/MedClient/test/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/test/environ/CMakeLists.txt b/src/MedClient/test/environ/CMakeLists.txt index f614f2645..9bb5cc1ea 100644 --- a/src/MedClient/test/environ/CMakeLists.txt +++ b/src/MedClient/test/environ/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/test/environ/csh/CMakeLists.txt b/src/MedClient/test/environ/csh/CMakeLists.txt index e328cff4c..cadb4bd74 100644 --- a/src/MedClient/test/environ/csh/CMakeLists.txt +++ b/src/MedClient/test/environ/csh/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/test/test1/CMakeLists.txt b/src/MedClient/test/test1/CMakeLists.txt index d5c2445ef..0e09e6f24 100644 --- a/src/MedClient/test/test1/CMakeLists.txt +++ b/src/MedClient/test/test1/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedClient/test/test2/CMakeLists.txt b/src/MedClient/test/test2/CMakeLists.txt index fef9b76b1..496938fd1 100644 --- a/src/MedClient/test/test2/CMakeLists.txt +++ b/src/MedClient/test/test2/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/MedCorba_Swig/CMakeLists.txt b/src/MedCorba_Swig/CMakeLists.txt index a3b9e0a18..4f811e2cf 100644 --- a/src/MedCorba_Swig/CMakeLists.txt +++ b/src/MedCorba_Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDCouplingCorba/CMakeLists.txt b/src/ParaMEDCouplingCorba/CMakeLists.txt index 78e71762a..aa9ce8488 100644 --- a/src/ParaMEDCouplingCorba/CMakeLists.txt +++ b/src/ParaMEDCouplingCorba/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDLoader/CMakeLists.txt b/src/ParaMEDLoader/CMakeLists.txt index 0399885f3..423592313 100644 --- a/src/ParaMEDLoader/CMakeLists.txt +++ b/src/ParaMEDLoader/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDLoader/Makefile.am b/src/ParaMEDLoader/Makefile.am index ac48b8531..184f2309f 100755 --- a/src/ParaMEDLoader/Makefile.am +++ b/src/ParaMEDLoader/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDLoader/ParaMEDLoader.cxx b/src/ParaMEDLoader/ParaMEDLoader.cxx index d0d9b44da..f751551f5 100644 --- a/src/ParaMEDLoader/ParaMEDLoader.cxx +++ b/src/ParaMEDLoader/ParaMEDLoader.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDLoader/ParaMEDLoader.hxx b/src/ParaMEDLoader/ParaMEDLoader.hxx index fd03d89fb..aedacc93d 100644 --- a/src/ParaMEDLoader/ParaMEDLoader.hxx +++ b/src/ParaMEDLoader/ParaMEDLoader.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/BlockTopology.cxx b/src/ParaMEDMEM/BlockTopology.cxx index 5bf9f4034..20d4c8b1a 100644 --- a/src/ParaMEDMEM/BlockTopology.cxx +++ b/src/ParaMEDMEM/BlockTopology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/BlockTopology.hxx b/src/ParaMEDMEM/BlockTopology.hxx index a148fdec3..0f045a152 100644 --- a/src/ParaMEDMEM/BlockTopology.hxx +++ b/src/ParaMEDMEM/BlockTopology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/CMakeLists.txt b/src/ParaMEDMEM/CMakeLists.txt index c86206805..874cb1511 100644 --- a/src/ParaMEDMEM/CMakeLists.txt +++ b/src/ParaMEDMEM/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/CommInterface.cxx b/src/ParaMEDMEM/CommInterface.cxx index 902daded7..3978e48d3 100644 --- a/src/ParaMEDMEM/CommInterface.cxx +++ b/src/ParaMEDMEM/CommInterface.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/CommInterface.hxx b/src/ParaMEDMEM/CommInterface.hxx index e04391b17..3ffdc26a6 100644 --- a/src/ParaMEDMEM/CommInterface.hxx +++ b/src/ParaMEDMEM/CommInterface.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ComponentTopology.cxx b/src/ParaMEDMEM/ComponentTopology.cxx index ce9ee3195..8b4949466 100644 --- a/src/ParaMEDMEM/ComponentTopology.cxx +++ b/src/ParaMEDMEM/ComponentTopology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ComponentTopology.hxx b/src/ParaMEDMEM/ComponentTopology.hxx index 13d6f70b7..fd1a5c299 100644 --- a/src/ParaMEDMEM/ComponentTopology.hxx +++ b/src/ParaMEDMEM/ComponentTopology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/DEC.cxx b/src/ParaMEDMEM/DEC.cxx index 18a699bed..07e75714f 100644 --- a/src/ParaMEDMEM/DEC.cxx +++ b/src/ParaMEDMEM/DEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/DEC.hxx b/src/ParaMEDMEM/DEC.hxx index b6f292a9a..709790499 100644 --- a/src/ParaMEDMEM/DEC.hxx +++ b/src/ParaMEDMEM/DEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/DECOptions.hxx b/src/ParaMEDMEM/DECOptions.hxx index c39d7dd4a..14453b882 100644 --- a/src/ParaMEDMEM/DECOptions.hxx +++ b/src/ParaMEDMEM/DECOptions.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/DisjointDEC.cxx b/src/ParaMEDMEM/DisjointDEC.cxx index 81cea18e0..e601cb481 100644 --- a/src/ParaMEDMEM/DisjointDEC.cxx +++ b/src/ParaMEDMEM/DisjointDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/DisjointDEC.hxx b/src/ParaMEDMEM/DisjointDEC.hxx index 9644a9e57..b012e9a07 100644 --- a/src/ParaMEDMEM/DisjointDEC.hxx +++ b/src/ParaMEDMEM/DisjointDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ElementLocator.cxx b/src/ParaMEDMEM/ElementLocator.cxx index 4c23391e4..8af351d76 100644 --- a/src/ParaMEDMEM/ElementLocator.cxx +++ b/src/ParaMEDMEM/ElementLocator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ElementLocator.hxx b/src/ParaMEDMEM/ElementLocator.hxx index 4e38ed227..7d38ccaf5 100644 --- a/src/ParaMEDMEM/ElementLocator.hxx +++ b/src/ParaMEDMEM/ElementLocator.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx b/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx index 6a84eb5fa..433cb7c72 100644 --- a/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx +++ b/src/ParaMEDMEM/ExplicitCoincidentDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ExplicitCoincidentDEC.hxx b/src/ParaMEDMEM/ExplicitCoincidentDEC.hxx index 20eaffe01..d8597c4d0 100644 --- a/src/ParaMEDMEM/ExplicitCoincidentDEC.hxx +++ b/src/ParaMEDMEM/ExplicitCoincidentDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ExplicitMapping.hxx b/src/ParaMEDMEM/ExplicitMapping.hxx index 76e2a076b..b55199b3f 100644 --- a/src/ParaMEDMEM/ExplicitMapping.hxx +++ b/src/ParaMEDMEM/ExplicitMapping.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ExplicitTopology.cxx b/src/ParaMEDMEM/ExplicitTopology.cxx index 35e442621..8d63e65f3 100644 --- a/src/ParaMEDMEM/ExplicitTopology.cxx +++ b/src/ParaMEDMEM/ExplicitTopology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ExplicitTopology.hxx b/src/ParaMEDMEM/ExplicitTopology.hxx index 9376266f1..3bf0c84bf 100644 --- a/src/ParaMEDMEM/ExplicitTopology.hxx +++ b/src/ParaMEDMEM/ExplicitTopology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoField.cxx b/src/ParaMEDMEM/ICoCoField.cxx index ff021f07d..bb68db753 100644 --- a/src/ParaMEDMEM/ICoCoField.cxx +++ b/src/ParaMEDMEM/ICoCoField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoField.hxx b/src/ParaMEDMEM/ICoCoField.hxx index 63d93b8ba..676ab9598 100644 --- a/src/ParaMEDMEM/ICoCoField.hxx +++ b/src/ParaMEDMEM/ICoCoField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoMEDField.cxx b/src/ParaMEDMEM/ICoCoMEDField.cxx index d73c59c89..1d6f9b3a3 100644 --- a/src/ParaMEDMEM/ICoCoMEDField.cxx +++ b/src/ParaMEDMEM/ICoCoMEDField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoMEDField.hxx b/src/ParaMEDMEM/ICoCoMEDField.hxx index bc9f1a9e4..ec9c5d426 100644 --- a/src/ParaMEDMEM/ICoCoMEDField.hxx +++ b/src/ParaMEDMEM/ICoCoMEDField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoTrioField.cxx b/src/ParaMEDMEM/ICoCoTrioField.cxx index a1b1a2a8d..33494e33e 100644 --- a/src/ParaMEDMEM/ICoCoTrioField.cxx +++ b/src/ParaMEDMEM/ICoCoTrioField.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ICoCoTrioField.hxx b/src/ParaMEDMEM/ICoCoTrioField.hxx index f084440dc..78b942842 100644 --- a/src/ParaMEDMEM/ICoCoTrioField.hxx +++ b/src/ParaMEDMEM/ICoCoTrioField.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/InterpKernelDEC.cxx b/src/ParaMEDMEM/InterpKernelDEC.cxx index c360aa9ac..303672589 100644 --- a/src/ParaMEDMEM/InterpKernelDEC.cxx +++ b/src/ParaMEDMEM/InterpKernelDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/InterpKernelDEC.hxx b/src/ParaMEDMEM/InterpKernelDEC.hxx index efe9103da..aceb50a24 100644 --- a/src/ParaMEDMEM/InterpKernelDEC.hxx +++ b/src/ParaMEDMEM/InterpKernelDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/InterpolationMatrix.cxx b/src/ParaMEDMEM/InterpolationMatrix.cxx index 038425c54..fc6f41610 100644 --- a/src/ParaMEDMEM/InterpolationMatrix.cxx +++ b/src/ParaMEDMEM/InterpolationMatrix.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/InterpolationMatrix.hxx b/src/ParaMEDMEM/InterpolationMatrix.hxx index 4228f156a..7cc187e7a 100644 --- a/src/ParaMEDMEM/InterpolationMatrix.hxx +++ b/src/ParaMEDMEM/InterpolationMatrix.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/LinearTimeInterpolator.cxx b/src/ParaMEDMEM/LinearTimeInterpolator.cxx index c07191c23..9703da3b6 100644 --- a/src/ParaMEDMEM/LinearTimeInterpolator.cxx +++ b/src/ParaMEDMEM/LinearTimeInterpolator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/LinearTimeInterpolator.hxx b/src/ParaMEDMEM/LinearTimeInterpolator.hxx index f154a1144..b684f2d0d 100644 --- a/src/ParaMEDMEM/LinearTimeInterpolator.hxx +++ b/src/ParaMEDMEM/LinearTimeInterpolator.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIAccess.cxx b/src/ParaMEDMEM/MPIAccess.cxx index 634f15163..75b0cabaf 100644 --- a/src/ParaMEDMEM/MPIAccess.cxx +++ b/src/ParaMEDMEM/MPIAccess.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIAccess.hxx b/src/ParaMEDMEM/MPIAccess.hxx index 98284dc53..87426ac15 100644 --- a/src/ParaMEDMEM/MPIAccess.hxx +++ b/src/ParaMEDMEM/MPIAccess.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIAccessDEC.cxx b/src/ParaMEDMEM/MPIAccessDEC.cxx index e1b94bd5a..d0338f343 100644 --- a/src/ParaMEDMEM/MPIAccessDEC.cxx +++ b/src/ParaMEDMEM/MPIAccessDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIAccessDEC.hxx b/src/ParaMEDMEM/MPIAccessDEC.hxx index d5fe4e2ec..c049813ef 100644 --- a/src/ParaMEDMEM/MPIAccessDEC.hxx +++ b/src/ParaMEDMEM/MPIAccessDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIProcessorGroup.cxx b/src/ParaMEDMEM/MPIProcessorGroup.cxx index 342e07413..2a492e73b 100644 --- a/src/ParaMEDMEM/MPIProcessorGroup.cxx +++ b/src/ParaMEDMEM/MPIProcessorGroup.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MPIProcessorGroup.hxx b/src/ParaMEDMEM/MPIProcessorGroup.hxx index 1783cdba9..2575c55dd 100644 --- a/src/ParaMEDMEM/MPIProcessorGroup.hxx +++ b/src/ParaMEDMEM/MPIProcessorGroup.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/Makefile.am b/src/ParaMEDMEM/Makefile.am index 0eea65601..4f0910f18 100644 --- a/src/ParaMEDMEM/Makefile.am +++ b/src/ParaMEDMEM/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MxN_Mapping.cxx b/src/ParaMEDMEM/MxN_Mapping.cxx index bd169744d..c378a1696 100644 --- a/src/ParaMEDMEM/MxN_Mapping.cxx +++ b/src/ParaMEDMEM/MxN_Mapping.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/MxN_Mapping.hxx b/src/ParaMEDMEM/MxN_Mapping.hxx index 74575b7b5..85039451b 100644 --- a/src/ParaMEDMEM/MxN_Mapping.hxx +++ b/src/ParaMEDMEM/MxN_Mapping.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/NonCoincidentDEC.cxx b/src/ParaMEDMEM/NonCoincidentDEC.cxx index 6375ce7bf..4a11f9f3a 100644 --- a/src/ParaMEDMEM/NonCoincidentDEC.cxx +++ b/src/ParaMEDMEM/NonCoincidentDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/NonCoincidentDEC.hxx b/src/ParaMEDMEM/NonCoincidentDEC.hxx index 36038faed..b96814c21 100644 --- a/src/ParaMEDMEM/NonCoincidentDEC.hxx +++ b/src/ParaMEDMEM/NonCoincidentDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapDEC.cxx b/src/ParaMEDMEM/OverlapDEC.cxx index b9458fda9..06a06d663 100644 --- a/src/ParaMEDMEM/OverlapDEC.cxx +++ b/src/ParaMEDMEM/OverlapDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapDEC.hxx b/src/ParaMEDMEM/OverlapDEC.hxx index 81f01a91f..c483d2b07 100644 --- a/src/ParaMEDMEM/OverlapDEC.hxx +++ b/src/ParaMEDMEM/OverlapDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapElementLocator.cxx b/src/ParaMEDMEM/OverlapElementLocator.cxx index 9262c3602..ece659ec3 100644 --- a/src/ParaMEDMEM/OverlapElementLocator.cxx +++ b/src/ParaMEDMEM/OverlapElementLocator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapElementLocator.hxx b/src/ParaMEDMEM/OverlapElementLocator.hxx index 5ffa58fc8..c779a49e9 100644 --- a/src/ParaMEDMEM/OverlapElementLocator.hxx +++ b/src/ParaMEDMEM/OverlapElementLocator.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapInterpolationMatrix.cxx b/src/ParaMEDMEM/OverlapInterpolationMatrix.cxx index 75b075c2d..f8bb14137 100644 --- a/src/ParaMEDMEM/OverlapInterpolationMatrix.cxx +++ b/src/ParaMEDMEM/OverlapInterpolationMatrix.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapInterpolationMatrix.hxx b/src/ParaMEDMEM/OverlapInterpolationMatrix.hxx index 52b9cc1a0..da3acd4f2 100644 --- a/src/ParaMEDMEM/OverlapInterpolationMatrix.hxx +++ b/src/ParaMEDMEM/OverlapInterpolationMatrix.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapMapping.cxx b/src/ParaMEDMEM/OverlapMapping.cxx index 515e9626f..bdb975a5b 100644 --- a/src/ParaMEDMEM/OverlapMapping.cxx +++ b/src/ParaMEDMEM/OverlapMapping.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/OverlapMapping.hxx b/src/ParaMEDMEM/OverlapMapping.hxx index b9d12be51..ca756b334 100644 --- a/src/ParaMEDMEM/OverlapMapping.hxx +++ b/src/ParaMEDMEM/OverlapMapping.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaFIELD.cxx b/src/ParaMEDMEM/ParaFIELD.cxx index 409579384..8a15cfa7a 100644 --- a/src/ParaMEDMEM/ParaFIELD.cxx +++ b/src/ParaMEDMEM/ParaFIELD.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaFIELD.hxx b/src/ParaMEDMEM/ParaFIELD.hxx index 33b5d215b..2ef1c5132 100644 --- a/src/ParaMEDMEM/ParaFIELD.hxx +++ b/src/ParaMEDMEM/ParaFIELD.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaGRID.cxx b/src/ParaMEDMEM/ParaGRID.cxx index 9c94c0b76..4e0299054 100644 --- a/src/ParaMEDMEM/ParaGRID.cxx +++ b/src/ParaMEDMEM/ParaGRID.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaGRID.hxx b/src/ParaMEDMEM/ParaGRID.hxx index 8bd432429..b13d3828f 100644 --- a/src/ParaMEDMEM/ParaGRID.hxx +++ b/src/ParaMEDMEM/ParaGRID.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaMESH.cxx b/src/ParaMEDMEM/ParaMESH.cxx index 410f3f691..a4819739f 100644 --- a/src/ParaMEDMEM/ParaMESH.cxx +++ b/src/ParaMEDMEM/ParaMESH.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ParaMESH.hxx b/src/ParaMEDMEM/ParaMESH.hxx index b43c4a473..5d6a01c4d 100644 --- a/src/ParaMEDMEM/ParaMESH.hxx +++ b/src/ParaMEDMEM/ParaMESH.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ProcessorGroup.cxx b/src/ParaMEDMEM/ProcessorGroup.cxx index ca4ded225..a17514d5e 100644 --- a/src/ParaMEDMEM/ProcessorGroup.cxx +++ b/src/ParaMEDMEM/ProcessorGroup.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/ProcessorGroup.hxx b/src/ParaMEDMEM/ProcessorGroup.hxx index 3c2331089..5757d9340 100644 --- a/src/ParaMEDMEM/ProcessorGroup.hxx +++ b/src/ParaMEDMEM/ProcessorGroup.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx index b1e3aca4e..a2db47343 100644 --- a/src/ParaMEDMEM/StructuredCoincidentDEC.cxx +++ b/src/ParaMEDMEM/StructuredCoincidentDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/StructuredCoincidentDEC.hxx b/src/ParaMEDMEM/StructuredCoincidentDEC.hxx index 0abc1dd6b..0ef87b27f 100644 --- a/src/ParaMEDMEM/StructuredCoincidentDEC.hxx +++ b/src/ParaMEDMEM/StructuredCoincidentDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/TimeInterpolator.cxx b/src/ParaMEDMEM/TimeInterpolator.cxx index 66b6e36a7..d2f6ca9b1 100644 --- a/src/ParaMEDMEM/TimeInterpolator.cxx +++ b/src/ParaMEDMEM/TimeInterpolator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/TimeInterpolator.hxx b/src/ParaMEDMEM/TimeInterpolator.hxx index dccac6232..be9e7966a 100644 --- a/src/ParaMEDMEM/TimeInterpolator.hxx +++ b/src/ParaMEDMEM/TimeInterpolator.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/Topology.cxx b/src/ParaMEDMEM/Topology.cxx index bc9f4c3ab..430e4ec04 100644 --- a/src/ParaMEDMEM/Topology.cxx +++ b/src/ParaMEDMEM/Topology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM/Topology.hxx b/src/ParaMEDMEM/Topology.hxx index f85104e15..2eed6076a 100644 --- a/src/ParaMEDMEM/Topology.hxx +++ b/src/ParaMEDMEM/Topology.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMComponent/CMakeLists.txt b/src/ParaMEDMEMComponent/CMakeLists.txt index dd72eecf6..ec9e621f1 100644 --- a/src/ParaMEDMEMComponent/CMakeLists.txt +++ b/src/ParaMEDMEMComponent/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/CMakeLists.txt b/src/ParaMEDMEMTest/CMakeLists.txt index 774b4154e..3c0767f22 100644 --- a/src/ParaMEDMEMTest/CMakeLists.txt +++ b/src/ParaMEDMEMTest/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPI2Connector.cxx b/src/ParaMEDMEMTest/MPI2Connector.cxx index 01ec77979..376a9347d 100644 --- a/src/ParaMEDMEMTest/MPI2Connector.cxx +++ b/src/ParaMEDMEMTest/MPI2Connector.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPI2Connector.hxx b/src/ParaMEDMEMTest/MPI2Connector.hxx index 43ec14766..7766cb2d5 100644 --- a/src/ParaMEDMEMTest/MPI2Connector.hxx +++ b/src/ParaMEDMEMTest/MPI2Connector.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPIAccessDECTest.cxx b/src/ParaMEDMEMTest/MPIAccessDECTest.cxx index 6d26d2a4e..deef24002 100644 --- a/src/ParaMEDMEMTest/MPIAccessDECTest.cxx +++ b/src/ParaMEDMEMTest/MPIAccessDECTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPIAccessDECTest.hxx b/src/ParaMEDMEMTest/MPIAccessDECTest.hxx index 8f2980c23..6b594e3bd 100644 --- a/src/ParaMEDMEMTest/MPIAccessDECTest.hxx +++ b/src/ParaMEDMEMTest/MPIAccessDECTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPIAccessTest.cxx b/src/ParaMEDMEMTest/MPIAccessTest.cxx index c5a438754..125ded85a 100644 --- a/src/ParaMEDMEMTest/MPIAccessTest.cxx +++ b/src/ParaMEDMEMTest/MPIAccessTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPIAccessTest.hxx b/src/ParaMEDMEMTest/MPIAccessTest.hxx index 57cd8f8a5..22108d361 100644 --- a/src/ParaMEDMEMTest/MPIAccessTest.hxx +++ b/src/ParaMEDMEMTest/MPIAccessTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/MPIMainTest.hxx b/src/ParaMEDMEMTest/MPIMainTest.hxx index fea607844..d79484584 100644 --- a/src/ParaMEDMEMTest/MPIMainTest.hxx +++ b/src/ParaMEDMEMTest/MPIMainTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/Makefile.am b/src/ParaMEDMEMTest/Makefile.am index 60f1e2c86..0bf55d2bf 100644 --- a/src/ParaMEDMEMTest/Makefile.am +++ b/src/ParaMEDMEMTest/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest.cxx index 1526ce906..34d71fb9b 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest.hxx b/src/ParaMEDMEMTest/ParaMEDMEMTest.hxx index e65e67429..ab62d8704 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest.hxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx index 7510854d4..609727d9c 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx index 5ba80a215..e9ced97f1 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTestMPI2_2.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_BlockTopology.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_BlockTopology.cxx index 124d165b7..ad3baf7f7 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_BlockTopology.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_BlockTopology.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_FabienAPI.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_FabienAPI.cxx index 17917b06a..1ec6fce0c 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_FabienAPI.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_FabienAPI.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx index 92940b73a..d76417fec 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_Gauthier1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_ICocoTrio.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_ICocoTrio.cxx index 072e3761e..19b446cfa 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_ICocoTrio.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_ICocoTrio.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx index 296b94018..555ffdada 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_InterpKernelDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_MEDLoader.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_MEDLoader.cxx index ec3893402..de07c5c12 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_MEDLoader.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_MEDLoader.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_MPIProcessorGroup.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_MPIProcessorGroup.cxx index e42204ef9..64b68cc6b 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_MPIProcessorGroup.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_MPIProcessorGroup.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_NonCoincidentDEC.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_NonCoincidentDEC.cxx index 09d2e93f1..9155cd1c8 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_NonCoincidentDEC.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_NonCoincidentDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_OverlapDEC.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_OverlapDEC.cxx index bd8e826ff..e620f25e7 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_OverlapDEC.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_OverlapDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/ParaMEDMEMTest_StructuredCoincidentDEC.cxx b/src/ParaMEDMEMTest/ParaMEDMEMTest_StructuredCoincidentDEC.cxx index b4d06b4df..537e47e4c 100644 --- a/src/ParaMEDMEMTest/ParaMEDMEMTest_StructuredCoincidentDEC.cxx +++ b/src/ParaMEDMEMTest/ParaMEDMEMTest_StructuredCoincidentDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/TestMPIAccess.cxx b/src/ParaMEDMEMTest/TestMPIAccess.cxx index 67df9f2c0..e343f2d80 100644 --- a/src/ParaMEDMEMTest/TestMPIAccess.cxx +++ b/src/ParaMEDMEMTest/TestMPIAccess.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/TestMPIAccessDEC.cxx b/src/ParaMEDMEMTest/TestMPIAccessDEC.cxx index f1ab84f62..5cbd5d3c8 100644 --- a/src/ParaMEDMEMTest/TestMPIAccessDEC.cxx +++ b/src/ParaMEDMEMTest/TestMPIAccessDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/TestParaMEDMEM.cxx b/src/ParaMEDMEMTest/TestParaMEDMEM.cxx index 0a33046e6..4fd8e16f6 100644 --- a/src/ParaMEDMEMTest/TestParaMEDMEM.cxx +++ b/src/ParaMEDMEMTest/TestParaMEDMEM.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_AllToAllDEC.cxx b/src/ParaMEDMEMTest/test_AllToAllDEC.cxx index deae00fe5..bc59f994b 100644 --- a/src/ParaMEDMEMTest/test_AllToAllDEC.cxx +++ b/src/ParaMEDMEMTest/test_AllToAllDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx b/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx index dad05cbdf..9b3d1eacc 100644 --- a/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx +++ b/src/ParaMEDMEMTest/test_AllToAllTimeDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx b/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx index b1145d2a5..70603ea80 100644 --- a/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx +++ b/src/ParaMEDMEMTest/test_AllToAllvDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx b/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx index 5c5fdbb8c..f35f80834 100644 --- a/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx +++ b/src/ParaMEDMEMTest/test_AllToAllvTimeDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx b/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx index 74b8627bf..cc7741bda 100644 --- a/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx +++ b/src/ParaMEDMEMTest/test_AllToAllvTimeDoubleDEC.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx index fed215a56..2cda2fa25 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Cancel.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx index 74384dca8..b51f53e61 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_ISend_IRecv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx index c56c6c57f..5ff0c7572 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Cyclic_Send_Recv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx b/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx index 505be972b..f355f1bf1 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_IProbe.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx index c37952089..c0e590479 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_ISendRecv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx index 87400106d..2d9feba33 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx index 2d04d2e05..5333678f4 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_BottleNeck.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx index 92d4ac05c..61af0ca31 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx index 5df7cff36..2642bafdc 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_ISend_IRecv_Length_1.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx index 3507d5d90..3f3e82d91 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Probe.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx index c5b5a262f..286831130 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_SendRecv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx index 055a639d7..4e3acad71 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx index 9806436f2..6ad84eac2 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Send_Recv_Length.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx index ad53976a1..a889bea1f 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Time.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx b/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx index 667cb4f8f..8c1bd4d4f 100644 --- a/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx +++ b/src/ParaMEDMEMTest/test_MPI_Access_Time_0.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEMTest/test_perf.cxx b/src/ParaMEDMEMTest/test_perf.cxx index 640431b23..413b363cf 100644 --- a/src/ParaMEDMEMTest/test_perf.cxx +++ b/src/ParaMEDMEMTest/test_perf.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/CMakeLists.txt b/src/ParaMEDMEM_Swig/CMakeLists.txt index 40aeaea35..d4de72f06 100644 --- a/src/ParaMEDMEM_Swig/CMakeLists.txt +++ b/src/ParaMEDMEM_Swig/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/Makefile.am b/src/ParaMEDMEM_Swig/Makefile.am index 1230c2a69..59ed6b1d4 100644 --- a/src/ParaMEDMEM_Swig/Makefile.am +++ b/src/ParaMEDMEM_Swig/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/ParaMEDMEM.i b/src/ParaMEDMEM_Swig/ParaMEDMEM.i index 9effbf415..58aae1138 100644 --- a/src/ParaMEDMEM_Swig/ParaMEDMEM.i +++ b/src/ParaMEDMEM_Swig/ParaMEDMEM.i @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap b/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap index 9f5a35314..89819e4a5 100644 --- a/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap +++ b/src/ParaMEDMEM_Swig/ParaMEDMEM.typemap @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py b/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py index e227588a3..b46496b86 100755 --- a/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py +++ b/src/ParaMEDMEM_Swig/test_InterpKernelDEC.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/test_NonCoincidentDEC.py b/src/ParaMEDMEM_Swig/test_NonCoincidentDEC.py index f6a278111..ffb9974e7 100755 --- a/src/ParaMEDMEM_Swig/test_NonCoincidentDEC.py +++ b/src/ParaMEDMEM_Swig/test_NonCoincidentDEC.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/ParaMEDMEM_Swig/test_StructuredCoincidentDEC.py b/src/ParaMEDMEM_Swig/test_StructuredCoincidentDEC.py index 856622bb5..4dccdee64 100755 --- a/src/ParaMEDMEM_Swig/test_StructuredCoincidentDEC.py +++ b/src/ParaMEDMEM_Swig/test_StructuredCoincidentDEC.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/CMakeLists.txt b/src/RENUMBER/CMakeLists.txt index d6e32ff3c..62db78727 100644 --- a/src/RENUMBER/CMakeLists.txt +++ b/src/RENUMBER/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 @@ -45,17 +45,20 @@ SET(renumber_SOURCES renumbering.cxx ) +SET(renumbercpp_LDFLAGS medmem) SET(renumber_FLAGS "${HDF5_FLAGS} ${MED3_FLAGS} ${BOOST_FLAGS}") IF(MED_ENABLE_METIS) SET(renumbercpp_SOURCES ${renumbercpp_SOURCES} RENUMBER_METISRenumbering.cxx) SET(renumbercpp_HEADERS_HXX ${renumbercpp_HEADERS_HXX} RENUMBER_METISRenumbering.hxx) + SET(renumbercpp_LDFLAGS ${renumbercpp_LDFLAGS} ${METIS_LIBS}) SET(renumber_FLAGS "${renumber_FLAGS} ${METIS_FLAGS}") ENDIF(MED_ENABLE_METIS) IF(BOOST_STATUS) SET(renumbercpp_SOURCES ${renumbercpp_SOURCES} RENUMBER_BOOSTRenumbering.cxx) SET(renumbercpp_HEADERS_HXX ${renumbercpp_HEADERS_HXX} RENUMBER_BOOSTRenumbering.hxx) + SET(renumbercpp_LDFLAGS ${renumbercpp_LDFLAGS} ${BOOST_LIBS}) SET(renumber_FLAGS "${renumber_FLAGS} ${BOOST_FLAGS} -DENABLE_BOOST") ENDIF(BOOST_STATUS) @@ -66,7 +69,7 @@ INSTALL(TARGETS renumber DESTINATION ${MED_salomebin_BINS}) ADD_LIBRARY(renumbercpp SHARED ${renumbercpp_SOURCES}) SET_TARGET_PROPERTIES(renumbercpp PROPERTIES COMPILE_FLAGS "${renumber_FLAGS}") -TARGET_LINK_LIBRARIES(renumbercpp medmem) +TARGET_LINK_LIBRARIES(renumbercpp ${renumbercpp_LDFLAGS}) INSTALL(TARGETS renumbercpp DESTINATION ${MED_salomelib_LIBS}) INSTALL(FILES ${renumbercpp_HEADERS_HXX} DESTINATION ${MED_salomeinclude_HEADERS}) diff --git a/src/RENUMBER/Makefile.am b/src/RENUMBER/Makefile.am index edcae61dc..021ba4b9b 100644 --- a/src/RENUMBER/Makefile.am +++ b/src/RENUMBER/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBERDefines.hxx b/src/RENUMBER/RENUMBERDefines.hxx index b5e7e89df..e3c74701c 100755 --- a/src/RENUMBER/RENUMBERDefines.hxx +++ b/src/RENUMBER/RENUMBERDefines.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_BOOSTRenumbering.cxx b/src/RENUMBER/RENUMBER_BOOSTRenumbering.cxx index 4b2ea5d30..17bb550f6 100644 --- a/src/RENUMBER/RENUMBER_BOOSTRenumbering.cxx +++ b/src/RENUMBER/RENUMBER_BOOSTRenumbering.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_BOOSTRenumbering.hxx b/src/RENUMBER/RENUMBER_BOOSTRenumbering.hxx index fc3753f35..070723b78 100644 --- a/src/RENUMBER/RENUMBER_BOOSTRenumbering.hxx +++ b/src/RENUMBER/RENUMBER_BOOSTRenumbering.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_METISRenumbering.cxx b/src/RENUMBER/RENUMBER_METISRenumbering.cxx index 0f0a46d5d..7373fc8cf 100644 --- a/src/RENUMBER/RENUMBER_METISRenumbering.cxx +++ b/src/RENUMBER/RENUMBER_METISRenumbering.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_METISRenumbering.hxx b/src/RENUMBER/RENUMBER_METISRenumbering.hxx index 20d7f3474..8a2d05bd1 100644 --- a/src/RENUMBER/RENUMBER_METISRenumbering.hxx +++ b/src/RENUMBER/RENUMBER_METISRenumbering.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_Renumbering.cxx b/src/RENUMBER/RENUMBER_Renumbering.cxx index 838f07bbc..202b8ccb2 100644 --- a/src/RENUMBER/RENUMBER_Renumbering.cxx +++ b/src/RENUMBER/RENUMBER_Renumbering.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RENUMBER_Renumbering.hxx b/src/RENUMBER/RENUMBER_Renumbering.hxx index 76f8604b1..22496a770 100644 --- a/src/RENUMBER/RENUMBER_Renumbering.hxx +++ b/src/RENUMBER/RENUMBER_Renumbering.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RenumberingFactory.cxx b/src/RENUMBER/RenumberingFactory.cxx index 2bd11dcdb..a0548cf85 100644 --- a/src/RENUMBER/RenumberingFactory.cxx +++ b/src/RENUMBER/RenumberingFactory.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/RenumberingFactory.hxx b/src/RENUMBER/RenumberingFactory.hxx index e998c5f60..a7bab20d2 100644 --- a/src/RENUMBER/RenumberingFactory.hxx +++ b/src/RENUMBER/RenumberingFactory.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/renumbering.cxx b/src/RENUMBER/renumbering.cxx index 24bab76a0..8f0dc24cf 100644 --- a/src/RENUMBER/renumbering.cxx +++ b/src/RENUMBER/renumbering.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2011 CEA/DEN, EDF R&D +// Copyright (C) 2007-2012 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 diff --git a/src/RENUMBER/testRenumbering.py b/src/RENUMBER/testRenumbering.py index 0454aff8a..249f2d4bd 100755 --- a/src/RENUMBER/testRenumbering.py +++ b/src/RENUMBER/testRenumbering.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2011 CEA/DEN, EDF R&D +# Copyright (C) 2007-2012 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