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         ]