Back to index

salome-med  6.5.0
Public Member Functions | Public Attributes | Protected Attributes | Private Attributes
ParaMEDMEM::OverlapDEC Class Reference

#include <OverlapDEC.hxx>

Inheritance diagram for ParaMEDMEM::OverlapDEC:
Inheritance graph
[legend]
Collaboration diagram for ParaMEDMEM::OverlapDEC:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 OverlapDEC (const std::set< int > &procIds, const MPI_Comm &world_comm=MPI_COMM_WORLD)
virtual ~OverlapDEC ()
void sendRecvData (bool way=true)
void sendData ()
void recvData ()
void synchronize ()
void attachSourceLocalField (ParaFIELD *field, bool ownPt=false)
void attachTargetLocalField (ParaFIELD *field, bool ownPt=false)
ProcessorGroupgetGrp ()
bool isInGroup () const
void copyFrom (const DEC &other)
def copyFrom
def synchronize
def sendRecvData
const std::string & getMethod () const
def getMethod
void setMethod (const char *m)
def setMethod
TimeInterpolationMethod getTimeInterpolationMethod () const
def getTimeInterpolationMethod
void setTimeInterpolationMethod (TimeInterpolationMethod it)
def setTimeInterpolationMethod
bool getForcedRenormalization () const
def getForcedRenormalization
void setForcedRenormalization (bool dr)
def setForcedRenormalization
bool getAsynchronous () const
def getAsynchronous
void setAsynchronous (bool dr)
def setAsynchronous
AllToAllMethod getAllToAllMethod () const
def getAllToAllMethod
void setAllToAllMethod (AllToAllMethod sp)
def setAllToAllMethod

Public Attributes

 this

Protected Attributes

const CommInterface_comm_interface
std::string _method
bool _asynchronous
TimeInterpolationMethod _timeInterpolationMethod
AllToAllMethod _allToAllMethod
bool _forcedRenormalization

Private Attributes

bool _own_group
OverlapInterpolationMatrix_interpolation_matrix
ProcessorGroup_group
ParaFIELD_source_field
bool _own_source_field
ParaFIELD_target_field
bool _own_target_field

Detailed Description

Definition at line 34 of file OverlapDEC.hxx.


Constructor & Destructor Documentation

ParaMEDMEM::OverlapDEC::OverlapDEC ( const std::set< int > &  procIds,
const MPI_Comm &  world_comm = MPI_COMM_WORLD 
)

Definition at line 156 of file OverlapDEC.cxx.

                                                                              :_own_group(true),_interpolation_matrix(0),
                                                                                   _source_field(0),_own_source_field(false),
                                                                                   _target_field(0),_own_target_field(false)
  {
    ParaMEDMEM::CommInterface comm;
    int *ranks_world=new int[procIds.size()]; // ranks of sources and targets in world_comm
    std::copy(procIds.begin(),procIds.end(),ranks_world);
    MPI_Group group,world_group;
    comm.commGroup(world_comm,&world_group);
    comm.groupIncl(world_group,procIds.size(),ranks_world,&group);
    delete [] ranks_world;
    MPI_Comm theComm;
    comm.commCreate(world_comm,group,&theComm);
    comm.groupFree(&group);
    if(theComm==MPI_COMM_NULL)
      {
        _group=0;
        return ;
      }
    std::set<int> idsUnion;
    for(std::size_t i=0;i<procIds.size();i++)
      idsUnion.insert(i);
    _group=new MPIProcessorGroup(comm,idsUnion,theComm);
  }

Here is the call graph for this function:

Definition at line 181 of file OverlapDEC.cxx.


Member Function Documentation

void ParaMEDMEM::OverlapDEC::attachSourceLocalField ( ParaFIELD field,
bool  ownPt = false 
)

Definition at line 235 of file OverlapDEC.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

void ParaMEDMEM::OverlapDEC::attachTargetLocalField ( ParaFIELD field,
bool  ownPt = false 
)

Definition at line 245 of file OverlapDEC.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

void ParaMEDMEM::DEC::copyFrom ( const DEC other) [inherited]

Definition at line 40 of file DEC.cxx.

  {
    _comm_interface=other._comm_interface;
  }

Here is the caller graph for this function:

def ParaMEDMEM.DEC.copyFrom (   self,
  args 
) [inherited]
copyFrom(self, DEC other)

1

Definition at line 15445 of file ParaMEDMEM.py.

15445 
15446     def copyFrom(self, *args):
15447         """
15448         copyFrom(self, DEC other)
15449 
15450         1
15451         """
15452         return _ParaMEDMEM.DEC_copyFrom(self, *args)

Here is the call graph for this function:

Definition at line 69 of file DECOptions.hxx.

{ return _allToAllMethod; }

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.getAllToAllMethod (   self) [inherited]
getAllToAllMethod(self) -> AllToAllMethod

1

Definition at line 14967 of file ParaMEDMEM.py.

14967 
14968     def getAllToAllMethod(self):
14969         """
14970         getAllToAllMethod(self) -> AllToAllMethod
14971 
14972         1
14973         """
14974         return _ParaMEDMEM.DECOptions_getAllToAllMethod(self)

