Actual source code: cmesh.c

  1: /*$Id: cmesh.c,v 1.75 2001/09/07 20:08:55 bsmith Exp $*/

 3:  #include petscvec.h


  6: /*@
  7:     VecContourScale - Prepares a vector of values to be plotted using 
  8:     the PetscDrawTriangle() contour plotter.

 10:     Collective on Vec

 12:     Input Parameters:
 13: +   v - the vector of values
 14: .   vmin - minimum value (for lowest color)
 15: -   vmax - maximum value (for highest color)

 17:    Level: intermediate

 19: .seealso: PetscDrawTensorContour(),PetscDrawTensorContourPatch()

 21: @*/
 22: int VecContourScale(Vec v,PetscReal vmin,PetscReal vmax)
 23: {
 24:   PetscScalar *values;
 25:   int         ierr,n,i;
 26:   PetscReal   scale;


 31:   if (PetscAbsReal(vmax - vmin) < 1.e-50) {
 32:      scale = 1.0;
 33:   } else {
 34:     scale = (245.0 - PETSC_DRAW_BASIC_COLORS)/(vmax - vmin);
 35:   }

 37:   VecGetLocalSize(v,&n);
 38:   VecGetArray(v,&values);
 39:   for (i=0; i<n; i++) {
 40:     values[i] = (PetscReal)PETSC_DRAW_BASIC_COLORS + scale*(values[i] - vmin);
 41:   }
 42:   VecRestoreArray(v,&values);

 44:   return(0);
 45: }