Function Reference for Metric Calculation Library

 

 

Higher order functions-

 

num_nodes is the number of nodes, coordinates is the x,y,z data of the nodes, metrics_request_flag is a bitfield for which metrics to calculate (defined below), metric_vals is a struct that store the results.

 

 

 

Lower order functions-

 

num_nodes is the number of nodes, coordinates is the x,y,z data of the nodes.  Returns the value.

 

 

 

 

 

 

 

 

 

 


Definitions of types

 

Definition of metric_request_flags for each type of element:

 


HEX_ASPECT, HEX_SKEW, HEX_STRETCH, HEX_TAPER, HEX_VOLUME, HEX_DIAGONAL, HEX_DIMENSION, HEX_ODDY, HEX_CONDITION, HEX_JACOBIAN, HEX_SCALED_JACOBIAN, HEX_SHEAR, HEX_SHAPE, HEX_RELATIVE_SIZE, HEX_SHAPE_AND_SIZE, HEX_ALL, HEX_TRADITIONAL, HEX_ROBINSON, HEX_ALGEBRAIC

 

TET_ASPECT, TET_ASPECT_GAMMA, TET_VOLUME, TET_CONDITION, TET_JACOBIAN, TET_SCALED_JACOBIAN, TET_SHEAR, TET_SHAPE, TET_RELATIVE_SIZE, TET_SHAPE_AND_SIZE, TET_ALL, TET_TRADITIONAL, TET_ROBINSON, TET_ALGEBRAIC

 

PYRAMID_VOLUME

 

WEDGE_VOLUME

 

KNIFE_VOLUME

 

QUAD_ASPECT, QUAD_SKEW, QUAD_TAPER, QUAD_WARPAGE, QUAD_AREA, QUAD_STRETCH, QUAD_SMALLEST_ANGLE, QUAD_LARGEST_ANGLE, QUAD_ODDY, QUAD_CONDITION, QUAD_JACOBIAN, QUAD_NORMALIZED_JACOBIAN, QUAD_SHEAR, QUAD_SHAPE, QUAD_RELATIVE_SIZE, QUAD_SHAPE_AND_SIZE, QUAD_ALL, QUAD_TRADITIONAL, QUAD_ROBINSON, QUAD_ALGEBRAIC

 

TRI_ASPECT, TRI_AREA, TRI_SMALLEST_ANGLE, TRI_LARGEST_ANGLE, TRI_CONDITION, TRI_NORMALIZED_JACOBIAN, TRI_SHEAR, TRI_SHAPE, TRI_RELATIVE_SIZE, TRI_SHAPE_AND_SIZE, TRI_ALL, TRI_TRADITIONAL, TRI_ROBINSON, TRI_ALGEBRAIC

 

EDGE_LENGTH


 

 

 

Definition of structs for holding all the metrics results

 


struct hex_metrics {

double aspect ;

double condition ;

double diagonal ;

double dimension ;

double distortion ;

double jacobian ;

double oddy ;

double relative_size ;

double scaled_jacobian ;

double shape ;

double shape_and_size ;

double shear ;

double shear_and_size ;

double skew ;

double stretch ;

double taper ;

double volume ; }

 

 

struct edge_metrics {

double length ; }

 

struct knife_metrics {

double volume ; }

 

 

struct quad_metrics {

double aspect ;

double area ;

double condition ;

double distortion ;

double jacobian ;

double largest_angle ;

double oddy ;

double relative_size ;

double scaled_jacobian ;

double skew ;

double smallest_angle ;

double shape ;

double shape_and_size ;

double shear ;

double shear_and_size ;

double stretch ;

double taper ;

double warpage ; }

 

struct pyramid_metrics {

double volume ; }

 

struct wedge_metrics {

double volume ; }

 

 

struct tet_metrics {

double aspect ;

double aspect_gamma ;

double condition ;

double distortion ;

double jacobian ;

double relative_size ;

double scaled_jacobian ;

double shape ;

double shape_and_size ;

double shear ;

double volume ; }

 

struct tri_metrics {

double area ;

double aspect ;

double condition ;

double distortion ;

double largest_angle ;

double relative_size ;

double scaled_jacobian ;

double smallest_angle ;

double shape ;

double shape_and_size ;

double shear ; }