This volume includes all PHIGURE functions used for graphic interpretation of scientific data contained in a 2D or 3D surface mesh or a 3D volume mesh. Graphic representations usually express numerical values by means of colours. Various levels of nuance are possible in graphic representations. For example, for a surface mesh, colour can be based on the average of the nodes values, or, for more precise representation, coloured isolines can be made based on nodes values. For 3D meshes, it is possible to have a set of 3D isosurfaces or coloured isolines on a given surface of the 3D mesh. PHIGURE also makes it possible to represent any field of 2D or 3D vectors.
These functions generate structures in a plane or in 3D space, and all may be visualized in 2D or 3D. Nonetheless, 3D visualization of surface structures in 3D space (generated with the fill area set3 primitives) require the use of a PHIGS driver which supports a method for handling hidden lines and surfaces to obtain a correct result. In this case, just call the function PHIGS pset_hlsr_mode (set hidden line hidden surface removal") before drawing these structures.
PHIGURE makes it possible to represent scientific data using the following data structure type :
1) 2D mesh:
Rectangular mesh:
A rectangular mesh represents a "grid" composed of a certain number of horizontal and vertical lines. It is defined by a list of abscissas of vertical lines and by a list of ordinates of horizontal lines. A numeric value is given at each node of the mesh (the intersection of the horizontal and vertical lines), a set of these values being given by a matrix dimensioned by the number of horizontal lines × the number of vertical lines.
Quadrangular mesh:
A quadrangular mesh is defined by a matrix of num_x × num_y points forming (num_x -1) × (num_y -1) quadrangles. Each point with index (i , j) in the mesh (except for points on the mesh border) is related to 4 points with index (i+1 , j), (i , j+1), (i-1 , j), (i , j-1). The geometry of the mesh is defined by a matrix of num_x × num_y abscissas and a matrix of num_x × num_y ordinates. The numeric values at each mesh node are given by a matrix of num_x × num_y reals.
Polar mesh:
This type of mesh is defined by a certain number of concentric circles (num_r), each circle made discrete by a certain number of angles (num_t). The geometry of the mesh is defined by a list of num_r circle radii and by a list of num_t angles in radians. The numeric values at each mesh node (intersection of angular sectors and circles) are given by a matrix of num_r × num_t reals and by the value at the center.
Sector mesh:
This type of mesh is similar to a polar mesh restricted inside a sector. It is limited between 2 angles and 2 radius but it does'nt have a node at the center. It is defined by a certain number of concentric arcs (num_r), each arc made discrete by a certain number of angles (num_t). The geometry of the mesh is defined by a list of num_r arc radii and by a list of num_t angles in radians. The numeric values at each mesh node (intersection of angular sectors and arcs) are given by a matrix of num_r × num_t reals.
Triangular mesh:
A triangular mesh is defined by a set of triangles: each triangle is defined by three edge numbers; each edge is defined by two node numbers and two related triangle numbers; and each node is defined by its coordinates and its value.
Un-structured triangular mesh:
This type of mesh is also defined by a set of triangles:each triangle is defined by three node numbers. Each node is defined by its coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge data structure, nor explicit element neighbourhood data structure.
Un-structured mesh of quadrangles:
This type of mesh is defined by a set of quadrangles: each quadrangle is defined by four node numbers. Each node is defined by its coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge data structure, nor explicit element neighbourhood data structure.
Un-structured heterogeneous mesh of polygons:
This type of mesh is defined by a set of polygons: each polygon is defined by a list of node number. Each node is defined by its coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge data structure, nor explicit element neighbourhood data structure. It is said heterogeneous because its polygons may have variable numbers of nodes.
2) 3D volumetric mesh:
Parallelepiped mesh:
This type of mesh represents a "3D grid" composed of a finite set of rectangular,2D,parallel meshes. Each rectangular 2D mesh is defined in a plane parallel to the XY plane at altitude Z. The 2D mesh is defined by num_x lines orthogonal to the X axis and num_y lines orthogonal to the Y axis. The parallelepipedal mesh is define by num_z parallel,rectangular,2D meshes, thus giving an additional set of num_z lines orthogonal to the Z axis. A numeric value is given at each mesh mode by a matrix of reals dimensioned num_x × num_y × num_z
Hexahedral mesh:
This mesh defines a 3D volume of num_x × num_y × num_z points forming (num_x-1 ) × (num_y-1 ) × (num_z-1 ) hexahedrons. The points are defined by three matrices of coordinates x[num_x][num_y][num_z], y[num_x][num_y][num_z], z[num_x][num_y][num_z]. Each point with index (i , j, k) of the mesh (except for points on the mesh border) is related to the six point with indices (i+1 , j , k) , (i , j+1 , k) , (i-1 , j , k) , (i , j-1 , k) , (i , j , k+1) , (i , j , k-1). A numeric value is given at each mesh node by a matrix of reals dimensioned num_x × num_y × num_z
Cylindrical mesh:
A cylindrical mesh is defined by a set of num_r coaxial cylinders. Each cylinder is made discrete by num_t angles and by num_z circles over the height of the cylinder. The mesh is given by a list of num_r cylinder radii, by a list of num_t angles (in radians) and by a list of num_z heights. A numeric value is given at each mesh node by a matrix of reals dimensioned num_r × num_t × num_z
Spherical mesh:
This type of mesh is defined by a set of num_r concentric spheres, each sphere is made discrete by num_t parallel circles and by num_p half-circle meridians. A numeric value is given at each mesh node by a matrix of reals dimensioned num_r × num_t × num_p
Un-structured mesh of tetrahedrons:
This type of mesh is defined by a set of tetrahedrons: each tetrahedron is defined by four node numbers. Each node is defined by its 3 coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge and facet data structure, nor explicit element neighbourhood data structure.
Un-structured mesh of hexahedrons:
This type of mesh is defined by a set of hexahedrons: each hexahedron is defined by height node numbers. Each node is defined by its 3 coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge and facet data structure, nor explicit element neighbourhood data structure.
Un-structured mesh of tetrahedrons, pyramides, pentahedrons and hexahedrons:
This type of mesh is defined by a set of tetrahedrons, pyramides, pentahedrons and hexahedrons: each tetrahedron is defined by four node numbers. Each pyramide is defined by four node numbers. Each pentahedron is defined by six node numbers. Each hexahedron is defined by height node numbers. Each node is defined by its 3 coordinates and its value. This type of mesh is called "un-structured" because it has neither explicit edge and facet data structure, nor explicit element neighbourhood data structure.
3) Point fields:
Point fields are a set of points in the XY plane or in 3D space (independent of each other) having a value to be represented. A point cluster is represented by a point list.
4) Mesh elements:
Some isolines and isosurfaces functions are available for triangles and tetrahedons