1 | /*************************************** 2 | $Header: /cvsroot/petscgraphics/illuminator.h,v 1.15 2003/07/25 15:40:09 hazelsct Exp $ 3 | 4 | This is the interface for the Illuminator library. 5 | ***************************************/ 6 | 7 | #ifndef ILLUMINATOR_H 8 | #define ILLUMINATOR_H /*+ To stop multiple inclusions. +*/ 9 | #include <petscda.h> 10 | 11 | /* Core stuff */ 12 | int IllDrawTet (PetscScalar *coords, PetscScalar *vals, PetscScalar isoquant, PetscScalar *color); 13 | int IllDrawHex (PetscScalar *coords, PetscScalar *vals, PetscScalar isoquant, PetscScalar *color); 14 | int IllDraw3DBlock (int xd, int yd, int zd, int xs, int ys, int zs, int xm, 15 | int ym, int zm, PetscScalar *minmax, PetscScalar *vals, 16 | int skip, int n_quants, PetscScalar *isoquants, 17 | PetscScalar *colors); 18 | 19 | /*+ A value of 20 | +latex+{\tt field\_plot\_type} 21 | +html+ <tt>field_plot_type</tt> 22 | is attached to each field in a simulation in order to visualize them 23 | properly. Types are as follows: 24 | +*/ 25 | typedef enum { 26 | /*+Plot scalar field using colors.+*/ 27 | FIELD_SCALAR_COLORS=0x00, 28 | /*+Plot scalar field using contours.+*/ 29 | FIELD_SCALAR_CONTOURS=0x01, 30 | /*+Plot ternary data using red, green, blue for components (third component 31 | is inferred from first two).+*/ 32 | FIELD_TERNARY_RGB=0x10, 33 | /*+Plot vector field using arrows.+*/ 34 | FIELD_VECTOR_ARROWS=0x20, 35 | /*+Plot vector field using hue for direction, intensity for magnitude.+*/ 36 | FIELD_VECTOR_HUEINTENSE=0x21, 37 | /*+Plot transformation tensor field as vector triplets.+*/ 38 | FIELD_TENSOR_TRANSFORM_VECTORS=0x30, 39 | /*+Plot symmetric tensor field using lines in principal stress directions.+*/ 40 | FIELD_TENSOR_STRESS=0x38, 41 | /*+Plot symmetric tensor field using lines in principal stress directions, 42 | inferring last diagonal from the opposite of the sum of the other two.+*/ 43 | FIELD_TENSOR_STRESS_SHEAR=0x39 44 | } field_plot_type; 45 | 46 | /* PETSc stuff */ 47 | int DATriangulate (DA theda, Vec X, int this, PetscScalar *minmax, 48 | int n_quants, PetscScalar *isoquants, PetscScalar *colors); 49 | int IllErrorHandler (int id, char *message); 50 | 51 | /* Plot2D stuff, future development... */ 52 | 53 | /* int DAPlot (DA theda, Vec global, PetscScalar x_magnify, PetscScalar y_magnify, 54 | plot_type *types, void **params); */ 55 | 56 | /* IlluMulti load/save stuff, including compression #defines */ 57 | int IlluMultiLoad 58 | (char *basename, DA *theda, PetscScalar *wx,PetscScalar *wy,PetscScalar *wz, 59 | field_plot_type **fieldtypes, int *usermetacount, char ***usermetanames, 60 | char ***usermetadata); 61 | int IlluMultiRead (DA theda, Vec X, char *basename, int *usermetacount, 62 | char ***usermetanames, char ***usermetadata); 63 | int IlluMultiSave 64 | (DA theda, Vec X, char *basename, PetscScalar wx,PetscScalar wy,PetscScalar wz, 65 | field_plot_type *fieldtypes, int usermetacount, char **usermetanames, 66 | char **usermetadata, int compressed); 67 | #define COMPRESS_INT_MASK 0x30 68 | #define COMPRESS_INT_NONE 0x00 69 | #define COMPRESS_INT_LONG 0x10 70 | #define COMPRESS_INT_SHORT 0x20 71 | #define COMPRESS_INT_CHAR 0x30 72 | #define COMPRESS_GZIP_MASK 0x0F 73 | #define COMPRESS_GZIP_NONE 0x00 74 | #define COMPRESS_GZIP_FAST 0x01 75 | #define COMPRESS_GZIP_BEST 0x0A 76 | 77 | /* Geomview stuff */ 78 | int GeomviewBegin (MPI_Comm comm); 79 | int GeomviewEnd (MPI_Comm comm); 80 | int GeomviewDisplayTriangulation (MPI_Comm comm, PetscScalar *minmax, 81 | char *name, PetscTruth transparent); 82 | 83 | #endif /* ILLUMINATOR_H */