Here is the call graph for this function:

bool ParaMEDMEM::DECOptions::getAsynchronous ( ) const [inline, inherited]

Definition at line 66 of file DECOptions.hxx.

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.getAsynchronous (   self) [inherited]
getAsynchronous(self) -> bool

1

Definition at line 14951 of file ParaMEDMEM.py.

14951 
14952     def getAsynchronous(self):
14953         """
14954         getAsynchronous(self) -> bool
14955 
14956         1
14957         """
14958         return _ParaMEDMEM.DECOptions_getAsynchronous(self)

Here is the call graph for this function:

bool ParaMEDMEM::DECOptions::getForcedRenormalization ( ) const [inline, inherited]

Definition at line 63 of file DECOptions.hxx.

Here is the caller graph for this function:

getForcedRenormalization(self) -> bool

1

Definition at line 14935 of file ParaMEDMEM.py.

14935 
14936     def getForcedRenormalization(self):
14937         """
14938         getForcedRenormalization(self) -> bool
14939 
14940         1
14941         """
14942         return _ParaMEDMEM.DECOptions_getForcedRenormalization(self)

Here is the call graph for this function:

Definition at line 45 of file OverlapDEC.hxx.

{ return _group; }

Here is the caller graph for this function:

const std::string& ParaMEDMEM::DECOptions::getMethod ( ) const [inline, inherited]

Definition at line 57 of file DECOptions.hxx.

{ return _method; }

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.getMethod (   self) [inherited]
getMethod(self) -> string

1

Definition at line 14903 of file ParaMEDMEM.py.

14903 
14904     def getMethod(self):
14905         """
14906         getMethod(self) -> string
14907 
14908         1
14909         """
14910         return _ParaMEDMEM.DECOptions_getMethod(self)

Here is the call graph for this function:

Definition at line 60 of file DECOptions.hxx.

Here is the caller graph for this function:

getTimeInterpolationMethod(self) -> TimeInterpolationMethod

1

Definition at line 14919 of file ParaMEDMEM.py.

14919 
14920     def getTimeInterpolationMethod(self):
14921         """
14922         getTimeInterpolationMethod(self) -> TimeInterpolationMethod
14923 
14924         1
14925         """
14926         return _ParaMEDMEM.DECOptions_getTimeInterpolationMethod(self)

Here is the call graph for this function:

Definition at line 255 of file OverlapDEC.cxx.

  {
    if(!_group)
      return false;
    return _group->containsMyRank();
  }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 205 of file OverlapDEC.cxx.

  {
    throw INTERP_KERNEL::Exception("Not implemented yet !!!!");
    //_interpolation_matrix->transposeMultiply();
  }

Here is the caller graph for this function:

Definition at line 200 of file OverlapDEC.cxx.

Here is the call graph for this function:

Here is the caller graph for this function:

void ParaMEDMEM::OverlapDEC::sendRecvData ( bool  way = true) [virtual]

Implements ParaMEDMEM::DEC.

Definition at line 192 of file OverlapDEC.cxx.

  {
    if(way)
      sendData();
    else
      recvData();
  }

Here is the call graph for this function:

Here is the caller graph for this function:

def ParaMEDMEM.DEC.sendRecvData (   self,
  way = True 
) [inherited]
sendRecvData(self, bool way = True)
sendRecvData(self)

1

Definition at line 15461 of file ParaMEDMEM.py.

15461 
15462     def sendRecvData(self, way = True):
15463         """
15464         sendRecvData(self, bool way = True)
15465         sendRecvData(self)
15466 
15467         1
15468         """
15469         return _ParaMEDMEM.DEC_sendRecvData(self, way)

Here is the call graph for this function:

Definition at line 70 of file DECOptions.hxx.

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.setAllToAllMethod (   self,
  args 
) [inherited]
setAllToAllMethod(self, AllToAllMethod sp)

1

Definition at line 14975 of file ParaMEDMEM.py.

14975 
14976     def setAllToAllMethod(self, *args):
14977         """
14978         setAllToAllMethod(self, AllToAllMethod sp)
14979 
14980         1
14981         """
14982         return _ParaMEDMEM.DECOptions_setAllToAllMethod(self, *args)

Here is the call graph for this function:

void ParaMEDMEM::DECOptions::setAsynchronous ( bool  dr) [inline, inherited]

Definition at line 67 of file DECOptions.hxx.

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.setAsynchronous (   self,
  args 
) [inherited]
setAsynchronous(self, bool dr)

1

Definition at line 14959 of file ParaMEDMEM.py.

14959 
14960     def setAsynchronous(self, *args):
14961         """
14962         setAsynchronous(self, bool dr)
14963 
14964         1
14965         """
14966         return _ParaMEDMEM.DECOptions_setAsynchronous(self, *args)

Here is the call graph for this function:

void ParaMEDMEM::DECOptions::setForcedRenormalization ( bool  dr) [inline, inherited]

