There doesn’t seem to be a global analog of DMCompositeGetLocalVectors. Do I need to do manual indexing?
-gideon > On Sep 11, 2015, at 9:36 AM, Matthew Knepley <[email protected]> wrote: > > On Fri, Sep 11, 2015 at 8:15 AM, Gideon Simpson <[email protected] > <mailto:[email protected]>> wrote: > Ok, so here’s some behavior I don’t understand. I am working with a > DMComposite structure, and I do the following, > > SNESComputeFunction(snes,U_refine,r); > SNESGetDM(snes, &dm_refine); > > DMCompositeGetLocalVectors(dm_refine, &rp, &rQ); > DMCompositeScatter(dm_refine, r, rp, rQ); > > VecNorm(r, NORM_2, &r_norm); > VecNorm(rp, NORM_2, &rp_norm); > VecNorm(rQ, NORM_2, &rQ_norm); > > VecGetSize(r,&r_size); > VecGetSize(rp, &rp_size); > VecGetSize(rQ, &rQ_size); > > DMCompositeRestoreLocalVectors(dm_refine, &rp, &rQ); > VecDestroy(&r); > > PetscPrintf(PETSC_COMM_WORLD," ||r|| = %g, %i entries\n",r_norm,r_size); > PetscPrintf(PETSC_COMM_WORLD," ||rp|| = %g, %i > entries\n",rp_norm,rp_size); > PetscPrintf(PETSC_COMM_WORLD," ||rQ|| = %g, %i > entries\n",rQ_norm,rQ_size); > > and my output is: > > ||r|| = 225.31, 7999 entries > ||rp|| = 140.021, 3 entries > ||rQ|| = 176.56, 8004 entries > > > The arithmetic, is off, no? > > I think you want Global vectors for this, not Local vectors. > > Matt > > -gideon > >> On Sep 10, 2015, at 5:28 PM, Barry Smith <[email protected] >> <mailto:[email protected]>> wrote: >> >> >> SNESGetDM() this will return not the original DM you set but the refined >> one. >> >>> On Sep 10, 2015, at 3:47 PM, Gideon Simpson <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> I’m using a DMCompsosite along with grid sequencing and here’s what I’m >>> trying to accomplish. After running the SNES solve, I’d like to evaluate >>> the residual on the refined grid, on each piece of the DMComposite. How do >>> I get a DM for the refined grid which I can then use with >>> DMCompositeGetLocalVectors in order to get each piece of the problem? Or >>> is there a better way? >>> >>> -gideon >>> >> > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener
