Salome HOME
Various fixes for test runs - introducing MEDCOUPLING_RESOURCE_DIR env variable
[tools/medcoupling.git] / src / ParaMEDMEM / DisjointDEC.hxx
index 4de75ebafd01e68c9dd30d9a1c791deefa1fc1a1..289d618dded6d65c915ee59805baa6a7cd9866bb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2007-2020  CEA/DEN, EDF 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,7 +36,36 @@ namespace MEDCoupling
 {
   class ProcessorGroup;
   class ParaFIELD;
-  
+
+  /*!
+   * \anchor DisjointDEC-det
+   * \class DisjointDEC
+   *
+   * \section DisjointDEC-over Overview
+   *
+   * Abstract interface class representing a link between two
+   * processor groups for exchanging mesh or field data. The two processor groups must
+   * have a void intersection (\ref MEDCoupling::OverlapDEC "OverlapDEC" is to be considered otherwise).
+   * The %DEC is initialized by attaching a field on the receiving or on the
+   * sending side.
+   *
+   * The data is sent or received through calls to the (abstract) methods recvData() and sendData().
+   *
+   * One can attach either a \c MEDCoupling::ParaFIELD, or a
+   * \c ICoCo::Field, or directly a \c MEDCoupling::MEDCouplingFieldDouble instance.
+   * See the various signatures of the method DisjointDEC::attachLocalField()
+   *
+   * The derivations of this class should be considered for practical instantiation:
+   * - \ref InterpKernelDEC-det "InterpKernelDEC"
+   * - \ref ExplicitCoincidentDEC-det "ExplicitCoincidentDEC"
+   * - \ref StructuredCoincidentDEC-det "StructuredCoincidentDEC"
+   *
+   * \section DisjointDEC-options DisjointDEC options
+   * The options supported by %DisjointDEC objects are the same that the ones supported for all
+   * DECs in general and are all inherited from the class \ref MEDCoupling::DECOptions "DECOptions"
+   *
+  */
+
   class DisjointDEC : public DEC
   {
   public:
@@ -71,9 +100,10 @@ namespace MEDCoupling
     bool isInTargetSide() const;
     bool isInUnion() const;
   protected:
-    void compareFieldAndMethod() const throw(INTERP_KERNEL::Exception);
+    void compareFieldAndMethod() const;
     void cleanInstance();
     void copyInstance(const DisjointDEC& other);
+    void checkPartitionGroup() const;
   protected:
     const ParaFIELD* _local_field;
     //! Processor group representing the union of target and source processors