- determine the index of a pyramid in a finite element pyramid dictionary
long cxPyrDictLookup(cxPyramid *pyr, cxPyramidDictionary *dict, long nVert, long *vertices )
integer function cxPyrDictLookup( pyr, dict, nVert, vertices )
integer pyr, dict, nVert, vertices(nVert)
The target pyramid to be looked up in the dictionary.
The dictionary of reference finite element pyramids.
The number of vertices in pyr.
On output, the 0-based permutation vector for the target vertices necessary
to comply with the located reference pyramid structure.
FUNCTION RETURN VALUE
Returns an integer index into the pyramid dictionary, or -1 if the
input pyr was not found in the dictionary.
cxPyrDictLookup searches the input pyramid dictionary dict
to find a reference pyramid that is identical to pyr up
to vertex relabelling. If such a reference pyramid is found, its index
in the dictionary table is returned and the vertex relabelling is
stored in vertices. If no such reference pyramid is found, an
index of -1 is returned.
cxPyrDictLookup is the computational kernel of
cxPyrCompress, which attempts to find each pyramid element in
the working dictionary, then augments the dictionary if necessary to
accommodate newly found elements.
cxPyrDictLookup computes a graph isomorphism test to determine
if there is a vertex relabeling of the input pyr that matches
with the reference pyramid taken from the dictionary. This test may
require time that grows exponentially in the number of vertices of the
input pyramid. Some preprocessing is performed to weed out dictionary
elements that have incorrect numbers of vertices before proceeding to
the computational intensive graph isomorphism test. The small amount
of internal storage allocated for preprocessing may be freed by
calling cxPyrDictLookup with a NULL pyr or dict
Last modified: Mon Nov 6 16:33:44 GMT 2000
[ Documentation Home ]
© The Numerical Algorithms Group Ltd, Oxford UK. 1999