Definition at line 64 of file DECOptions.hxx.

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.setForcedRenormalization (   self,
  args 
) [inherited]
setForcedRenormalization(self, bool dr)

1

Definition at line 14943 of file ParaMEDMEM.py.

14943 
14944     def setForcedRenormalization(self, *args):
14945         """
14946         setForcedRenormalization(self, bool dr)
14947 
14948         1
14949         """
14950         return _ParaMEDMEM.DECOptions_setForcedRenormalization(self, *args)

Here is the call graph for this function:

void ParaMEDMEM::DECOptions::setMethod ( const char *  m) [inline, inherited]

Definition at line 58 of file DECOptions.hxx.

{ _method=m; }

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.setMethod (   self,
  args 
) [inherited]
setMethod(self, char m)

1

Definition at line 14911 of file ParaMEDMEM.py.

14911 
14912     def setMethod(self, *args):
14913         """
14914         setMethod(self, char m)
14915 
14916         1
14917         """
14918         return _ParaMEDMEM.DECOptions_setMethod(self, *args)

Here is the call graph for this function:

Definition at line 61 of file DECOptions.hxx.

Here is the caller graph for this function:

def ParaMEDMEM.DECOptions.setTimeInterpolationMethod (   self,
  args 
) [inherited]
setTimeInterpolationMethod(self, TimeInterpolationMethod it)

1

Definition at line 14927 of file ParaMEDMEM.py.

14927 
14928     def setTimeInterpolationMethod(self, *args):
14929         """
14930         setTimeInterpolationMethod(self, TimeInterpolationMethod it)
14931 
14932         1
14933         """
14934         return _ParaMEDMEM.DECOptions_setTimeInterpolationMethod(self, *args)

Here is the call graph for this function:

Implements ParaMEDMEM::DEC.

Definition at line 211 of file OverlapDEC.cxx.

  {
    if(!isInGroup())
      return ;
    delete _interpolation_matrix;
    _interpolation_matrix=new OverlapInterpolationMatrix(_source_field,_target_field,*_group,*this,*this);
    OverlapElementLocator locator(_source_field,_target_field,*_group);
    locator.copyOptions(*this);
    locator.exchangeMeshes(*_interpolation_matrix);
    std::vector< std::pair<int,int> > jobs=locator.getToDoList();
    std::string srcMeth=locator.getSourceMethod();
    std::string trgMeth=locator.getTargetMethod();
    for(std::vector< std::pair<int,int> >::const_iterator it=jobs.begin();it!=jobs.end();it++)
      {
        const MEDCouplingPointSet *src=locator.getSourceMesh((*it).first);
        const DataArrayInt *srcIds=locator.getSourceIds((*it).first);
        const MEDCouplingPointSet *trg=locator.getTargetMesh((*it).second);
        const DataArrayInt *trgIds=locator.getTargetIds((*it).second);
        _interpolation_matrix->addContribution(src,srcIds,srcMeth,(*it).first,trg,trgIds,trgMeth,(*it).second);
      }
    _interpolation_matrix->prepare(locator.getProcsInInteraction());
    _interpolation_matrix->computeDeno();
  }

Here is the call graph for this function:

Here is the caller graph for this function:

def ParaMEDMEM.DEC.synchronize (   self) [inherited]
synchronize(self)

1

Reimplemented in ParaMEDMEM::StructuredCoincidentDEC, and ParaMEDMEM::InterpKernelDEC.

Definition at line 15453 of file ParaMEDMEM.py.

15453 
15454     def synchronize(self):
15455         """
15456         synchronize(self)
15457 
15458         1
15459         """
15460         return _ParaMEDMEM.DEC_synchronize(self)

Here is the call graph for this function:


Member Data Documentation

Definition at line 37 of file DECOptions.hxx.

bool ParaMEDMEM::DECOptions::_asynchronous [protected, inherited]

Definition at line 35 of file DECOptions.hxx.

const CommInterface* ParaMEDMEM::DEC::_comm_interface [protected, inherited]

Reimplemented in ParaMEDMEM::DisjointDEC.

Definition at line 39 of file DEC.hxx.

Definition at line 38 of file DECOptions.hxx.

Definition at line 50 of file OverlapDEC.hxx.

Definition at line 49 of file OverlapDEC.hxx.

std::string ParaMEDMEM::DECOptions::_method [protected, inherited]

Reimplemented in ParaMEDMEM::NonCoincidentDEC.

Definition at line 34 of file DECOptions.hxx.

Definition at line 48 of file OverlapDEC.hxx.

Definition at line 53 of file OverlapDEC.hxx.

Definition at line 55 of file OverlapDEC.hxx.

Definition at line 52 of file OverlapDEC.hxx.

Definition at line 54 of file OverlapDEC.hxx.

Definition at line 36 of file DECOptions.hxx.

Reimplemented in ParaMEDMEM::StructuredCoincidentDEC, and ParaMEDMEM::InterpKernelDEC.

Definition at line 14902 of file ParaMEDMEM.py.


The documentation for this class was generated from the following files: