- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab网格划分程序Distmesh讲解 一
Matlab网格划分程序Distmesh讲解 一
[转载]Matlab网格划分程序Distmesh讲解(一)2010-09-20 15:58是一个matlab语言写的网格划分软件。
源文件可以从上面的网址获取。
这里按行讲解各个算例。
p01_demo:
概算例是一个单位圆(半径为1)的网格划分,划分后的网格为:
以下逐行讲解该算例:
function p01_demo(iteration_max,h)
%Parameters:
%Input,integer ITERATION_MAX,the maximum number of iterations that DISTMESH
%should take.(The program might take fewer iterations if it detects convergence.)
%Input,real h,the mesh spacing parameter.
%这里有两个输入参数,一个是ITERATION_MAX,迭代的最大次数。
%另一个是h,网格划分的大小。0 h1
%默认参数值为:ITERATION=200 h=0.1
[p,t]=distmesh_2d(fd,fh,h0,box,iteration_max,fixed);
函数需要至少六个参数。
d=fd(p),p=[x y]
fd给定任一点到边界的距离函数,本例中定义为:d=sqrt(x^2+y^2)-1;
fh,scaled edge length function h(x,y).也就是网格大小的函数。
h0也就是h,网格的大小
real BOX(2,2),the bounding box[xmin,ymin;xmax,ymax].
最大外围矩形范围。本例中为[0,0;1,1]
ITERATION_MAX,the maximum number of iterations.
real PFIX(NFIX,2),the fixed node positions.网格中需要固定的点坐标,也就是一定需要出现在网格中的点。
输出参数:
real P(N,2),the node positions.网格点的x,y坐标
integer T(NT,3),the triangle indices.输出网格任一一个三角形的三个顶点。
第一步:
[x,y]=meshgrid(box(1,1):h0:box(2,1),.
box(1,2):h0*sqrt(3)/2:box(2,2));
根据h0,网格的大小,先把能涵盖欲划分区域的最大矩形划分为结构网格。
然后把偶数行的点整体向右平移半格,
x(2:2:end,:)=x(2:2:end,:)+h0/2;
效果如下:
第二步:
根据fd的函数定义,移除边界外的点。
p=p(feval_r(fd,p,varargin{:})=geps,:);
varagin为fd,fh的附加参数,这里为空。
geps=0.001*h0;
也就是保留了到边界的距离以外0.001*h0以内的点。
根据网格密度函数fh,每个点上产生一个0-1随机数,判断是否小于r0/max(r0)
大于的话,改点被删除。
p=[pfix;p(rand(size(p,1),1)r0./max(r0),:)];
[nfix,dummy]=size(pfix);
当指定了某些点要保留的时候,把保留的点加入,删除重复的点。
%Especially when the user has included fixed points,we may have afew
%duplicates.Get rid of any you spot.
%
p=unique(p,rows);
N=size(p,1);
这个时候产生的网格如下:
第三步:迭代
pold=inf;%第一次迭代前设置旧的点的坐标为无穷
while(iteration iteration_max)
iteration=iteration+1;
%先判断上次移动后的点和旧的点之间的移动距离,如果小于某个阀值,停止迭代
if(ttol max(sqrt(sum((p-pold).^2,2))/h0))
pold=p;%如果还可以移动,保存当前的节点
t=delaunayn(p);%利用delauny算法,生成三角形网格
triangulation_count=triangulation_count+1;
pmid=(p(t(:,1),:)+p(t(:,2),:)+p(t(:,3),:))/3;%计算三角形的重心。
t=t(feval_r(fd,pmid,varargin{:})=-geps,:);%移除重心在边界外部的三角形
%4.Describe each bar by a
您可能关注的文档
- 20m、35m箱梁预应力张拉计算书.doc
- 20万温州商人给苏州的启示.doc
- 20世纪福克斯公司特刊.doc
- 20岁以上的女生。要有成人的视觉,理性的智慧。如何气.doc
- 20招教你打造通透大气家 小户型经典设计.doc
- 20种学生必备软件.doc
- 21种方式让你玩转三亚.doc
- 21世纪公司的组织结构.doc
- 220kv及以下软母线装置安装技术.doc
- 220kV输变电线路工程总承包合同(15页).doc
- 2025年长白朝鲜族自治县长发城市发展集团有限公司公开招聘备考题库(9人)附答案详解(实用).docx
- 2025广西河池国有产业投资发展集团有限公司紧缺人才招聘10人备考题库含答案详解(能力提升).docx
- 2025民族出版社专业技术人员公开招聘4人备考题库(第二批,北京)含答案详解(综合卷).docx
- 2025年湖南怀化辰溪县文旅发展投资有限公司招聘工作人员备考题库及1套完整答案详解.docx
- 2025年甘肃省兰州新区兰新能源科技集团有限公司冬季第二批招聘55人备考题库及答案详解(基础+提升).docx
- 2025年西安某国企运检运行招聘备考题库(3人)含答案详解(模拟题).docx
- 2025年西安水务投资有限责任公司见习招聘备考题库(6人)附答案详解(实用).docx
- 2025广西南宁昇智人力资源服务有限公司第47期招聘1人备考题库(中国共产主义青年团南宁市青秀区委员.docx
- 2025年甘肃省兰州有色冶金设计研究院有限公司招聘57人备考题库精选答案详解.docx
- 2025年甘肃传祁甘味乳业有限责任公司招聘备考题库附答案详解(b卷).docx
原创力文档


文档评论(0)