Contents
TWO STORY STEEL FRAME, PUSH-OVER ANALYSIS WITH CONSTANT GRAVITY LOADS AND INCREMENTAL LATERAL LOADING: APPLICATION OF LOAD
PATTERNS WITH DIFFERENT FORCE HISTORIES
Initialization: clear memory and define global variables
CleanStart
Create output file
IOW = Create_File (mfilename);
Create Model
Model_TwoStoryFrm
Print_Model (Model,'Push-over analysis of two story steel frame');
Element properties
SimpleNLElemData
Structure ('data',Model,ElemData);
Loading
Distributed element loads with load pattern number 1
for el=5:6
ElemData{el}.w = [0;-0.50];
ElemData{el}.LdIdy = 1;
end
for el=7:8
ElemData{el}.w = [0;-0.35];
ElemData{el}.LdIdy = 1;
end
Horizontal forces with laod pattern number 2
Pe(2,1,2) = 20;
Pe(3,1,2) = 40;
Pe(5,1,2) = 20;
Pe(6,1,2) = 40;
Loading = Create_Loading (Model,Pe);
Applied force time histories
Deltat = 0.10;
Tmax = 2.00;
Loading.FrcHst(1).Time = [0;Deltat;Tmax];
Loading.FrcHst(1).Value = [0;1;1];
Loading.FrcHst(2).Time = [0;Deltat;Tmax];
Loading.FrcHst(2).Value = [0;0;2.8];
Incremental analysis by pseudo-time incrementation
State = Initialize_State(Model,ElemData);
SolStrat = Initialize_SolStrat;
SolStrat.IncrStrat.Deltat = 0.10;
[State SolStrat] = Initialize(Model,ElemData,Loading,State,SolStrat);
State = Structure ('forc',Model,ElemData,State);
pc = 1;
Post(pc) = Structure ('post',Model,ElemData,State);
tic;
Load incrementation until maximum specified time Tmax (pseudo-time stepping)
while (State.Time < Tmax-10^3*eps)
[State SolStrat] = Increment(Model,ElemData,Loading,State,SolStrat);
[State SolStrat] = Iterate (Model,ElemData,Loading,State,SolStrat);
if (SolStrat.ConvFlag)
State = Update_State(Model, ElemData, State);
else
break
end
pc = pc+1;
Post(pc) = Structure ('post',Model,ElemData,State);
end
toc;
Number of iterations = 0
Iteration: 1 Relative work increment = 2.224714e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.186455e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.232049e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.330406e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.335596e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.369158e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.600986e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 4.074318e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.665672e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.378075e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 2.775602e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 4.058246e-029
Number of iterations = 1
Iteration: 1 Relative work increment = 3.964693e-002
Iteration: 2 Relative work increment = 1.163655e-029
Number of iterations = 2
Iteration: 1 Relative work increment = 3.214826e-028
Number of iterations = 1
Iteration: 1 Relative work increment = 1.574478e-002
Iteration: 2 Relative work increment = 4.519833e-030
Number of iterations = 2
Iteration: 1 Relative work increment = 1.483136e-028
Number of iterations = 1
Iteration: 1 Relative work increment = 1.429663e-028
Number of iterations = 1
Iteration: 1 Relative work increment = 1.510594e-028
Number of iterations = 1
Iteration: 1 Relative work increment = 6.109885e-001
Iteration: 2 Relative work increment = 4.286578e-001
Iteration: 3 Relative work increment = 2.106121e-027
Number of iterations = 3
Elapsed time is 1.250000 seconds.
Post-processing
np = length(Post);
x = zeros(np,1);
y = zeros(np,1);
pltDOF = Model.DOF(1,6);
supDOF = [Model.DOF(1,1) Model.DOF(1,4)];
for k=1:np
x(k) = Post(k).U(pltDOF);
y(k) = -sum(Post(k).Pr(supDOF))/120;
end
fig = Create_Window(0.70,0.70);
title ('Load-displacement');
ph1 = plot(x,y,'s-');
set (ph1,'MarkerSize',4,'MarkerFaceColor','b');
grid('on');
xlabel ('Horizontal roof displacement');
ylabel ('Load factor {\lambda}');
Create_Window(0.70,0.70);
title('Moment distribution and plastic hinge locations at end of push-over');
Plot_Model(Model);
Plot_ForcDistr (Model,ElemData,Post(end),'Mz');
Plot_PlasticHingeswPost(Model,Post(end));
Create_Window(0.70,0.70);
Plot_Model(Model);
Structure('defo',Model,ElemData,State);
Plot_PlasticHingeswPost(Model,Post(end),State.U);
fclose(IOW);