看留言有人想选择圆的边界,实现方法倒是有好多种,分别针对不同的情况。

例1,如图选择几何模型中圆部分的边界。这里圆所在的domain还是要自己选择下,暂时没有好办法,但是如果用CwM做的几何,这倒是还是蛮好控制的,详见例3。

实现方法:

实质上是调用了Explicit选择的,Output Entities,Adjacent

boundaries,用户可以GUI做,这里不再熬述。

% This is a script for Comsol(4.x) with

Matlab.

% Get boundaries of specific domains.

%

% Copyright to mxio at Shanghai

University.

%

%

mxio

%

18,July,2013

import com.comsol.model.*

import com.comsol.model.util.*

%--------------------------------------------------------------------

% Create a geometry

model = ModelUtil.create('Model');

model.modelNode.create('mod1');

model.geom.create('geom1', 2);

model.geom('geom1').feature.create('c1', 'Circle');

model.geom('geom1').feature('c1').set('r', '0.1');

model.geom('geom1').feature.create('arr1', 'Array');

model.geom('geom1').feature('arr1').selection('input').set({'c1'});

model.geom('geom1').feature('arr1').setIndex('fullsize', '5', 0);

model.geom('geom1').feature('arr1').setIndex('fullsize', '4', 1);

model.geom('geom1').feature('arr1').setIndex('displ', '0.3', 0);

model.geom('geom1').feature('arr1').setIndex('displ', '0.', 1);

model.geom('geom1').feature('arr1').setIndex('displ', '0.3', 1);

model.geom('geom1').feature.create('r1', 'Rectangle');

model.geom('geom1').feature('r1').setIndex('size', '1.6', 0);

model.geom('geom1').feature('r1').setIndex('size', '1.3', 1);

model.geom('geom1').feature('r1').setIndex('pos', '-0.2', 0);

model.geom('geom1').feature('r1').setIndex('pos', '-0.2', 1);

model.geom('geom1').run;

%--------------------------------------------------------------------

% Create a selection

model.selection.create('sel1', 'Explicit');

model.selection('sel1').geom('geom1', 2, 1, {'exterior'});

model.selection('sel1').set([2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21]);

%--------------------------------------------------------------------

% Verify the selection contains the boundaries of

specific domains

model.physics.create('c', 'CoefficientFormPDE', 'geom1', {'u'});

model.physics('c').feature.create('dir1', 'DirichletBoundary', 1);

model.physics('c').feature('dir1').selection.named('sel1');

%--------------------------------------------------------------------

mphviewselection(model, 'sel1');

mphsave(model,'circle_boundary');

例2,如图选择几何模型外边界。

% This is a script for Comsol(4.x) with

Matlab.

% Get exterior boundaries.

%

% Copyright to mxio at Shanghai

University.

%

%

mxio

%

18,July,2013

import com.comsol.model.*

import com.comsol.model.util.*

model = ModelUtil.create('Model');

model.modelNode.create('mod1');

%--------------------------------------------------------------------

% Create a geometry

model.geom.create('geom1', 2);

model.geom('geom1').feature.create('sq1', 'Square');

model.geom('geom1').feature.create('sq2', 'Square');

model.geom('geom1').feature('sq2').set('size', '0.5');

model.geom('geom1').feature('sq2').setIndex('pos', '0.', 0);

model.geom('geom1').feature('sq2').setIndex('pos', '0.8', 0);

model.geom('geom1').feature('sq2').setIndex('pos', '0.2', 1);

model.geom('geom1').feature.create('c1', 'Circle');

model.geom('geom1').feature('c1').set('r', '0.3');

model.geom('geom1').feature('c1').setIndex('pos', '0.5', 0);

model.geom('geom1').feature('c1').setIndex('pos', '0.9', 1);

model.geom('geom1').runAll;

%--------------------------------------------------------------------

% Create a selection

model.selection.create('sel1', 'Explicit');

model.selection('sel1').all;

model.selection.create('adj1', 'Adjacent');

model.selection('adj1').set('input', {'sel1'});

model.selection('adj1').set('exterior', 'on');

model.selection('adj1').set('interior', 'off');

%--------------------------------------------------------------------

mphviewselection(model, 'adj1');

mphsave(model,'exterior_boundary');

例3, 在一个方形中,画一系列的圆,并选择这些圆的边界。

% This is a script for Comsol(4.x) with

Matlab.

% Get circle boundaries.

%

% Copyright to mxio at Shanghai

University.

%

%

mxio

%

18,July,2013

import com.comsol.model.*

import com.comsol.model.util.*

model = ModelUtil.create('Model');

model.modelNode.create('mod1');

model.geom.create('geom1', 2);

%--------------------------------------------------------------------

% Model Parameters

sq_length = 1;

cl_num = 10;

cl_radius = 0.03*sq_length;

cl_x = linspace(0.1*sq_length,0.9*sq_length,10);

cl_y = (0.2*sin(4*pi*cl_x)+0.5)*sq_length;

%--------------------------------------------------------------------

model.geom('geom1').feature.create('sq1', 'Square');

model.geom('geom1').feature('sq1').set('size', num2str(sq_length));

cl_selection_name = cell(1,cl_num);

for i = 1:cl_num

cl_name = ['c', num2str(i)];

cl_selection_name{i} = ['geom1_',cl_name,'_dom'];

model.geom('geom1').feature.create(cl_name, 'Circle');

model.geom('geom1').feature(cl_name).set('createselection', 'on');

model.geom('geom1').feature(cl_name).set('r', num2str(cl_radius));

