-- Glasgow Haskell 0.403 : FINITE ELEMENT PROGRAM V2
-- **********************************************************************
-- * *
-- * FILE NAME : printsource.hs DATE : 13-3-1991 *
-- * *
-- * CONTENTS : Print source data. Return source data as [char]. *
-- * *
-- **********************************************************************
module PrintSource(source_data) where
import Database
import DB_interface
import Basics
source_data :: (Array Int Int, Array Int Float) -> [Char]
source_data db
=
control_data db ++
node_data db ++
material_data db ++
elements db ++
plds db
control_data db
= "\n\n\nCONTROL DATA :\n\n" ++
" Total number of nodes = " ++ (showlj 3 (nnode db)) ++ "\n" ++
" Number of elements = " ++ (showlj 3 (nelem db)) ++ "\n" ++
" Number of point loads = " ++ (showlj 3 (nplds db)) ++ "\n" ++
" Total number of materials = "++ (showlj 3 (nmats db)) ++ "\n\n\n"
node_data db
= "NODE INFORMATION :\n\n" ++
(concat ( map a_node_s [1..(nnode db)] )) ++ "\n\n"
where
a_node_s = a_node db
a_node db node
= " Node.no = " ++ (showlj 3 node) ++ " x = "
++ (showlj 8 x) ++ " y = " ++ (showlj 8 y)
++ " bc = " ++ ( showlj 3 bc) ++ "\n"
where
(x,y) = getnxy db node
bc = getnbc db node
material_data db
= "MATERIAL INFORMATION :\n\n"
++ (concat (map a_material_s [1..(nmats db)]))
where
a_material_s = a_material db
a_material db material =
" Material No.=" ++ (showlj 3 material) ++ " EA = "
++ (showlj 8 ea) ++ " EI = " ++ (showlj 8 ei) ++ "\n"
where
(ea,ei) = getmpro db material
elements db
= "\nELEMENT DATA:\n\n" ++
(concat (map (a_element_s) [1..(nelem db)])) ++ "\n\n"
where
a_element_s = a_element db
a_element db element =
" Element No.=" ++ (showlj 3 element) ++ " Node.L ="
++ (showlj 3 nodel) ++ " Node.R =" ++ (showlj 3 noder)
++ " Material No. =" ++ (showlj 3 material) ++ "\n"
where
(nodel,noder) = getenlr db element
material = getemat db element
plds db
= "\nPOINT LOADS DATA:\n\n" ++
(concat (map (a_load_s) [1..(nplds db)])) ++ "\n\n"
where
a_load_s = a_load db
a_load db n =
" To_point No." ++ (showlj 3 to_point) ++ " Px = "
++ (showlj 9 px) ++ " Py = " ++ (showlj 9 py)
++ " M = " ++ (showlj 9 m) ++ "\n"
where
(to_point,px,py,m) = getpld db n
|