From da7c93880f8a48c989f95899426d6797bafc71a8 Mon Sep 17 00:00:00 2001 From: secher Date: Mon, 22 Jun 2009 08:14:43 +0000 Subject: [PATCH] improvement for multiple parallel couplings --- src/ParaMEDMEM/ElementLocator.cxx | 5 +++-- src/ParaMEDMEM/ElementLocator.hxx | 2 +- src/ParaMEDMEM/IntersectionDEC.cxx | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ParaMEDMEM/ElementLocator.cxx b/src/ParaMEDMEM/ElementLocator.cxx index 773aa5086..16d2ef66c 100644 --- a/src/ParaMEDMEM/ElementLocator.cxx +++ b/src/ParaMEDMEM/ElementLocator.cxx @@ -36,11 +36,12 @@ using namespace std; namespace ParaMEDMEM { ElementLocator::ElementLocator(const ParaFIELD& sourceField, - const ProcessorGroup& distant_group) + const ProcessorGroup& distant_group, + const ProcessorGroup& local_group) : _local_para_field(sourceField), _local_cell_mesh(sourceField.getSupport()->getCellMesh()), _local_face_mesh(sourceField.getSupport()->getFaceMesh()), - _local_group(*sourceField.getSupport()->getBlockTopology()->getProcGroup()), + _local_group(local_group), _distant_group(distant_group) { _union_group = _local_group.fuse(distant_group); diff --git a/src/ParaMEDMEM/ElementLocator.hxx b/src/ParaMEDMEM/ElementLocator.hxx index 38a49bd0c..1acbf84f6 100644 --- a/src/ParaMEDMEM/ElementLocator.hxx +++ b/src/ParaMEDMEM/ElementLocator.hxx @@ -37,7 +37,7 @@ namespace ParaMEDMEM class ElementLocator : public INTERP_KERNEL::InterpolationOptions { public: - ElementLocator(const ParaFIELD& sourceField, const ProcessorGroup& distant_group); + ElementLocator(const ParaFIELD& sourceField, const ProcessorGroup& distant_group, const ProcessorGroup& local_group); virtual ~ElementLocator(); void exchangeMesh(int idistantrank, diff --git a/src/ParaMEDMEM/IntersectionDEC.cxx b/src/ParaMEDMEM/IntersectionDEC.cxx index 8a97efdac..852ae39cf 100644 --- a/src/ParaMEDMEM/IntersectionDEC.cxx +++ b/src/ParaMEDMEM/IntersectionDEC.cxx @@ -150,7 +150,7 @@ namespace ParaMEDMEM if (_source_group->containsMyRank()) { //locate the distant meshes - ElementLocator locator(*_local_field, *_target_group); + ElementLocator locator(*_local_field, *_target_group, *_source_group); //transfering option from IntersectionDEC to ElementLocator locator.setBoundingBoxAdjustment(getBoundingBoxAdjustment()); @@ -184,7 +184,7 @@ namespace ParaMEDMEM if (_target_group->containsMyRank()) { - ElementLocator locator(*_local_field, *_source_group); + ElementLocator locator(*_local_field, *_source_group, *_target_group); //transfering option from IntersectionDEC to ElementLocator locator.setBoundingBoxAdjustment(getBoundingBoxAdjustment()); -- 2.39.2