X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2FParaMEDMEM%2FNonCoincidentDEC.cxx;h=4f44a7f54a8ed3d943c73cc76212295cdfa737a3;hb=2b06481ba4aac1672d1326d7bfb13e14e529ffb4;hp=6ca700a0b8895e87490023132d1d7f831699e79f;hpb=48782c06022ca2caa36f849cb5a29ea4fe2aaa83;p=tools%2Fmedcoupling.git diff --git a/src/ParaMEDMEM/NonCoincidentDEC.cxx b/src/ParaMEDMEM/NonCoincidentDEC.cxx index 6ca700a0b..4f44a7f54 100644 --- a/src/ParaMEDMEM/NonCoincidentDEC.cxx +++ b/src/ParaMEDMEM/NonCoincidentDEC.cxx @@ -1,21 +1,22 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #include #include "CommInterface.hxx" #include "Topology.hxx" @@ -37,19 +38,18 @@ namespace ParaMEDMEM { /*! - \defgroup noncoincidentdec NonCoincidentDEC - - \section overview Overview + \anchor NonCoincidentDEC-det + \class NonCoincidentDEC \c NonCoincidentDEC enables nonconservative remapping of fields between two parallel codes. The computation is possible for 3D meshes and 2D meshes. - It is not available for 3D surfaces. The computation enables fast parallel localization, based on the - FVM library. The computation is based on a point in element search, followed + It is not available for 3D surfaces. The computation enables fast parallel localization, and is based on a point in element search, followed by a field evaluation at the point location. Thus, it is typically - faster than the \ref intersectiondec which gives a \ref conservativeremapping. + faster than the \ref InterpKernelDEC-det "InterpKernelDEC" which gives a + \ref InterpKerRemapGlobal "conservative remapping". It is particularly true for the initialisation phase (synchronize) - which is very computationnaly intensive in \ref intersectiondec. + which is very computationnaly intensive in \ref InterpKernelDEC-det. In the present version, only fields lying on elements are considered. The value is estimated by locating the barycenter of the target @@ -98,7 +98,8 @@ namespace ParaMEDMEM fvm_nodal_t* medmemMeshToFVMMesh(const MEDMEM::MESH* mesh) { // create an FVM structure from the paramesh structure - fvm_nodal_t * fvm_nodal = fvm_nodal_create(mesh->getName().c_str(),mesh->getMeshDimension()); + std::string meshName(mesh->getName());//this line avoid that mesh->getName() object killed before fvm_nodal_create read the const char *. + fvm_nodal_t * fvm_nodal = fvm_nodal_create(meshName.c_str(),mesh->getMeshDimension()); //loop on cell types int nbtypes = mesh->getNumberOfTypes(MED_EN::MED_CELL); @@ -168,7 +169,8 @@ namespace ParaMEDMEM { // create an FVM structure from the paramesh structure - fvm_nodal_t * fvm_nodal = fvm_nodal_create(support->getName().c_str(),1); + std::string supportName(support->getName());//this line avoid that support->getName() object killed before fvm_nodal_create read the const char *. + fvm_nodal_t * fvm_nodal = fvm_nodal_create(supportName.c_str(),1); const MEDMEM::MESH* mesh= support->getMesh(); @@ -240,12 +242,7 @@ namespace ParaMEDMEM { } - /*! - \addtogroup noncoincidentdec - @{ - */ - - /*! Constructor of a non coincident DEC with + /*! Constructor of a non coincident \ref para-dec "DEC" with * a source group on which lies a field lying on a mesh and a * target group on which lies a mesh. * @@ -390,7 +387,4 @@ namespace ParaMEDMEM renormalizeTargetField(); } - /*! - @} - */ }