1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>VecScatterPostRecvs</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="VecScatterPostRecvs"><H1>VecScatterPostRecvs</H1></A>
Posts the receives required for the ready-receiver version of the <A HREF="../Vec/VecScatter.html#VecScatter">VecScatter</A> routines.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscvec.h"
int VecScatterPostRecvs(Vec x,Vec y,InsertMode addv,ScatterMode mode,VecScatter inctx)
</PRE>
Collective on <A HREF="../Vec/VecScatter.html#VecScatter">VecScatter</A>
<P>
<H3><FONT COLOR="#CC3333">Input Parameters</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>x </B></TD><TD>- the vector from which we scatter (not needed,can be null)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>y </B></TD><TD>- the vector to which we scatter
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>addv </B></TD><TD>- either ADD_VALUES or INSERT_VALUES
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>mode </B></TD><TD>- the scattering mode, usually SCATTER_FORWARD. The available modes are:
SCATTER_FORWARD, SCATTER_REVERSE
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>inctx </B></TD><TD>- scatter context generated by <A HREF="../Vec/VecScatterCreate.html#VecScatterCreate">VecScatterCreate</A>()
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Output Parameter</FONT></H3>
<DT><B>y </B> -the vector to which we scatter
<br>
<P>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
If you use SCATTER_REVERSE the first two arguments should be reversed, from
the SCATTER_FORWARD.
The vectors x and y cannot be the same. y[iy[i]] = x[ix[i]], for i=0,...,ni-1
<P>
This scatter is far more general than the conventional
scatter, since it can be a gather or a scatter or a combination,
depending on the indices ix and iy. If x is a parallel vector and y
is sequential, <A HREF="../Vec/VecScatterBegin.html#VecScatterBegin">VecScatterBegin</A>() can serve to gather values to a
single processor. Similarly, if y is parallel and x sequential, the
routine can scatter from one processor to many processors.
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../Vec/VecScatterCreate.html#VecScatterCreate">VecScatterCreate</A>(), <A HREF="../Vec/VecScatterEnd.html#VecScatterEnd">VecScatterEnd</A>(), <A HREF="../Vec/VecScatterBegin.html#VecScatterBegin">VecScatterBegin</A>()
<BR><P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>advanced
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/vec/utils/vscat.c.html#VecScatterPostRecvs">src/vec/utils/vscat.c</A>
<BR><A HREF="./index.html">Index of all Vec routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|