⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmatrix.m

📁 efg code with matlab
💻 M
字号:
function B = Bmatrix(pt,index,node,di,form,...
                     snode,tnode,xCr,xTip,alpha)

[phi,dphidx,dphidy] = MLS_ShapeFunction(pt,index,node,di,form);

le   = length(index);
StdB = zeros(3,2*le);
StdB(1,1:2:2*le)  = dphidx ;
StdB(2,2:2:2*le)  = dphidy ;
StdB(3,1:2:2*le)  = dphidy ;
StdB(3,2:2:2*le)  = dphidx ;

% number of H and tip enriched nodes
% in index
num_split_node = size(find(snode ~= 0),2);
num_tip_node   = size(find(tnode ~= 0),2);

QT = [cos(alpha) sin(alpha); -sin(alpha) cos(alpha)];

% no enriched nodes, B is simply standard B matrix
if (num_split_node == 0) && (num_tip_node == 0)
    B = StdB;
    % there are enriched nodes, compute enriched part, Benr
else
    Benr = [];
    for m = 1 : le
        % a split enriched node
        if (snode(m) ~= 0)
            % compute Heaviside and derivatives
            dist = signed_distance(xCr,pt);
            [H,dHdx,dHdy] = heaviside(dist);

            BI_enr = [dphidx(m)*H 0 ;
                0 dphidy(m)*H;
                dphidy(m)*H dphidx(m)*H];
            Benr   = [Benr BI_enr];
            clear BI_enr ;
            % a tip enriched node
        elseif (tnode(m) ~= 0)
            % compute branch functions
            xp = QT*(pt-xTip)';                % local coordinates
            [theta,r] = cart2pol(xp(1),xp(2)); % local polar coordinates
            [Br,dBdx,dBdy] = branch(r,theta,alpha);

            aa = dphidx(m)*Br(1) + phi(m)*dBdx(1) ;
            bb = dphidy(m)*Br(1) + phi(m)*dBdy(1);
            B1_enr = [aa 0 ; 0 bb ; bb aa];

            aa = dphidx(m)*Br(2) + phi(m)*dBdx(2) ;
            bb = dphidy(m)*Br(2) + phi(m)*dBdy(2);
            B2_enr = [aa 0 ; 0 bb ; bb aa];

            aa = dphidx(m)*Br(3) + phi(m)*dBdx(3) ;
            bb = dphidy(m)*Br(3) + phi(m)*dBdy(3);
            B3_enr = [aa 0 ; 0 bb ; bb aa];

            aa = dphidx(m)*Br(4) + phi(m)*dBdx(4) ;
            bb = dphidy(m)*Br(4) + phi(m)*dBdy(4);
            B4_enr = [aa 0 ; 0 bb ; bb aa];

            BI_enr = [B1_enr B2_enr B3_enr B4_enr];
            clear B1_enr; clear B2_enr; clear B3_enr; clear B4_enr;

            Benr = [Benr BI_enr];
            clear BI_enr ;
        end
    end   % end of loop on nodes in neighbour of Gp
    % Total B matrix
    B = [StdB Benr];
    clear StdB; clear Benr;
end      % end of check enriched nodes

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -