%-------------------------- % @Author: Jingqiao Hu % @Date: 2020-10-29 15:04:15 % @LastEditTime: 2020-11-18 13:47:03 %-------------------------- % int in [-a,a], [-b,b] function gaussB = shapeDerivatives(a, b, optKE) % jac = lx*ly/4; GaussNodes = [-1/sqrt(3); 1/sqrt(3)]; GaussWeigh = [1 1]; if optKE==1 L = [1 0 0 0; 0 0 0 1; 0 1/2 1/2 0]; else L = [1 0 0 0; 0 0 0 1; 0 1 1 0]; end gaussB = cell(4,1); for i = 1:2 for j = 1:2 GN_x = GaussNodes(i); GN_y = GaussNodes(j); dN_x = 1/4*[-(1-GN_y) (1-GN_y) (1+GN_y) -(1+GN_y)]; dN_y = 1/4*[-(1-GN_x) -(1+GN_x) (1+GN_x) (1-GN_x)]; J = [dN_x; dN_y]*[ -a a a -a; -b -b b b]'; G = [inv(J) zeros(size(J)); zeros(size(J)) inv(J)]; dN(1,1:2:8) = dN_x; dN(2,1:2:8) = dN_y; dN(3,2:2:8) = dN_x; dN(4,2:2:8) = dN_y; Be = L*G*dN; gaussB{2*(i-1)+j} = GaussWeigh(i)*GaussWeigh(j)*Be; end end end