-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathNonLinearShear.m
91 lines (65 loc) · 2.79 KB
/
NonLinearShear.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
function [As,Gs] = NonLinearShear(ndof,nnel,R,dRdx,dRdy,...
u_e,v_e,w_e,phix_e,phiy_e,thetax_e,thetay_e)
% u = u_e*R;
dudx = u_e*dRdx;
dudy = u_e*dRdy;
% v = v_e*R;
dvdx = v_e*dRdx;
dvdy = v_e*dRdy;
% w = w_e*R;
% dwdx = w_e*dRdx;
% dwdy = w_e*dRdy;
phix = phix_e*R;
dphixdx = phix_e*dRdx;
dphixdy = phix_e*dRdy;
phiy = phiy_e*R;
dphiydx = phiy_e*dRdx;
dphiydy = phiy_e*dRdy;
thetax = thetax_e*R;
dthetaxdx = thetax_e*dRdx;
dthetaxdy = thetax_e*dRdy;
thetay = thetay_e*R;
dthetaydx = thetay_e*dRdx;
dthetaydy = thetay_e*dRdy;
As = [
dudy dvdy 0 0 0 phix 0 phiy 0 0 0 0 0 0 0 0;
dudx dvdx 0 0 phix 0 phiy 0 0 0 0 0 0 0 0 0;
dphixdy dphiydy 0 0 0 0 0 0 0 phix 0 phiy 0 0 0 0;
dphixdx dphiydx 0 0 0 0 0 0 phix 0 phiy 0 0 0 0 0;
dthetaxdy dthetaydy 0 0 0 0 0 0 0 0 0 0 0 phix 0 phiy;
dthetaxdx dthetaydx 0 0 0 0 0 0 0 0 0 0 phix 0 phiy 0;
0 0 dudy dvdy 0 thetax 0 thetay 0 0 0 0 0 0 0 0;
0 0 dudx dvdx thetax 0 thetay 0 0 0 0 0 0 0 0 0;
0 0 dphixdy dphiydy 0 0 0 0 0 thetax 0 thetay 0 0 0 0;
0 0 dphixdx dphiydx 0 0 0 0 thetax 0 thetay 0 0 0 0 0;
0 0 dthetaxdy dthetaydy 0 0 0 0 0 0 0 0 0 thetax 0 thetay;
0 0 dthetaxdx dthetaydx 0 0 0 0 0 0 0 0 thetax 0 thetay 0;
];
%%
Gs = zeros(size(As,2),ndof*nnel);
for innel=1:nnel
i1=(innel-1)*ndof+1;
i2=i1+1;
i3=i2+1;
i4=i3+1;
i5=i4+1;
i6=i5+1;
i7=i6+1;
Gs(1,i4)= R(innel);
Gs(2,i5)= R(innel);
Gs(3,i6)= R(innel);
Gs(4,i7)= R(innel);
Gs(5,i1)= dRdx(innel);
Gs(6,i1)= dRdy(innel);
Gs(7,i2)= dRdx(innel);
Gs(8,i2)= dRdy(innel);
Gs(9,i4)= dRdx(innel);
Gs(10,i4)= dRdy(innel);
Gs(11,i5)= dRdx(innel);
Gs(12,i5)= dRdy(innel);
Gs(13,i6)= dRdx(innel);
Gs(14,i6)= dRdy(innel);
Gs(15,i7)= dRdx(innel);
Gs(16,i7)= dRdy(innel);
end
end