学习1:https://blog.csdn.net/jessica0307/article/details/105444407
学习2:https://blog.csdn.net/jessica0307/article/details/105451892

趁热打铁,继续用livelink for MATLAB生成随机几何。COMSOL官网博客上介绍了如何使用APP来构建奶酪的几何模型,基于Java脚本语言
http://cn.comsol.com/blogs/how-to-create-a-randomized-geometry-using-model-methods/

这里用MATLAB重新写一下

function out = cheese
%
% cheese.m
%
% Model created on Apr 11 2020,  by COMSOL 5.5.
import com.comsol.model.*
import com.comsol.model.util.*
model = ModelUtil.create('Cheese');
model.component.create('comp1', true); % 生成组件1
model.component('comp1').geom.create('geom1', 3); % 生成3D几何
model.component('comp1').mesh.create('mesh1'); % 生成网格%奶酪中的小孔初始化参数
number_of_hols = 10; %初始化并定义奶酪内的小孔总数
ind = 0; %初始化并定义用于后续步骤的索引计数器
Pos = zeros(1,3);
hr = 0.0; %每个小孔的 xyz 位置和半径。%定义奶酪的高度、半径、环线粗细以及小孔的最大和最小半径
h_cheese = 20.0;
r_cheese = 40.0;
thickness = 0.2;
rmin_hole = 0.1;
rmax_hole = 1.0;
model.component('comp1').geom('geom1').lengthUnit('cm'); %将几何的长度单位设置为 cm
model.component('comp1').geom('geom1').selection().create('csel1', 'CumulativeSelection'); %创建一个新选择集,并添加标签 csel 和名称 CumulativeSelection。while (ind < number_of_hols) %初始化 while 循环,创建指定数量的孔Pos(1) = (2.0*rand-1.0)*r_cheese; %通过调用随机方法和缩放输出来定义小孔 坐标,使小孔位于奶酪模型的外部界限之内。Pos(2) = (2.0*rand-1.0)*r_cheese;Pos(3) = rand*h_cheese;hr = rand*(rmax_hole-rmin_hole)+rmin_hole; %在规定的限值范围内定义小孔半径if ((sqrt(Pos(1)^2+Pos(2)^2)+hr) > r_cheese-thickness) continue;end %检查小孔的位置和尺寸是否会使其脱离奶酪。if (((Pos(3)-hr) < thickness) || ((Pos(3)+hr) > h_cheese-thickness)) continue;endsph = ['sph',num2str(ind)];model.component('comp1').geom('geom1').create(sph, 'Sphere'); %创建一个球体,使其名称基于当前的索引值model.component('comp1').geom('geom1').feature(sph).set('r', hr); %指定新创建球体的半径和位置。model.component('comp1').geom('geom1').feature(sph).set('pos', Pos);model.component('comp1').geom('geom1').feature(sph).set('contributeto', 'csel1'); %指定此球体特征属于名为 csel1 的选择集的一部分ind = ind + 1;
endmodel.component('comp1').geom('geom1').create('cyl1', 'Cylinder'); %创建一个代表圆盘奶酪的圆柱体
model.component('comp1').geom('geom1').feature('cyl1').set('r', r_cheese);
model.component('comp1').geom('geom1').feature('cyl1').set('h', h_cheese);
model.component('comp1').geom('geom1').create('dif1', 'Difference'); %建立一个布尔差集运算。要添加的对象是圆柱体,要减去的对象是所有球体的选择
model.component('comp1').geom('geom1').feature('dif1').selection('input').set('cyl1');
model.component('comp1').geom('geom1').feature('dif1').selection('input2').named('csel1');
model.component('comp1').geom('geom1').run(); %运行整个几何序列,将所有球体从圆柱体中切除,最终形成圆盘奶酪
model.component('comp1').view('view1').set('transparency', true);
mphgeom(model,'geom1');
mphsave(model,'cheese');
out = model;

