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);
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,
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());
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());