[petsc-users] Compute norm of a single component of DMDAVec struct

Barry Smith bsmith at mcs.anl.gov
Thu Mar 20 12:03:01 CDT 2014


   You can use VecStrideNorm() if you wish only  a particular one or VecStrideNormAll() if you wish all the norms.

   Barry

On Mar 20, 2014, at 10:38 AM, Mark Lohry <mlohry at gmail.com> wrote:

> I'm using a struct for a multi-component PDE as suggested in the manual, like so:
> 
> typedef struct {
> PetscScalar u,v,omega,temperature;
> } Node;
> Node **f,**u;
> DMDAVecGetArray(DM da,Vec local,&u);
> DMDAVecGetArray(DM da,Vec global,&f);
> 
> 
> Calling VecNorm(...) on these vectors gives a norm for the entire vector. If one wants separate norms for each component of the struct, i.e. Norm(u) or Norm(v), what's the right approach? Would I need to manually compute norms locally and then call an MPI reduce function, or is this ability built-in to PETSc somewhere?
> 
> 
> -Mark Lohry



More information about the petsc-users mailing list