Interlaced vectors.

billy at dem.uminho.pt billy at dem.uminho.pt
Fri Jul 6 07:36:00 CDT 2007



Thanks, I will try that.

Billy.

Quoting Barry Smith <bsmith at mcs.anl.gov>:

> 
>   You can simply create the vector with VecCreateGhost() with 
> n and N 3 times as big, nghost 3 times as big and the 
> ghosts[] array three times as long. (filled with 3*ghosts[0], 
> 3*ghosts[0]+1,3*ghosts[0]+2,3*ghosts[1],3*ghosts[1]+1,3*ghosts[1]+2, etc
> where ghosts is what you use currently.
> 
>    Barry
> 
> On Thu, 5 Jul 2007, billy at dem.uminho.pt wrote:
> 
> > 
> > Right now, they are 3 separate VecCreateGhost that are updated at the same
> time 
> > using 3 calls to VecGhostUpdateBegin and VecGhostUpdateEnd. I read that
> putting 
> > them into a single call might accelerate communication. The question what
> is 
> > the best way to do this? 
> > 
> > Billy.
> > 
> > 
> > Citando Lisandro Dalcin <dalcinl at gmail.com>:
> > 
> > > On 7/4/07, billy at dem.uminho.pt <billy at dem.uminho.pt> wrote:
> > > > Hi,
> > > >
> > > > I have a velocity vector (u,v,w) with 3 updates. Is there an efficient
> way
> > > to
> > > > interlace the 3 vectors into 1 update without creating a new data
> > > structure?
> > > 
> > > Look at VecStrideScatter, but not sure exactly what you need. Can
> > > elaborate a bit more? What are x,u,v? Sepparate PETSc Vec's, or just a
> > > Vec with consecutive entries?
> > > 
> > > -- 
> > > Lisandro Dalcín
> > > ---------------
> > > Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> > > Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> > > Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> > > PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> > > Tel/Fax: +54-(0)342-451.1594
> > > 
> > > 
> > 
> > 
> > 
> 





More information about the petsc-users mailing list