1 {- 2 L_matriices for RHS assembling 3 4 XZ, 24/10/91 5 -} 6 7 {- 8 Modified to adopt S_array 9 10 XZ, 19/2/92 11 -} 12 13 module L_matrix ( l_mat, l_mat' ) where 14 15 import Defs 16 import S_Array -- not needed w/ proper module handling 17 import Norm -- ditto 18 19 ----------------------------------------------------------- 20 -- Element matrix L. -- 21 -- Used in assembling rh1 and rh3. -- 22 -- Parameters : -- 23 -- gdi : ith entry of element factor component -- 24 ----------------------------------------------------------- 25 26 l_mat :: (My_Array Int ((Frac_type,Frac_type,Frac_type) -> [Frac_type])) 27 l_mat = -- element_factor 28 s_listArray (1,v_nodel) [ 29 (\(gd1,gd2,gd3) -> [ gd1, 0.0, 0.0 ]), 30 (\(gd1,gd2,gd3) -> [ 0.0, gd2, 0.0 ]), 31 (\(gd1,gd2,gd3) -> [ 0.0, 0.0, gd3 ]), 32 (\(gd1,gd2,gd3) -> [gd2+gd3, gd2+gd3+gd3, gd3+gd2+gd2]), 33 (\(gd1,gd2,gd3) -> [gd1+gd3+gd3, gd1+gd3, gd3+gd1+gd1]), 34 (\(gd1,gd2,gd3) -> [gd1+gd2+gd2, gd1+gd1+gd2, gd1+gd2]) 35 ] 36 37 ----------------------------------------------------------- 38 -- Transposition of the element matrix L. -- 39 -- Used in assembling rh2. -- 40 -- Parameters : -- 41 -- gdi : ith entry of element factor component -- 42 ----------------------------------------------------------- 43 44 l_mat' :: (My_Array Int ((Frac_type,Frac_type,Frac_type) -> [Frac_type])) 45 l_mat' = -- element_factor 46 s_listArray (1,p_nodel) [ 47 (\(gd1,gd2,gd3) -> 48 [ gd1, 0.0, 0.0, gd2+gd3, gd1+gd3+gd3, gd1+gd2+gd2 ]), 49 (\(gd1,gd2,gd3) -> 50 [ 0.0, gd2, 0.0, gd2+gd3+gd3, gd1+gd3, gd1+gd1+gd2 ]), 51 (\(gd1,gd2,gd3) -> 52 [ 0.0, 0.0, gd3, gd3+gd2+gd2, gd3+gd1+gd1, gd1+gd2 ]) 53 ]