#include "petscvec.h" PetscErrorCode VecScatterCreate(Vec xin,IS ix,Vec yin,IS iy,VecScatter *newctx)Collective on Vec

xin | - a vector that defines the shape (parallel data layout of the vector) of vectors from which we scatter | |

yin | - a vector that defines the shape (parallel data layout of the vector) of vectors to which we scatter | |

ix | - the indices of xin to scatter (if PETSC_NULL scatters all values) | |

iy | - the indices of yin to hold results (if PETSC_NULL fills entire vector yin) |

-vecscatter_merge | - VecScatterBegin() handles all of the communication, VecScatterEnd() is a nop eliminates the chance for overlap of computation and communication | |

-vecscatter_ssend | - Uses MPI_Ssend_init() instead of MPI_Send_init() | |

-vecscatter_sendfirst | - Posts sends before receives | |

-vecscatter_rr | - use ready receiver mode for MPI sends | |

-vecscatter_packtogether | - Pack all messages before sending, receive all messages before unpacking ONLY implemented for BLOCK SIZE of 4 and 12! (others easily added) |

VecScatter VecScatterCreate(Vec x,Vec y,IS is) | -> | VecScatterCreate(x,PETSC_NULL,y,is,&s); return s; | |||

VecScatterCreate(Vec x,Vec y,IS is,VecScatter *s) | -> | VecScatterCreate(x,PETSC_NULL,y,is,s) | |||

VecScatter VecScatterCreate(Vec x,IS is,Vec y) | -> | VecScatterCreate(x,is,y,PETSC_NULL,&s); return s; | |||

VecScatterCreate(Vec x,IS is,Vec y,VecScatter *s) | -> | VecScatterCreate(x,is,y,PETSC_NULL,s) | |||

VecScatter VecScatterCreate(Vec x,IS is1,Vec y,IS is2) | -> | VecScatterCreate(x,is1,y,is2,&s); return s; |

** Level:intermediate
Location:**src/vec/vec/utils/vscat.c

Index of all Vec routines

Table of Contents for all manual pages

Index of all manual pages

src/dm/da/examples/tutorials/ex6.c.html

src/dm/da/examples/tutorials/ex6f90.F.html