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

Mark Lohry mlohry at gmail.com
Thu Mar 20 10:38:22 CDT 2014

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