www.pudn.com > zhichixiangliangjijiemian.rar > SHAPEgai.m


function [phi,dphix,dphiy] = shape(nod,dmax,gs,v,dm) 
% EFG shape function and it's derivative with linear base 
L = length(v);    %高斯点的数目 
won = ones(1,L); 
nv = gs(1:2,v);   %影响接点的高四点坐标 
nvo=nv(1,:)+nv(2,:); 
nv1=nv(1,:)-nv(2,:); 
p = [won;nvo;nv1]; 
dif =nod*won-nv;     %节点到不同高四点的距离 
t = dm(1:2,v)/dmax; 
 
% WEIGHTS--W and dw are vectors 
[w,dwdx,dwdy] = cubwgt(dif,t,v,dmax,dm); 
B = p.*[w;w;w]; 
pp = zeros(3); 
aa = zeros(3); 
daax = zeros(3); 
daay = zeros(3); 
for i=1:L 
pp = p(1:3,i)*p(1:3,i)'; 
aa = aa+w(1,i)*pp; 
daax = daax+dwdx(1,i)*pp; 
daay = daay+dwdy(1,i)*pp; 
end 
 
nod1=nod(1,1)+nod(2,1); 
nod2=gpos(1,1)-gpos(2,1); 
pg = [1 nod1 nod2]; 
Ainv = inv(aa); 
phi = pg*Ainv*B; 
dbx = p.*[dwdx;dwdx;dwdx];    %节点的形函数及其倒数 
dby = p.*[dwdy;dwdy;dwdy]; 
dax = -Ainv *(daax*Ainv); 
day = -Ainv *(daay*Ainv); 
dphix = [0,1,1]*Ainv*B + pg*(dax*B + Ainv*dbx); 
dphiy = [0,1,-1]*Ainv*B + pg*(day*B + Ainv*dby);