Lines Matching refs:sp
40 PetscDrawSP sp; in PetscDrawSPCreate() local
46 …PetscCall(PetscHeaderCreate(sp, PETSC_DRAWSP_CLASSID, "DrawSP", "Scatter Plot", "Draw", PetscObjec… in PetscDrawSPCreate()
48 sp->win = draw; in PetscDrawSPCreate()
49 sp->view = NULL; in PetscDrawSPCreate()
50 sp->destroy = NULL; in PetscDrawSPCreate()
51 sp->nopts = 0; in PetscDrawSPCreate()
52 sp->dim = -1; in PetscDrawSPCreate()
53 sp->xmin = (PetscReal)1.e20; in PetscDrawSPCreate()
54 sp->ymin = (PetscReal)1.e20; in PetscDrawSPCreate()
55 sp->zmin = (PetscReal)1.e20; in PetscDrawSPCreate()
56 sp->xmax = (PetscReal)-1.e20; in PetscDrawSPCreate()
57 sp->ymax = (PetscReal)-1.e20; in PetscDrawSPCreate()
58 sp->zmax = (PetscReal)-1.e20; in PetscDrawSPCreate()
59 sp->colorized = PETSC_FALSE; in PetscDrawSPCreate()
60 sp->loc = 0; in PetscDrawSPCreate()
62 PetscCall(PetscDrawSPSetDimension(sp, dim)); in PetscDrawSPCreate()
63 PetscCall(PetscDrawAxisCreate(draw, &sp->axis)); in PetscDrawSPCreate()
65 *drawsp = sp; in PetscDrawSPCreate()
82 PetscErrorCode PetscDrawSPSetDimension(PetscDrawSP sp, int dim) in PetscDrawSPSetDimension() argument
85 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPSetDimension()
86 if (sp->dim == dim) PetscFunctionReturn(PETSC_SUCCESS); in PetscDrawSPSetDimension()
87 sp->dim = dim; in PetscDrawSPSetDimension()
88 PetscCall(PetscFree3(sp->x, sp->y, sp->z)); in PetscDrawSPSetDimension()
89 …3(dim * PETSC_DRAW_SP_CHUNK_SIZE, &sp->x, dim * PETSC_DRAW_SP_CHUNK_SIZE, &sp->y, dim * PETSC_DRAW… in PetscDrawSPSetDimension()
90 sp->len = dim * PETSC_DRAW_SP_CHUNK_SIZE; in PetscDrawSPSetDimension()
109 PetscErrorCode PetscDrawSPGetDimension(PetscDrawSP sp, int *dim) in PetscDrawSPGetDimension() argument
112 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPGetDimension()
114 *dim = sp->dim; in PetscDrawSPGetDimension()
130 PetscErrorCode PetscDrawSPReset(PetscDrawSP sp) in PetscDrawSPReset() argument
133 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPReset()
134 sp->xmin = (PetscReal)1.e20; in PetscDrawSPReset()
135 sp->ymin = (PetscReal)1.e20; in PetscDrawSPReset()
136 sp->zmin = (PetscReal)1.e20; in PetscDrawSPReset()
137 sp->xmax = (PetscReal)-1.e20; in PetscDrawSPReset()
138 sp->ymax = (PetscReal)-1.e20; in PetscDrawSPReset()
139 sp->zmax = (PetscReal)-1.e20; in PetscDrawSPReset()
140 sp->loc = 0; in PetscDrawSPReset()
141 sp->nopts = 0; in PetscDrawSPReset()
157 PetscErrorCode PetscDrawSPDestroy(PetscDrawSP *sp) in PetscDrawSPDestroy() argument
160 if (!*sp) PetscFunctionReturn(PETSC_SUCCESS); in PetscDrawSPDestroy()
161 PetscValidHeaderSpecific(*sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPDestroy()
162 if (--((PetscObject)*sp)->refct > 0) { in PetscDrawSPDestroy()
163 *sp = NULL; in PetscDrawSPDestroy()
167 PetscCall(PetscFree3((*sp)->x, (*sp)->y, (*sp)->z)); in PetscDrawSPDestroy()
168 PetscCall(PetscDrawAxisDestroy(&(*sp)->axis)); in PetscDrawSPDestroy()
169 PetscCall(PetscDrawDestroy(&(*sp)->win)); in PetscDrawSPDestroy()
170 PetscCall(PetscHeaderDestroy(sp)); in PetscDrawSPDestroy()
192 PetscErrorCode PetscDrawSPAddPoint(PetscDrawSP sp, PetscReal *x, PetscReal *y) in PetscDrawSPAddPoint() argument
197 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPAddPoint()
199 if (sp->loc + sp->dim >= sp->len) { /* allocate more space */ in PetscDrawSPAddPoint()
201 …all(PetscMalloc3(sp->len + sp->dim * PETSC_DRAW_SP_CHUNK_SIZE, &tmpx, sp->len + sp->dim * PETSC_DR… in PetscDrawSPAddPoint()
202 PetscCall(PetscArraycpy(tmpx, sp->x, sp->len)); in PetscDrawSPAddPoint()
203 PetscCall(PetscArraycpy(tmpy, sp->y, sp->len)); in PetscDrawSPAddPoint()
204 PetscCall(PetscArraycpy(tmpz, sp->z, sp->len)); in PetscDrawSPAddPoint()
205 PetscCall(PetscFree3(sp->x, sp->y, sp->z)); in PetscDrawSPAddPoint()
206 sp->x = tmpx; in PetscDrawSPAddPoint()
207 sp->y = tmpy; in PetscDrawSPAddPoint()
208 sp->z = tmpz; in PetscDrawSPAddPoint()
209 sp->len += sp->dim * PETSC_DRAW_SP_CHUNK_SIZE; in PetscDrawSPAddPoint()
211 for (i = 0; i < sp->dim; ++i) { in PetscDrawSPAddPoint()
212 if (x[i] > sp->xmax) sp->xmax = x[i]; in PetscDrawSPAddPoint()
213 if (x[i] < sp->xmin) sp->xmin = x[i]; in PetscDrawSPAddPoint()
214 if (y[i] > sp->ymax) sp->ymax = y[i]; in PetscDrawSPAddPoint()
215 if (y[i] < sp->ymin) sp->ymin = y[i]; in PetscDrawSPAddPoint()
217 sp->x[sp->loc] = x[i]; in PetscDrawSPAddPoint()
218 sp->y[sp->loc++] = y[i]; in PetscDrawSPAddPoint()
220 ++sp->nopts; in PetscDrawSPAddPoint()
242 PetscErrorCode PetscDrawSPAddPoints(PetscDrawSP sp, int n, PetscReal *xx[], PetscReal *yy[]) in PetscDrawSPAddPoints() argument
248 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPAddPoints()
250 if (sp->loc + n * sp->dim >= sp->len) { /* allocate more space */ in PetscDrawSPAddPoints()
254 …PetscCall(PetscMalloc3(sp->len + sp->dim * chunk, &tmpx, sp->len + sp->dim * chunk, &tmpy, sp->len… in PetscDrawSPAddPoints()
255 PetscCall(PetscArraycpy(tmpx, sp->x, sp->len)); in PetscDrawSPAddPoints()
256 PetscCall(PetscArraycpy(tmpy, sp->y, sp->len)); in PetscDrawSPAddPoints()
257 PetscCall(PetscArraycpy(tmpz, sp->z, sp->len)); in PetscDrawSPAddPoints()
258 PetscCall(PetscFree3(sp->x, sp->y, sp->z)); in PetscDrawSPAddPoints()
260 sp->x = tmpx; in PetscDrawSPAddPoints()
261 sp->y = tmpy; in PetscDrawSPAddPoints()
262 sp->z = tmpz; in PetscDrawSPAddPoints()
263 sp->len += sp->dim * PETSC_DRAW_SP_CHUNK_SIZE; in PetscDrawSPAddPoints()
265 for (j = 0; j < sp->dim; ++j) { in PetscDrawSPAddPoints()
268 k = sp->loc + j; in PetscDrawSPAddPoints()
270 if (x[i] > sp->xmax) sp->xmax = x[i]; in PetscDrawSPAddPoints()
271 if (x[i] < sp->xmin) sp->xmin = x[i]; in PetscDrawSPAddPoints()
272 if (y[i] > sp->ymax) sp->ymax = y[i]; in PetscDrawSPAddPoints()
273 if (y[i] < sp->ymin) sp->ymin = y[i]; in PetscDrawSPAddPoints()
275 sp->x[k] = x[i]; in PetscDrawSPAddPoints()
276 sp->y[k] = y[i]; in PetscDrawSPAddPoints()
277 k += sp->dim; in PetscDrawSPAddPoints()
280 sp->loc += n * sp->dim; in PetscDrawSPAddPoints()
281 sp->nopts += n; in PetscDrawSPAddPoints()
304 PetscErrorCode PetscDrawSPAddPointColorized(PetscDrawSP sp, PetscReal *x, PetscReal *y, PetscReal *… in PetscDrawSPAddPointColorized() argument
309 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPAddPointColorized()
310 sp->colorized = PETSC_TRUE; in PetscDrawSPAddPointColorized()
311 if (sp->loc + sp->dim >= sp->len) { /* allocate more space */ in PetscDrawSPAddPointColorized()
313 …all(PetscMalloc3(sp->len + sp->dim * PETSC_DRAW_SP_CHUNK_SIZE, &tmpx, sp->len + sp->dim * PETSC_DR… in PetscDrawSPAddPointColorized()
314 PetscCall(PetscArraycpy(tmpx, sp->x, sp->len)); in PetscDrawSPAddPointColorized()
315 PetscCall(PetscArraycpy(tmpy, sp->y, sp->len)); in PetscDrawSPAddPointColorized()
316 PetscCall(PetscArraycpy(tmpz, sp->z, sp->len)); in PetscDrawSPAddPointColorized()
317 PetscCall(PetscFree3(sp->x, sp->y, sp->z)); in PetscDrawSPAddPointColorized()
318 sp->x = tmpx; in PetscDrawSPAddPointColorized()
319 sp->y = tmpy; in PetscDrawSPAddPointColorized()
320 sp->z = tmpz; in PetscDrawSPAddPointColorized()
321 sp->len += sp->dim * PETSC_DRAW_SP_CHUNK_SIZE; in PetscDrawSPAddPointColorized()
323 for (i = 0; i < sp->dim; ++i) { in PetscDrawSPAddPointColorized()
324 if (x[i] > sp->xmax) sp->xmax = x[i]; in PetscDrawSPAddPointColorized()
325 if (x[i] < sp->xmin) sp->xmin = x[i]; in PetscDrawSPAddPointColorized()
326 if (y[i] > sp->ymax) sp->ymax = y[i]; in PetscDrawSPAddPointColorized()
327 if (y[i] < sp->ymin) sp->ymin = y[i]; in PetscDrawSPAddPointColorized()
328 if (z[i] < sp->zmin) sp->zmin = z[i]; in PetscDrawSPAddPointColorized()
329 if (z[i] > sp->zmax) sp->zmax = z[i]; in PetscDrawSPAddPointColorized()
332 sp->x[sp->loc] = x[i]; in PetscDrawSPAddPointColorized()
333 sp->y[sp->loc] = y[i]; in PetscDrawSPAddPointColorized()
334 sp->z[sp->loc++] = z[i]; in PetscDrawSPAddPointColorized()
336 ++sp->nopts; in PetscDrawSPAddPointColorized()
353 PetscErrorCode PetscDrawSPDraw(PetscDrawSP sp, PetscBool clear) in PetscDrawSPDraw() argument
360 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPDraw()
361 draw = sp->win; in PetscDrawSPDraw()
364 PetscCallMPI(MPI_Comm_rank(PetscObjectComm((PetscObject)sp), &rank)); in PetscDrawSPDraw()
365 PetscCallMPI(MPI_Comm_size(PetscObjectComm((PetscObject)sp), &size)); in PetscDrawSPDraw()
372 PetscReal lower[2] = {sp->xmin, sp->ymin}, glower[2]; in PetscDrawSPDraw()
373 PetscReal upper[2] = {sp->xmax, sp->ymax}, gupper[2]; in PetscDrawSPDraw()
374 …scCallMPI(MPIU_Allreduce(lower, glower, 2, MPIU_REAL, MPIU_MIN, PetscObjectComm((PetscObject)sp))); in PetscDrawSPDraw()
375 …scCallMPI(MPIU_Allreduce(upper, gupper, 2, MPIU_REAL, MPIU_MAX, PetscObjectComm((PetscObject)sp))); in PetscDrawSPDraw()
376 PetscCall(PetscDrawAxisSetLimits(sp->axis, glower[0], gupper[0], glower[1], gupper[1])); in PetscDrawSPDraw()
377 PetscCall(PetscDrawAxisDraw(sp->axis)); in PetscDrawSPDraw()
382 const int dim = sp->dim, nopts = sp->nopts; in PetscDrawSPDraw()
386 …int color = sp->colorized ? PetscDrawRealToColor(sp->z[p * dim], sp->zmin, sp->zmax) : (size > 1 ?… in PetscDrawSPDraw()
388 PetscCall(PetscDrawPoint(draw, sp->x[p * dim + i], sp->y[p * dim + i], color)); in PetscDrawSPDraw()
411 PetscErrorCode PetscDrawSPSave(PetscDrawSP sp) in PetscDrawSPSave() argument
414 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPSave()
415 PetscCall(PetscDrawSave(sp->win)); in PetscDrawSPSave()
435 PetscErrorCode PetscDrawSPSetLimits(PetscDrawSP sp, PetscReal x_min, PetscReal x_max, PetscReal y_m… in PetscDrawSPSetLimits() argument
438 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPSetLimits()
439 sp->xmin = x_min; in PetscDrawSPSetLimits()
440 sp->xmax = x_max; in PetscDrawSPSetLimits()
441 sp->ymin = y_min; in PetscDrawSPSetLimits()
442 sp->ymax = y_max; in PetscDrawSPSetLimits()
464 PetscErrorCode PetscDrawSPGetAxis(PetscDrawSP sp, PetscDrawAxis *axis) in PetscDrawSPGetAxis() argument
467 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPGetAxis()
469 *axis = sp->axis; in PetscDrawSPGetAxis()
488 PetscErrorCode PetscDrawSPGetDraw(PetscDrawSP sp, PetscDraw *draw) in PetscDrawSPGetDraw() argument
491 PetscValidHeaderSpecific(sp, PETSC_DRAWSP_CLASSID, 1); in PetscDrawSPGetDraw()
493 *draw = sp->win; in PetscDrawSPGetDraw()