COMSOL——LiveLink for MATLAB学习3——奶酪模型相关推荐

  1. COMSO Livelink With MATLAB初级---连接MALTAB(已安装COMSOL Livelink For MATLAB前提下)

    文件->倒数第二个选项 preferences 2处选择maltab的安装位置,注意,如果你的安装位置为 D:\Program\bin\win64\matlab.exe,那么只需写bin之前的路 ...

  2. LiveLink for MATLAB:COMSOL与MATLAB交互

    LiveLink™ for MATLAB® 将 COMSOL Multiphysics® 与 MATLAB 脚本环境联系起来 重点参考官方教程,路径在:xx\COMSOL5.6\doc\pdf\Liv ...

  3. 千万不要把comsol livelink matlab客户端和其对应的comsol文件同时打开

    否则会导致你的批量程序运行总是在老版本中,或者有其他不可知的问题 具体来说,你修改完comsol文件以后,就把他关掉,然后再去comsol livelink matlab客户端中运行你的批量程序.这是 ...

  4. MATLAB学习笔记(二)

    MATLAB学习笔记(二) 一.矩阵运算 矩阵分析 向量和矩阵的范数运算 矩阵的秩 矩阵的化零矩阵 矩阵的化简rref()函数 线性方程组 超定线性方程组求解 矩阵分解 1.对称正定矩阵的Choles ...

  5. Matlab学习一本通,matlab基础教程

    链接:https://pan.baidu.com/s/1uTCbiRfIxcrt6lmiy6_QlQ  提取码:f2dn  Matlab学习一本通,matlab基础教程 <MATLAB R201 ...

  6. matlab怎么显示bfm模型的纹理模型,BFM模型介绍及可视化实现(C++)

    BFM模型介绍及可视化实现(C++) BFM模型基本介绍 Basel Face Model是一个开源的人脸数据库,其基本原理是3DMM,因此其便是在PCA的基础上进行存储的. 目前有两个版本的数据库( ...

  7. MATLAB学习笔记(十八)

    MATLAB学习笔记(十八) 一.Simulink仿真基础 1.1 Simulink的启动 1.2 系统仿真模型的创建 1.3 仿真参数的设置 1.4 总结 二.子系统的创建与封装 2.1 子系统的创 ...

  8. 控制系统仿真与CAD-薛定宇-第四章matlab学习笔记

    控制系统仿真与CAD-薛定宇-第四章matlab学习笔记 04-02传递函数模型 tfdata() 传递函数属性法 04-07典型系统连接计算 pretty 用法 04-08方框图简化 04-09代数 ...

  9. 数学建模学习记录——数学规划模型

    数学建模学习记录--数学规划模型 一.线性规划问题 MatLab中线性规划的标准型 MatLab中求解线性规划的命令 二.整数线性规划问题 三.非线性规划问题 MatLab中非线性规划的标准型 Mat ...

最新文章

  1. 架构——大师言语汇总
  2. python 正则表达式 re.search
  3. c++2个三维向量求角度差_交叉学科入门指南(2)——线性回归
  4. PyTorch中的nn.Conv1d与nn.Conv2d
  5. 面向对象笔试题练习一
  6. Linux——JDK的部署
  7. apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理
  8. MYSQL重置密码遇到ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using passwor:yes)问题
  9. 我一直以为做知识付费的老师是非常赚钱的
  10. HTML5中Audio使用踩坑汇总
  11. Duplicate Photos Fixer Pro for Mac用户指南:我可以比较不同时间的照片吗?
  12. 几款基于ODE的机器人仿真软件
  13. 电脑上最好的5个azw3阅读器
  14. 原来网站上可以这样嵌套动态google地图
  15. 戴尔服务器关闭系统自检,戴尔开机自检取消操作方法
  16. Visual Studio 2017 Intro
  17. 北京市新型冠状病毒疫情区域图
  18. 宏定义和函数有何区别
  19. LLVM系列(三)小插曲---Clang的常用命令
  20. 在北京的那三年——实习

热门文章

  1. 笔记本电脑连接不上wifi怎么办?看下面4种方法
  2. bilibili网页版html5,Bilibili HTML5播放器网页全屏模式优化 脚本版
  3. 2017计算机应用考研大纲,2017计算机考研大纲
  4. android更新版本报:SDK Platform Tools component is missing!
  5. 适用于所有人的Nextjs-具有一些React的基础知识
  6. HTTP/1.1新建会话失败 解决方法
  7. Python初学者指南
  8. 2023.05.14十四届蓝桥杯青少组中高级组省赛Python
  9. 不适当的云安全 后果很严重
  10. Scrapy图片自动下载配置