FUNCTION required_3d_nodes
(node_list : LIST [1:?] OF node_representation, element_shape : volume_3d_element_shape, order : element_order) : BOOLEAN;
LOCAL vertex_nodes : INTEGER; edge_nodes : INTEGER; edge_face_body_nodes : INTEGER; END_LOCAL;
IF (element_shape = hexahedron) THEN vertex_nodes := 8; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 12; edge_face_body_nodes := 19; END_IF; IF (order = cubic) THEN edge_nodes := 24; edge_face_body_nodes := 56; END_IF; END_IF;
IF (element_shape = wedge) THEN vertex_nodes := 6; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 9; edge_face_body_nodes := 12; END_IF; IF (order = cubic) THEN edge_nodes := 18; edge_face_body_nodes := 34; END_IF; END_IF;
IF (element_shape = tetrahedron) THEN vertex_nodes := 4; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 6; edge_face_body_nodes := 6; END_IF; IF (order = cubic) THEN edge_nodes := 12; edge_face_body_nodes := 16; END_IF; END_IF;
IF (element_shape = pyramid) THEN vertex_nodes := 5; IF (order = linear) THEN edge_nodes := 0; edge_face_body_nodes := 0; END_IF; IF (order = quadratic) THEN edge_nodes := 8; edge_face_body_nodes := 9; END_IF; IF (order = cubic) THEN edge_nodes := 16; edge_face_body_nodes := 25; END_IF; END_IF;
RETURN ((SIZEOF (node_list) = vertex_nodes + edge_nodes) OR (SIZEOF (node_list) = vertex_nodes + edge_face_body_nodes)); END_FUNCTION; -- required_3d_nodes
|