首先谢谢大家的关照!
下面是matlab编程的主文件代码:(贴出来大家看看)
clear all
global basemesh
global disp
xnod=[0 1 1 0]';ynod=[0,0,1 1]';
nodes=[1 2 3 4];
for i=1:1
[nodes,xnod,ynod]=refine(nodes,xnod,ynod);
end
hangnode=[]; % No hanging nodes on the first mesh
icase=2; % 1 for volume load, 2 for boundary tractions
[ux,uy]=solve(icase,nodes,xnod,ynod,hangnode);
tol=1e-5;err=1e9;stopp=1;effp=[];iite=0;mite=20;
while(err>stopp & iite < mite)
iite=iite+1;
[err,stopp,ellist,eff,epsx,epsy,epsxy]=errcal(icase,ux,uy,nodes,xnod,ynod,hangnode,tol);
effp=[effp,eff];
eps=1;
ppp=epsx.*epsx+epsy.*epsy+epsxy.*epsxy/2;
figure(1),clf,patch(xnod(nodes')+eps*ux(nodes'),ynod(nodes')+eps*uy(nodes'),'w'),hold on
plot([0.8,1.5],eps*[disp,disp],'k-'),plot([0.8,0.8],[-0.4,eps*disp],'k-'),drawnow
if(err
[nodes,xnod,ynod,hangnode]=refine_local(nodes,xnod,ynod,ellist);
[ux,uy]=solve(icase,nodes,xnod,ynod,hangnode);minuy=min(uy)
end
%figure(2),plot(effp,'-o'),axis([1 length(effp) 0 1.5])
其他的.m文件在附件中,运行主文件之后的结果如下:
![]()
我想把:
![]()
中标出的正方形变成(修改成)圆,或者是三维的球体。
麻烦大家指点迷津!
其他的完整的文件在附件里面。
谢谢啦![ Last edited by 陈成龙 on 2011-8-13 at 08:32 ] |