model.geom('geom1').feature(cl_name).setIndex('pos', num2str(cl_x(i)), 0);

model.geom('geom1').feature(cl_name).setIndex('pos', num2str(cl_y(i)), 1);

end

model.geom('geom1').runAll;

%--------------------------------------------------------------------

% Create a selection

model.selection.create('uni1', 'Union');

model.selection('uni1').set('input', cl_selection_name);

model.selection.create('adj1', 'Adjacent');

model.selection('adj1').set('input', {'uni1'});

mphviewselection(model, 'adj1');

mphsave(model,'cricle_boundary');

mxio

2013.7.18

comsol with matlab完整案例 sina,[转载]Comsol with Matlab 应用实例(2)相关推荐

  1. 【MATLAB教程案例43~50总结】MATLAB三维重建类算法仿真经验和技巧总结

    在本课程中,我们通过8个课程初步学习了在matlab中,关于如何对三维图像数据进行处理的相关方法,包括三维图像的读取.保存.三维数据的插值,滤波等三维数据基本操作方法:基于双目图像的图像深度信息提取和 ...

  2. matlab如何编写网页,[转载]如何使用matlab在网页中作图

    %将原始Figure f关闭end 使用Matlab编译器将上述函数打成jar包,在编译之前最好在Matlab窗口中测试一下这个函数,以保证其可以返回期望的结果,为了看到图形可以将close(f)语句 ...

  3. matlab怎么提取小数部分,[转载]如何在Matlab中得到一个单、双精度数的整数部分和小数部分?...

    对于一个单.双精度数,获得其单独的整数部分或小数部分在一些程序中有特殊的作用.如对一个数进行去模运算.对一幅图像进行剪切使其高.宽是某个数的整数倍等等. 对于取整,在C语言中有专门的取整符号[],在M ...

  4. matlab投资案例,组合投资的风险与收益及其MATLAB的实现..doc

    组合投资的风险与收益及其MATLAB的实现. 2015届毕业论文 股票组合投资的风险与收益及其MATLAB的实现 摘 要 随着经济的发展,越来越多的投资者开始将闲置资金投入股票市场,如何科学地在可接受 ...

  5. matlab凯塞窗设计,转载:用MATLAB设计FIR滤波器的方法解析

    介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法.FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的 ...

  6. 期权在matlab中的论文,[转载]期权定价的Matlab实现(以欧式看涨期权为例)

    二叉树模型 考虑到欧式期权的特性,忽略中间过程,直接关注末期状态及其概率分布. function price=bino(s,k,r,t,v,n) dt=t/n; u=exp(v*sqrt(dt)); ...

  7. 【MATLAB教程案例75~79总结】MATLAB网络类算法仿真经验和技巧总结

    本章节,我们需要了如何使用MATLAB编程实现网络方面相关算法的仿真.当然,在实际使用过程中,网络方面的仿真更多的是用NS3等专业软件进行.在本课程中,我们主要通过MATLAB对网络相关的基础算法做简 ...

  8. 【MATLAB教程案例51~67总结】MATLAB人工智能类算法仿真经验和技巧总结

    MATLAB2022b版本,提供了大量的人工智能方面的工具箱,包括深度学习,强化学习等.通过51~67课程的学习,我们初步掌握了如何通过matlab实现一些基础的人工智能算法.那么在实际处理中,人工智 ...

  9. 《MATLAB神经网络案例分析》学习(一)——BP神经网络基本理论

    一.BP神经网络理论基本介绍 BP(Back Propagation)是一种按误差逆传播算法训练的多层前馈网络,是应用最广泛的神经网络模型之一.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需 ...

最新文章

  1. webdriver中处理alert
  2. Wireshark分析器分析数据流过程
  3. 在 Delphi 下使用 DirectSound (4): 设置音量、相位、播放频率和播放位置
  4. shell实例第23讲:每天定时备份nginx日志
  5. 运行Xcode时出现 Lazy loading NSBundle MobileCoreServices.framework和 Loaded MobileCoreServices.framework
  6. java图书商城项目介绍_JavaWeb网上图书商城完整项目--11.项目所需jquery函数介绍...
  7. 老白聊数据-关于销售预测的那些事
  8. CSDN很火的汤小洋老师全部课程总共有哪些(问号问号问号)
  9. win10时间自动更新错误
  10. python中flag标志用法_标记变量flag的用法
  11. BIGEMAP如何添加在线第三方地图
  12. 雪狐密码箱PwdBox记录导出
  13. 美团综合业务推荐系统的质量模型与实践
  14. [渝粤教育] 西北工业大学 复变函数与积分变换 参考 资料
  15. 计算机应用技术基础考试分值,计算机一级ms分值
  16. 美拍应该如何引流?如何利用美拍引流?美拍引流方法
  17. 温故而知新CentOS宝塔
  18. 计算机维修宣传稿,电脑义务维修活动策划书
  19. 网购学会7招 从此菜鸟变高手
  20. C#一个DataSet中存入多个DataTable的方法

热门文章

  1. 某企业运营(集团)有限公司信息化建设规划方案
  2. 防止APP被黑客攻击的解决方案
  3. 2020年百度之星·程序设计大赛-初赛一
  4. mt7601驱动加载
  5. JLINK V9修复方法
  6. 5500字干货:低代码/无代码技术编程为何而生?
  7. 用matlab画x开立方,SWAT模型中气象数据库和土壤数据库的构建方法.pdf
  8. AD18使用的简单介绍,添加库,添加PCB封装库,快速添加引脚,绘制器件
  9. 洛谷 P1122 最大子树和 题解
  10. imp文件,以及IDEA编译中的警告