BOUT-dev icon indicating copy to clipboard operation
BOUT-dev copied to clipboard

Mesh communication API cleanup

Open bendudson opened this issue 11 years ago • 1 comments

The current communications API makes assumptions about the parallelisation which limits development. In general the mesh need not be divided regularly into an NXPE by NYPE grid so these should be replaced:

virtual int getNXPE() = 0; virtual int getNYPE() = 0;

virtual int getXProcIndex() = 0; virtual int getYProcIndex() = 0;

int NXPE, PE_XIND;

The branch cuts should also be handled in a more general way, so these shouldn't be in Mesh:

virtual int UpXSplitIndex() = 0;  virtual int DownXSplitIndex() = 0;  virtual int sendYOutIndest(BoutReal *buffer, int size, int tag) = 0;  virtual int sendYOutOutdest(BoutReal *buffer, int size, int tag) = 0;  virtual int sendYInIndest(BoutReal *buffer, int size, int tag) = 0;  virtual int sendYInOutdest(BoutReal *buffer, int size, int tag) = 0;  virtual comm_handle irecvYOutIndest(BoutReal *buffer, int size, int tag) = 0;  virtual comm_handle irecvYOutOutdest(BoutReal *buffer, int size, int tag) = 0;  virtual comm_handle irecvYInIndest(BoutReal *buffer, int size, int tag) = 0;  virtual comm_handle irecvYInOutdest(BoutReal *buffer, int size, int tag) = 0;

[only used in non-local ]

bendudson avatar Jan 12 '15 16:01 bendudson

I guess this is basically the "mesh generalisation" project.

ZedThree avatar Dec 16 '16 15:12 ZedThree