|
FUNCTION number_of_terms (node_dof_list : LIST [1:?] OF LIST [1:?] OF degree_of_freedom, matrix_type : matrix_symmetry) : INTEGER; LOCAL num_terms : INTEGER ; number_of_freedoms : INTEGER ; END_LOCAL ; number_of_freedoms := 0 ; REPEAT i := 1 TO SIZEOF ( node_dof_list ) ; number_of_freedoms := number_of_freedoms + SIZEOF ( node_dof_list [ i ] ) ; END_REPEAT ; IF ( matrix_type = symmetric ) THEN num_terms := ( number_of_freedoms * ( number_of_freedoms + 1 ) ) DIV 2 ; END_IF ; IF ( matrix_type = diagonal ) THEN num_terms := number_of_freedoms ; END_IF ; RETURN ( num_terms ) ; END_FUNCTION; -- number_of_terms |
|
public class FNumber_of_terms public static Value run(SdaiContext _context, Value node_dof_list, Value matrix_type) |