forked from dplab/MechMet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAssembleSparse.m
82 lines (64 loc) · 1.85 KB
/
AssembleSparse.m
1
function [Ksr,Ksc,Ksv,Fsr,Fsv,fc,kc] = AssembleSparse(iele,nnpe,np,ke,fe,Ksr,Ksc,Ksv,Fsr,Fsv,fc,kc)% assembles elemental force and stiffness matrices into global counterparts% assuming sparse matrices for i=1:nnpe i3 = 3*np(iele,i); i2 = i3-1; i1 = i3-2; ii3 = 3*i; ii2 = ii3-1; ii1 = ii3-2; Fsr(fc)=i1; Fsv(fc)=fe(ii1); fc=fc+1; Fsr(fc)=i2; Fsv(fc)=fe(ii2); fc=fc+1; Fsr(fc)=i3; Fsv(fc)=fe(ii3); fc=fc+1; for j=1:nnpe j3=3*np(iele,j); j2=j3-1; j1=j3-2; jj3= 3*j; jj2= jj3-1; jj1= jj3-2; Ksr(kc)=i1; Ksc(kc)=j1; Ksv(kc)=ke(ii1,jj1); kc=kc+1; Ksr(kc)=i1; Ksc(kc)=j2; Ksv(kc)=ke(ii1,jj2); kc=kc+1; Ksr(kc)=i1; Ksc(kc)=j3; Ksv(kc)=ke(ii1,jj3); kc=kc+1; Ksr(kc)=i2; Ksc(kc)=j1; Ksv(kc)=ke(ii2,jj1); kc=kc+1; Ksr(kc)=i2; Ksc(kc)=j2; Ksv(kc)=ke(ii2,jj2); kc=kc+1; Ksr(kc)=i2; Ksc(kc)=j3; Ksv(kc)=ke(ii2,jj3); kc=kc+1; Ksr(kc)=i3; Ksc(kc)=j1; Ksv(kc)=ke(ii3,jj1); kc=kc+1; Ksr(kc)=i3; Ksc(kc)=j2; Ksv(kc)=ke(ii3,jj2); kc=kc+1; Ksr(kc)=i3; Ksc(kc)=j3; Ksv(kc)=ke(ii3,jj3); kc=kc+1; end end