24小时热门版块排行榜    

查看: 1245  |  回复: 0

z770428

金虫 (正式写手)


[求助] matlab 热力耦合分析

各位高手,我正在做一平板中含一边裂纹的热力耦合有限元分析,计算,温度场,位移场,热应力场,板的上边界温度降低10,下边界保持为原来的0,固定下边位移,请问1 MATLAB边界条件中,温度边界条件和位移边界条件能写在一块么?
2,计算热应力应变的温差应为多少?
下面是我的MATLAB 边界条件代码
CODE:
function [freeDOF] = boundaryCond(DOF)
% This function defines the boundary conditions to be applied.              %  case 1              

global BC  CONNEC DOMAIN NODES

nXElem   = DOMAIN(1);                                                       % Number of elements in the x-direction
nYElem   = DOMAIN(2);                                                       % Number of elements in the y-direction
fixedTDOF = NaN(1,(DOMAIN(1)+1)*(DOMAIN(2)+1));                              % Initialize vector of fixed DOFs
fixedDOF = NaN(1,(DOMAIN(1)+1)*(DOMAIN(2)+1));   
TDOF     = 1*max(max(NODES));
index = 1;
switch BC
    case 1                                                                  % Fix the temperature in bottom and top edge of the domain
        
      
              for i = 1:nXElem+1;
                if i == 1;
                fixedTDOF(index) = node;                                        % Fix temperature in bottom edge of the domain
                fixedTDOFvalue=0;                                                  %    bcval2 = 0;
                index = index+1;
                 node = node+1;                                             
               
                 elseif node == (nYElem)*(nXElem+1)+1;
                fixedTDOF(index) = node;                                        %  bcval1 = -10;
                fixedTDOFvalue=-10;
                index = index+1;
                 node = node+1;
                                                            
                end  
               
             end
        
   
         
         
         
    case 2                                                                  % Boundary conditions for an edge crack
        fixedDOF = [2*(nXElem+1)-1 2*(nXElem+1) 2*(nXElem+1)*(nYElem+1)-1];
   
    case 3                                                                  % Fix the bottom edge of the domain
        for i = 1:nXElem+1
            if i == 1
                fixedDOF(index:(index+1)) = [2*i-1 2*i];                    % Fix displacement in x and y-direction
                index = index+2;
            else
                fixedDOF(index) = 2*i;                                      % Fix displacement in y-direction
                index = index+1;
            end
        end            
    case 4                                                                  % Boundary conditions for first quadrant
        node = 1;
        for i = 1:nYElem+1                                                  % Rollers left edge
            fixedDOF(index) = 2*node-1;
            index = index+1;
            node = node+nXElem+1;
        end               
        for i = 1:nXElem+1
            fixedDOF(index) = 2*i;                                          % Fix displacement in y-direction
            index = index+1;
        end      
end
                                         
fixedTDOF(:,isnan(fixedTDOF(1,:))) = [];  
freeTDOF = setdiff(1:TDOF,fixedTDOF);
fixedDOF(:,isnan(fixedDOF(1,:))) = [];
freeDOF = setdiff(1:DOF,fixedDOF);                                          % Solve for the free DOF

[ Last edited by dbb627 on 2012-6-30 at 18:10 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 z770428 的主题更新
信息提示
请填处理意见