next up previous contents index
Next: Order Cut Edges of Up: Additional Array Operations: arrayfnsmodule Previous: Effective Length of an   Contents   Index

Finding Edges Cut by Isosurfaces: find_mask

Calling Sequence
...

  
find_mask (fs, node_edges)

Description
This function is used to calculate a mask of integers whose corresponding entry is 1 precisely if an edge of a cell is cut by an isosurface or plane, i. e., if the function fs is one on one of the two vertices of an edge and zero on the other (fs = 1 represents where some function on the mesh was found to be negative by the calling routine). fs is ntotal by nv, where nv is the number of vertices of a cell (4 for a tetrahedron, 5 for a pyramid, 6 for a prism, 8 for a hexahedron). node_edges is a nv by ne array, where ne is the number of edges on a cell (6 for a tet, 8 for a pyramid, 9 for a prism, 12 for a hexahedron). The entries in each row are 1 precisely if the corresponding edge is incident on the vertex. The exclusive or of the rows which correspond to nonzero entries in fs contains 1 in entries corresponding to edges where fs has opposite values on the vertices. (The vertices and edges of a cell have a standard ordering which is discussed in ``Standard ordering for the four types of mesh cells'' on page [*].)

The mask returned by this function will be a one dimensional array ntotal * ne long. An entry [i * ne + j] in this mask will be 1 precisely if edge j of cell i is cut by the isosurface or plane.


next up previous contents index
Next: Order Cut Edges of Up: Additional Array Operations: arrayfnsmodule Previous: Effective Length of an   Contents   Index
Michiel Jan Laurens de Hoon 2003-04-19