-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2016 CEA/DEN, EDF 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.
+// 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
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+// Author : Anthony Geay (CEA/DEN)
#ifndef __OVERLAPDEC_HXX__
#define __OVERLAPDEC_HXX__
#include "InterpolationOptions.hxx"
#include <mpi.h>
+#include <string>
-namespace ParaMEDMEM
+namespace MEDCoupling
{
class OverlapInterpolationMatrix;
+ class OverlapElementLocator;
class ProcessorGroup;
class ParaFIELD;
void synchronize();
void attachSourceLocalField(ParaFIELD *field, bool ownPt=false);
void attachTargetLocalField(ParaFIELD *field, bool ownPt=false);
- ProcessorGroup *getGrp() { return _group; }
+ void attachSourceLocalField(MEDCouplingFieldDouble *field);
+ void attachTargetLocalField(MEDCouplingFieldDouble *field);
+ ProcessorGroup *getGroup() { return _group; }
bool isInGroup() const;
+
+ void setDefaultValue(double val) {_default_field_value = val;}
+ //! 0 means initial algo from Antho, 1 or 2 means Adrien's algo (2 should be better). Make your choice :-))
+ void setWorkSharingAlgo(int method) { _load_balancing_algo = method; }
+
+ void debugPrintWorkSharing(std::ostream & ostr) const;
private:
+ int _load_balancing_algo;
+
bool _own_group;
OverlapInterpolationMatrix* _interpolation_matrix;
+ OverlapElementLocator* _locator;
ProcessorGroup *_group;
- private:
+
+ double _default_field_value;
+
ParaFIELD *_source_field;
bool _own_source_field;
ParaFIELD *_target_field;
bool _own_target_field;
+ MPI_Comm _comm;
};
}