FEM Programming for inclined frame elements
FEM Programming for inclined frame elements
(OP)
hi all community members,
I'm studying a book(Programming the Finite Element Method by Ian M. Smith and D. V. Griffiths) about fem for frame elements. But examples in that book especially for space frames are comprised only for orthogonal elements in 3D space. There are no implementation for inclined frame elements. I'm not looking the direct asnwer here I know that this topic is quite specific so even any entry-point will be appreciated.
Regards,
I'm studying a book(Programming the Finite Element Method by Ian M. Smith and D. V. Griffiths) about fem for frame elements. But examples in that book especially for space frames are comprised only for orthogonal elements in 3D space. There are no implementation for inclined frame elements. I'm not looking the direct asnwer here I know that this topic is quite specific so even any entry-point will be appreciated.
Regards,





RE: FEM Programming for inclined frame elements
what usual thing do you think will happen in a non-orthogonal frame ?
i'd've thought the key points about a frame relate to moments, and moment continuity ... moment capability at the joints and the foundations, which implies moment capability within the frame elements.
RE: FEM Programming for inclined frame elements
Basically the frame is a frame, but how am I supposed to deal with the local axes orientations related to global axes? One way or the other I should provide the input for how the local to global orientation is.
The book's approach is the gamma variable (in degrees) which deals with orientation,
for vertical elements gamma is: rotation of its own longitidual local axis(vertical), around global vertical axis
for non vertical elements gamma is: rotation of its own longitidual axis (horizontal) to global horizontal plane.
How to figure out the gamma(keeping the right hand rule) ,say for element which makes 30deg with global X axis and 60deg with global Y axis?
Regards,
RE: FEM Programming for inclined frame elements
RE: FEM Programming for inclined frame elements
RE: FEM Programming for inclined frame elements
This is achieved using a transformation matrix. I find it extremely hard to believe that any book on frame elements will omit this.
try googling - beam transformation matrix
RE: FEM Programming for inclined frame elements
RE: FEM Programming for inclined frame elements
As I mentioned in my previous posts gamma is angle in degrees for orientation from local to global coordinates, the ,issue here is gamma is related just only one angle per element, that is, elements are assumed just only vertical or horizontal not for inclined.
>what FE code are you using ? i think you're using a >structural code (no slight intended) ... once you tell us >the code, someone knowledgable might
Yes it's structural code intended for structural analyse.
Posting codes here I think doesn't make sense at all, bcoz there are so many uninnteligible functions/procedures etc..
The problem in question is in 1st attachment, 2nd is element orientation.
RE: FEM Programming for inclined frame elements
RE: FEM Programming for inclined frame elements
Sorry probably I couldn't expressed my problem well, but I think we are on right spot, there should be a transformation matrix to convert loc to global coordinates.
Actually the program uses the trans. matrixes but just only with one angle and assumes that elements are globaly aligned , shouldn't be at least 3 angles?
RE: FEM Programming for inclined frame elements
i didn't want you to post the code, only it's name (STAAD, RISA, ...). it sounds like it's an in-house code with very limited capabilities ... ie assumes elements in global axes. if it is an in-house code, then no-one outside of the house will be able to help you; if it's a commercial code then someone else is using it and will be able to help.
if it assumes the frame elements are orthogonal, then it won't solve a non-orthogonal frame (will it ?) ... mostly 'cause you can't describe the non-orthogonal frame to it ... it'll just sit there muttering to itself "crazy, just crazy talk ..."
RE: FEM Programming for inclined frame elements
:( Where the hell has gone these attachments this time. Something is ill-conditioned with this server. ok I upload them to different location.
h
h
Code is below:
Program 4.4 Analysis of elastic rigid-jointed frames using 2-node beam/rod elements in 2- or 3-dimensions.
USE main; IMPLICIT NONE
INTEGER,PARAMETER::iwp=SELECTED_REAL_KIND(15)
INTEGER::fixed_freedoms,i,iel,k,loaded_nodes,ndim,ndof,nels,neq,nod=2,
nodof,nn,nprops,np_types,nr REAL(iwp)::penalty=l.0e2 0_iwp,zero=0.0_iwp
i dynami c arrays
INTEGER,ALLOCATABLE::etype{:),g(:),g_g(:,:),g_num(:,:),kdiag(:),nf(:,:)
no(:),node(:),num{:),sense(:) REAL(iwp),ALLOCATABLE::action(:),coord(:,:),eld{:),gamma(:),g_coord(:,:
km(:,:),kv(:),loads(:) ,prop(:,:),value(:)
i input and initialisation
OPEN(10,FILE=»fe95.dat'); OPEN(11,FILE='fe95.res')
READ(10,*)nels,nn,ndim,nprops,np_types
IF(ndim==2)nodof=3; IF(ndim==3)nodof=6; ndof=nod*nodof
ALLOCATE(nf(nodof,nn),km(ndof,ndof),coord(nod,ndim),g_coord(ndim,nn),
eld(ndof),action(ndof),g_num(nod,nels),num(nod),g(ndof),gamma(nels),
g_g(ndof,nels),prop(nprops,np_types),etype(nels)) READ(10,*)prop; etype=l; IF(np_types>l)READ(10,*)etype; IF(ndim==3)READ(10,*)gamma READ (10 , *) g_coord; READ (10, *) g__num
nf=l; READ(10,*)nr,(k,nf(:,k),i=l,nr); CALL formnf(nf); neq=MAXVAL(nf) ALLOCATE(kdiag(neq),loads(0:neq)); kdiag=0 i loop the elements to find global array sizes
STATIC EQUILIBRIUM OF STRUCTURES
129
elements_l: DO iel=l,nels
num=g__num (: , iel) ; CALL num_to_g (num, nf, g) ; g_g (: , iel) =g
CALL fkdiag(kdiag,g) END DO elements__l
D0 i=2,neq; kdiag(i)=kdiag(i)+kdiag(i-1); END DO; ALLOCATE(kv(kdiag(neq))) WRITE(11, ' (2(A,15)) ') &
« There are",neq," equations and the skyline storage is",kdiag(neq)
i global stiffness matrix assembly
jcv^zero
elements_2: DO iel=l,nels
num=g_num (: , iel) ; coord=TRANSPOSE (g__coord (: , num) )
CALL rigid_jointed(km,prop,gamma,etype,iel,coord); g=g_g(:,iel)
CALL fsparv(kv,km,g,kdiag) END DO elements_2
i read loads and/or displacements
loads=zero; READ(10,*)loaded_nodes,(k,loads(nf(:,k)),i=l,loaded_nodes)
READ(10,*)fixed_freedoms
IF(fixed_freedoms/=0)THEN
ALLOCATE (node (fixed__f reedoms) , no (f ixed_f reedoms) , &
sense (fixed_f reedoms) , value (fixed_f reedoms) )
READ(10,*)(node(i),sense(i),value(i),i=l,fixed_freedoms)
DO i=l,fixed_freedoms; no(i)=nf(sense(i),node(i)); END DO
kv(kdiag(no))=kv(kdiag(no))+penalty; loads(no)=kv(kdiag(no))*value END IF
i equation solution
CALL sparin(kv,kdiag); CALL spabac(kv,loads,kdiag); loads(0)=zero WRITE(11, ' (/A) ') " Node Displacements and Rotation(s)" DO k=l,nn; WRITE(11,'(15,6E12.4)■)k,loads(nf(:,k)); END DO
i retrieve element end actions
WRITE(11,'(/A)')" Element Actions" elements_3: DO iel=l,nels
num=g_num(:,iel); coord=TRANSPOSE(g_coord(:,num))
CALL rigid_jointed(km,prop,gamma,etype,iel,coord); g=g_g(:,iel)
eld=loads(g); action=MATMUL(km,eld)
IF(ndim<3)THEN; WRITE(11,•(15,6E12.4)')iel,action; ELSE WRITE(11,« (I5,6E12.4)')iel, action(l: 6) WRITE(11,'(A,6E12.4)')» ",action(7:12)
END IF END DO elements_3 STOP END PROGRAM p44
RE: FEM Programming for inclined frame elements
The example given for beam 3D beam elements has orthogonal beams, but the program should work with any 3D frame. Figures 4.22 to 4.24 in my copy (Edition 3) seem to cover what you are asking about.
Doug Jenkins
Interactive Design Services
http://newtonexcelbach.wordpress.com/
RE: FEM Programming for inclined frame elements
kglobal=T'*kelementary*T
where T is your transformation matrix