Professional Documents
Culture Documents
Material Nonlinearity: Chapter Eight
Material Nonlinearity: Chapter Eight
Material Nonlinearity
MatlabFiles\Chap08\IsotropicHardening.m
2
MatlabFiles\Chap08\KinematicHardening.m
3
MatlabFiles\Chap08\InelasticBarTangentEqns.m
4
MatlabFiles\Chap08\InelasticBarState.m
5
Bar 2: A = 1.25 in2 , E = 5000 ksi, H = 700 ksi, sY = 7.5 ksi, Kinematic Hardening
6
Bar 1
u1 u2
Rigid P P
100
Bar 2
100 in
MatlabFiles\Chap08\TwoBarEx81.m
eps(i)=enew(i);
status(i)=nstatus(i);
ep(i)=newep(i);
end
while conv > tol & iter < 10
fprintf(1,'Iteration: %3d \n', iter)
KT = zeros(dof); R = zeros(dof,1); R(2) = lambda*P;
for i=1:nel
lm = lmm(i,:);
[k, r] = InelasticBarTangentEqns(e(i), et(i), nstatus(i), ...
L(i), lambda*q(i), A(i));
KT(lm, lm) = KT(lm, lm) + k;
R(lm) = R(lm) + r;
end
KT
R
Ri
% Nodal solution and reactions
[ddd, reactions] = NodalSoln(KT, -Ri+R, debc, ebcVals);
dd = dd + ddd;
Ri=zeros(dof,1);
fprintf(1,'Solution of incremental equations: \n')
disp(ddd')
fprintf(1,'Nodal solution increment in this load step: \n')
disp(dd')
fprintf(1,'Total nodal values: \n')
disp((d+dd)')
for i=1:nel
lm = lmm(i,:);
[ri, snew(i), enew(i), nstatus(i), newep(i)]= ...
InelasticBarState(dd(lm), L(i), A(i), e(i), et(i),...
H(i), sY(i), type(i), sigma(i), eps(i), status(i), ep(i));
Ri(lm) = Ri(lm) + ri;
end
fprintf(1,'Element status: \n')
disp(nstatus)
Rf = R(df); Ff = -Ri(df) + Rf;
conv = (Ff'*Ff)/(1 + Rf'*Rf);
fprintf(1,'Convergence parameter: %4.2g \n', conv)
iter = iter + 1;
8
iter = iter + 1;
end
end
>> TwoBarEx81
****************************
Current load parameter: 1
****************************
Iteration: 1
KT =
137.5000 -137.5000
-137.5000 137.5000
R=
0
15
Ri =
0
0
Element status:
1 0
KT =
69.3182 -69.3182
-69.3182 69.3182
9
R=
0
15
Ri =
-10.9711
10.9711
Element status:
1 1
KT =
14.4936 -14.4936
-14.4936 14.4936
R=
0
0
Ri =
-14.0563
14.0563
10
Element status:
0 0
KT =
137.5000 -137.5000
-137.5000 137.5000
R=
0
0
Ri =
119.2949
-119.2949
Element status:
0 0
MatlabFiles\Chap08\RambergOsgood.m
if de < 0
nstatus = 1;
else
nstatus = 0;
end
end
enew = eps + de;
fcn = @(s)-(enew - newe0) + (s - news0)/e + (3/7)*((sY + ...
abs(news0))/e)*((s - news0)/(sY + abs(news0)))^n;
snew = fzero(fcn,sigma);
end % RambergOsgood
MatlabFiles\Chap08\RambergOsgoodBarTangentEqns.m
MatlabFiles\Chap08\RambergOsgoodBarState.m
13
Aluminum Steel
A = 1 in2 A = 2 in2
1 P 2 3
15 in 10 in
MatlabFiles\Chap08\TwoBarEx82.m
R
Ri
% Nodal solution and reactions
[ddd, reactions] = NodalSoln(KT, -Ri+R, debc, ebcVals);
dd = dd + ddd;
Ri=zeros(dof,1);
fprintf(1,'Solution of incremental equations: \n')
disp(ddd')
fprintf(1,'Nodal solution increment in this load step: \n')
disp(dd')
fprintf(1,'Total nodal values: \n')
disp((d+dd)')
for i=1:nel
lm = lmm(i,:);
[ri, snew(i), enew(i), nstatus(i), news0(i), newe0(i)]= ...
RambergOsgoodBarState(dd(lm), L(i), A(i), e(i), sY(i), ...
n(i), sigma(i), eps(i), status(i), s0(i), e0(i));
Ri(lm) = Ri(lm) + ri;
end
fprintf(1,'Element status: \n')
disp(nstatus)
Rf = R(df); Ff = -Ri(df) + Rf;
conv = (Ff'*Ff)/(1 + Rf'*Rf);
fprintf(1,'Convergence parameter: %4.2g \n', conv)
iter = iter + 1;
end
end
>> TwoBarEx82
****************************
Current load parameter: 1
****************************
Iteration: 1
KT =
1.0e+003 *
0.6667 -0.6667 0
-0.6667 6.4667 -5.8000
0 -5.8000 5.8000
16
R=
0
100
0
Ri =
0
0
0
Element status:
0 1
KT =
1.0e+003 *
0.2901 -0.2901 0
-0.2901 5.0759 -4.7857
0 -4.7857 4.7857
R=
0
0
0
17
Ri =
-8.6967
96.6921
-87.9953
Element status:
1 0
KT =
1.0e+003 *
0.5374 -0.5374 0
-0.5374 6.2893 -5.7519
0 -5.7519 5.7519
R=
0
0
0
Ri =
3.5810
-25.9882
22.4073
0 0.0041 0
0 0.5467 0
Element status:
1 0
KT =
1.0e+003 *
0.6264 -0.6264 0
-0.6264 6.4221 -5.7958
0 -5.7958 5.7958
R=
0
0
0
Ri =
1.1576
0.3235
-1.4810
0 -0.5036 0
0 0.4963 0
Element status:
1 0
MatlabFiles\Chap08\InelasticTrussTangentEqns.m
20
MatlabFiles\Chap08\InelasticTrussState.m
21
For elements 1 and 2 assume kinematic hardening material with area of cross section A = 0.0004 m 2 . For
the rest use an isotropic hardening model with area of cross section A = 0.0002 m2 . The load P = 40 kN and
acts at an angle a = 60 ° at node 2.
3 3
2 P 4
4
1 3 P
a
2
0 2
1
HmL
-1 1
0 1 2 3 4 5
MatlabFiles\Chap08\FourBarTrussEx83.m
R
Ri
% Nodal solution and reactions
[ddd, reactions] = NodalSoln(KT, -Ri+R, debc, ebcVals);
dd = dd + ddd;
Ri=zeros(dof,1);
fprintf(1,'Solution of incremental equations: \n')
disp(ddd)
fprintf(1,'Nodal solution increment in this load step: \n')
disp(dd)
fprintf(1,'Total nodal values: \n')
disp(d+dd)
for i=1:nel
lm = lmm(i,:);
con=conn(i,:);
[ri, snew(i), enew(i), nstatus(i), newep(i)]= ...
InelasticTrussState(dd(lm), nodes(con,:), A(i), e(i),...
et(i), H(i), sY(i), type(i), sigma(i), ...
eps(i), status(i), ep(i));
Ri(lm) = Ri(lm) + ri;
end
fprintf(1,'Element status: \n')
disp(nstatus)
Rf = R(df); Ff = -Ri(df) + Rf;
conv = (Ff'*Ff)/(1 + Rf'*Rf);
fprintf(1,'Convergence parameter: %4.2g \n', conv)
iter = iter + 1;
end
end
>> FourBarTrussEx83
****************************
Current load parameter: 1
****************************
Iteration: 1
KT =
1.0e+004 *
Columns 1 through 6
25
Columns 7 through 8
-0.6827 -1.0241
-1.0241 -1.5361
-0.7071 0.7071
0.7071 -0.7071
0 0
0 0
1.3898 0.3170
0.3170 2.2432
R=
1.0e+004 *
0
0
3.4641
2.0000
0
0
-4.0000
0
Ri =
0
0
0
0
0
0
0
0
26
Element status:
0 0 1 1
KT =
1.0e+004 *
Columns 1 through 6
Columns 7 through 8
-0.6827 -1.0241
-1.0241 -1.5361
-0.0337 0.0337
0.0337 -0.0337
0 0
0 0
0.7164 0.9904
0.9904 1.5698
R=
1.0e+004 *
0
0
3.4641
2.0000
0
0
-4.0000
0
Ri =
1.0e+004 *
0.5359
2.1340
3.1987
1.1854
0
-3.0540
-3.7346
-0.2654
0
0
-4.2524
17.0096
0
0
-17.4866
11.6577
Element status:
0 0 1 1
KT =
1.0e+004 *
Columns 1 through 6
Columns 7 through 8
-0.6827 -1.0241
-1.0241 -1.5361
-0.0337 0.0337
0.0337 -0.0337
0 0
0 0
0.7164 0.9904
0.9904 1.5698
R=
0
0
0
0
0
0
0
0
Ri =
1.0e+004 *
0.5359
2.1340
3.4641
2.0000
0
-4.1340
-4.0000
0.0000
0
15.6948
-65.1101
0
0
92.1862
-59.8951
Element status:
0 0 0 0
KT =
1.0e+004 *
Columns 1 through 6
Columns 7 through 8
-0.6827 -1.0241
-1.0241 -1.5361
-0.7071 0.7071
0.7071 -0.7071
0 0
0 0
1.3898 0.3170
0.3170 2.2432
R=
0
0
0
0
0
0
0
0
Ri =
1.0e+005 *
0.0000
0.0000
-4.8000
-3.4679
0
8.2679
4.8000
-4.8000
0
-87.2366
58.1577
Element status:
0 0 0 0