Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/tests/nofib/real/fem/Elemforce.hs

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


-- Glasow Haskell 0.403 : FINITE ELEMENT PROGRAM V2
-- **********************************************************************
-- *                                                                    *
-- * FILE NAME : elemforce.hs           DATE : 13-3-1991                *
-- *                                                                    *
-- * CONTENTS : Computes element internal forces(only 2D bar element).  *
-- *                                                                    *
-- **********************************************************************

module Elemforce ( forces, getefrc ) where

import Basics
import Vector
import DB_interface
import Displacement

forces :: (Array Int Int, Array Int Float) -> 
		Vec Float -> Vec Float
	-- The vector which stores the internal forces of all elements

getefrc :: (Array Int Int, Array Int Float) -> Int -> 
		Vec Float -> Float
	-- Return the internal force of given element

forces db uvw =
	makevec (nelem db) force_2d_bar_s 
	where
	force_2d_bar_s = force_2d_bar db uvw

getefrc db element frc =
	vecsub frc element

force_2d_bar  db  uvw element =
	(ea / length) * ( (ur-ul)*c + (vr-vl)*s )
	where
	(nodel,noder) = getenlr db  element
	(ea,ei)       = getmpro db  ( getemat db  element)
	(xl,yl)       = getnxy db  nodel
	(xr,yr)       = getnxy db  noder
	c             = det_x / length
	s             = det_y / length
        det_x         = xr - xl
	det_y         = yr - yl
	length        = sqrt (det_x * det_x + det_y * det_y)
	(ul,vl,thetal) = getnuvw db  nodel uvw
	(ur,vr,thetar) = getnuvw db  noder uvw



Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].