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);