forked from Qinxiaoye/FEM2D
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfun.m
113 lines (85 loc) · 4.92 KB
/
fun.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
function N = fun(ks,yt,zita,ndim,mnode)
% ËĽڵãËıßÐεÄÐκ¯Êý
N = zeros(mnode,1);
if ndim == 2
if mnode == 4
N = zeros(4,1);
N(1) = (1-ks)*(1-yt)/4;
N(2) = (1+ks)*(1-yt)/4;
N(3) = (1+ks)*(1+yt)/4;
N(4) = (1-ks)*(1+yt)/4;
elseif mnode == 8
N(1) = (1/4).*(1+(-1).*ks).*(1+(-1).*yt).*((-1)+(-1).*ks+(-1).*yt);
N(2) = (1/4).*(1+ks).*(1+(-1).*yt).*((-1)+ks+(-1).*yt);
N(3) = (1/4).*(1+ks).*(1+yt).*((-1)+ks+yt);
N(4) = (1/4).*(1+(-1).*ks).*(1+yt).*((-1)+(-1).*ks+yt);
N(5) = (1/2).*(1+(-1).*ks.^2).*(1+(-1).*yt);
N(6) = (1/2).*(1+ks).*(1+(-1).*yt.^2);
N(7) = (1/2).*(1+(-1).*ks.^2).*(1+yt);
N(8) = (1/2).*(1+(-1).*ks).*(1+(-1).*yt.^2);
end
elseif ndim == 3
if mnode == 8
N(1) = (1/8).*(1+ks).*(1+(-1).*yt).*(1+(-1).*zita);
N(2) = (1/8).*(1+ks).*(1+yt).*(1+(-1).*zita);
N(3) = (1/8).*(1+(-1).*ks).*(1+yt).*(1+(-1).*zita);
N(4) = (1/8).*(1+(-1).*ks).*(1+(-1).*yt).*(1+(-1).*zita);
N(5) = (1/8).*(1+ks).*(1+(-1).*yt).*(1+zita);
N(6) = (1/8).*(1+ks).*(1+yt).*(1+zita);
N(7) = (1/8).*(1+(-1).*ks).*(1+yt).*(1+zita);
N(8) = (1/8).*(1+(-1).*ks).*(1+(-1).*yt).*(1+zita);
elseif mnode == 20
N(1) = (1/8).*(1+ks).*(1+(-1).*yt).*(1+(-1).*zita).*((-2)+ks+(-1).*yt+( ...
-1).*zita);
N(2) = (1/8).*(1+ks).*(1+yt).*(1+(-1).*zita).*((-2)+ks+yt+(-1).*zita);
N(3) = (1/8).*(1+(-1).*ks).*(1+yt).*(1+(-1).*zita).*((-2)+(-1).*ks+yt+( ...
-1).*zita);
N(4) = (1/8).*(1+(-1).*ks).*(1+(-1).*yt).*(1+(-1).*zita).*((-2)+(-1).*ks+ ...
(-1).*yt+(-1).*zita);
N(5) = (1/8).*(1+ks).*(1+(-1).*yt).*(1+zita).*((-2)+ks+(-1).*yt+zita);
N(6) = (1/8).*(1+ks).*(1+yt).*(1+zita).*((-2)+ks+yt+zita);
N(7) = (1/8).*(1+(-1).*ks).*(1+yt).*(1+zita).*((-2)+(-1).*ks+yt+zita);
N(8) = (1/8).*(1+(-1).*ks).*(1+(-1).*yt).*(1+zita).*((-2)+(-1).*ks+(-1).* ...
yt+zita);
N(9) = (1/4).*(1+ks).*(1+(-1).*yt.^2).*(1+(-1).*zita);
N(10) = (1/4).*(1+(-1).*ks.^2).*(1+yt).*(1+(-1).*zita);
N(11) = (1/4).*(1+(-1).*ks).*(1+(-1).*yt.^2).*(1+(-1).*zita);
N(12) = (1/4).*(1+(-1).*ks.^2).*(1+(-1).*yt).*(1+(-1).*zita);
N(13) = (1/4).*(1+ks).*(1+(-1).*yt.^2).*(1+zita);
N(14) = (1/4).*(1+(-1).*ks.^2).*(1+yt).*(1+zita);
N(15) = (1/4).*(1+(-1).*ks).*(1+(-1).*yt.^2).*(1+zita);
N(16) = (1/4).*(1+(-1).*ks.^2).*(1+(-1).*yt).*(1+zita);
N(17) = (1/4).*(1+ks).*(1+(-1).*yt).*(1+(-1).*zita.^2);
N(18) = (1/4).*(1+ks).*(1+yt).*(1+(-1).*zita.^2);
N(19) = (1/4).*(1+(-1).*ks).*(1+yt).*(1+(-1).*zita.^2);
N(20) = (1/4).*(1+(-1).*ks).*(1+(-1).*yt).*(1+(-1).*zita.^2);
elseif mnode == 27
N(1) = (1/8).*((-1)+ks).*ks.*((-1)+yt).*yt.*((-1)+zita).*zita;
N(2) = (1/4).*(1+(-1).*ks.^2).*((-1)+yt).*yt.*((-1)+zita).*zita;
N(3) = (1/8).*ks.*(1+ks).*((-1)+yt).*yt.*((-1)+zita).*zita;
N(4) = (1/4).*((-1)+ks).*ks.*(1+(-1).*yt.^2).*((-1)+zita).*zita;
N(5) = (1/2).*(1+(-1).*ks.^2).*(1+(-1).*yt.^2).*((-1)+zita).*zita;
N(6) = (1/4).*ks.*(1+ks).*(1+(-1).*yt.^2).*((-1)+zita).*zita;
N(7) = (1/8).*((-1)+ks).*ks.*yt.*(1+yt).*((-1)+zita).*zita;
N(8) = (1/4).*(1+(-1).*ks.^2).*yt.*(1+yt).*((-1)+zita).*zita;
N(9) = (1/8).*ks.*(1+ks).*yt.*(1+yt).*((-1)+zita).*zita;
N(10) = (1/4).*((-1)+ks).*ks.*((-1)+yt).*yt.*(1+(-1).*zita.^2);
N(11) = (1/2).*(1+(-1).*ks.^2).*((-1)+yt).*yt.*(1+(-1).*zita.^2);
N(12) = (1/4).*ks.*(1+ks).*((-1)+yt).*yt.*(1+(-1).*zita.^2);
N(13) = (1/2).*((-1)+ks).*ks.*(1+(-1).*yt.^2).*(1+(-1).*zita.^2);
N(14) = (1+(-1).*ks.^2).*(1+(-1).*yt.^2).*(1+(-1).*zita.^2);
N(15) = (1/2).*ks.*(1+ks).*(1+(-1).*yt.^2).*(1+(-1).*zita.^2);
N(16) = (1/4).*((-1)+ks).*ks.*yt.*(1+yt).*(1+(-1).*zita.^2);
N(17) = (1/2).*(1+(-1).*ks.^2).*yt.*(1+yt).*(1+(-1).*zita.^2);
N(18) = (1/4).*ks.*(1+ks).*yt.*(1+yt).*(1+(-1).*zita.^2);
N(19) = (1/8).*((-1)+ks).*ks.*((-1)+yt).*yt.*zita.*(1+zita);
N(20) = (1/4).*(1+(-1).*ks.^2).*((-1)+yt).*yt.*zita.*(1+zita);
N(21) = (1/8).*ks.*(1+ks).*((-1)+yt).*yt.*zita.*(1+zita);
N(22) = (1/4).*((-1)+ks).*ks.*(1+(-1).*yt.^2).*zita.*(1+zita);
N(23) = (1/2).*(1+(-1).*ks.^2).*(1+(-1).*yt.^2).*zita.*(1+zita);
N(24) = (1/4).*ks.*(1+ks).*(1+(-1).*yt.^2).*zita.*(1+zita);
N(25) = (1/8).*((-1)+ks).*ks.*yt.*(1+yt).*zita.*(1+zita);
N(26) = (1/4).*(1+(-1).*ks.^2).*yt.*(1+yt).*zita.*(1+zita);
N(27) = (1/8).*ks.*(1+ks).*yt.*(1+yt).*zita.*(1+zita);
end
end