|
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 |
|
public class FRequired_3d_nodes public static Value run(SdaiContext _context, Value node_list, Value element_shape, Value order) |