X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FParaMEDMEM%2FDisjointDEC.hxx;h=8e84c9980d6d3d39e7a0eff20136c81423225bbf;hb=1b5fb5650409b0ad3a61da3215496f2adf2dae02;hp=8cf754248277a529f7c4c470bf6b01e48b012e9b;hpb=a5a009e0d290b13f262ba4f251dd20d1c7acb20d;p=tools%2Fmedcoupling.git diff --git a/src/ParaMEDMEM/DisjointDEC.hxx b/src/ParaMEDMEM/DisjointDEC.hxx index 8cf754248..8e84c9980 100644 --- a/src/ParaMEDMEM/DisjointDEC.hxx +++ b/src/ParaMEDMEM/DisjointDEC.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D +// Copyright (C) 2007-2023 CEA, EDF // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -29,14 +29,43 @@ namespace ICoCo { - class MEDField; + class MEDDoubleField; } 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: @@ -50,10 +79,12 @@ namespace MEDCoupling DisjointDEC &operator=(const DisjointDEC& s); DisjointDEC(const std::set& src_ids, const std::set& trg_ids, const MPI_Comm& world_comm=MPI_COMM_WORLD); + virtual ~DisjointDEC(); + void setNature(NatureOfField nature); void attachLocalField( MEDCouplingFieldDouble *field); void attachLocalField(const ParaFIELD *field, bool ownPt=false); - void attachLocalField(const ICoCo::MEDField *field); + void attachLocalField(const ICoCo::MEDDoubleField *field); virtual void prepareSourceDE() = 0; virtual void prepareTargetDE() = 0; @@ -61,7 +92,7 @@ namespace MEDCoupling virtual void sendData() = 0; void sendRecvData(bool way=true); virtual void synchronize() = 0; - virtual ~DisjointDEC(); + virtual void computeProcGroup() { } void renormalizeTargetField(bool isWAbs); // @@ -71,7 +102,7 @@ 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;