1 -- Glasow Haskell 0.403 : FINITE ELEMENT PROGRAM V2 2 -- ********************************************************************** 3 -- * * 4 -- * FILE NAME : elemforce.hs DATE : 13-3-1991 * 5 -- * * 6 -- * CONTENTS : Computes element internal forces(only 2D bar element). * 7 -- * * 8 -- ********************************************************************** 9 10 module Printuvwforce( uvwresult, forceresult) where 11 12 import Basics 13 import Vector 14 import DB_interface 15 import Displacement 16 import Elemforce 17 18 19 uvwresult :: (Array Int Int, Array Int Float) -> 20 Vec Float -> [Char] 21 22 forceresult :: (Array Int Int, Array Int Float) -> 23 Vec Float -> [Char] 24 25 uvwresult s uvw = 26 "\n\nDISPLACEMENT OF THE STRUCTURE \n\n" ++ 27 " Node X Y BC U V" ++ 28 " Theta\n" ++ 29 (concat (map a_node_s [1..(nnode s)])) 30 where 31 a_node_s = a_node s uvw 32 33 a_node s uvw node = 34 (showrj 8 node) ++ (showrj 7 x) ++ (showrj 6 y) ++ 35 (showrj 7 bc) ++ 36 (showrj 15 u) ++ (showrj 15 v) ++ (showrj 15 theta) ++ "\n" 37 where 38 (x,y) = getnxy s node 39 bc = getnbc s node 40 (u,v,theta) = getnuvw s node uvw 41 42 forceresult s frc = 43 "\n\n\nINTERNAL FORCES OF ELEMENT " ++ "\n\n" ++ 44 " Element NodeL NodeR TENSION\n" ++ 45 concat (map a_element_s [1..(nelem s)]) 46 where 47 a_element_s = a_element s frc 48 49 a_element s frc element = 50 (showrj 8 element) ++ (showrj 10 nodel) ++ (showrj 8 noder) ++ 51 (showrj 15 f) ++ "\n" 52 where 53 (nodel,noder) = getenlr s element 54 f = getefrc s element frc