1: #define PETSCVEC_DLL
3: #include petscvec.h
8: /*@
9: VecContourScale - Prepares a vector of values to be plotted using
10: the PetscDrawTriangle() contour plotter.
12: Collective on Vec
14: Input Parameters:
15: + v - the vector of values
16: . vmin - minimum value (for lowest color)
17: - vmax - maximum value (for highest color)
19: Level: intermediate
21: .seealso: PetscDrawTensorContour(),PetscDrawTensorContourPatch()
23: @*/
24: PetscErrorCode VecContourScale(Vec v,PetscReal vmin,PetscReal vmax)
25: {
26: PetscScalar *values;
28: PetscInt n,i;
29: PetscReal scale;
34: if (PetscAbsReal(vmax - vmin) < 1.e-50) {
35: scale = 1.0;
36: } else {
37: scale = (245.0 - PETSC_DRAW_BASIC_COLORS)/(vmax - vmin);
38: }
40: VecGetLocalSize(v,&n);
41: VecGetArray(v,&values);
42: for (i=0; i<n; i++) {
43: values[i] = (PetscReal)PETSC_DRAW_BASIC_COLORS + scale*(values[i] - vmin);
44: }
45: VecRestoreArray(v,&values);
47: return(0);
48: }