摘要:本文意在通过COMSOL Multiphysics 5.2 软件的Coefficient Form PDE模块来实现给定边界的最小曲面寻找。

​  最近学习了《COMSOL Multiphysics 基本操作指南和常见问题解答》中的寻找最小曲面部分,个人觉得此案例非常适合学习PDE模块。但是操作指南这本书是针对COMSOL3.5的,而现在COMSOL5.2a都已经出了,所以软件的变动比较大。我参考指南摸索了好一会儿才摸出来的,具体是用COMSOL5.2实现的,写出来跟大家分享一下。

问题描述:给定一条空间曲线,求以此空间曲线为边界的面积最小的曲面。

具体案例:如上式,即在单位圆区域内,以u=u(x,y)=x*x,为边界,求其张成的最小面积的曲面。采用Euler-Lagrange方程,可将此问题化为求解


(1)

具体问题化简,如何运用Euler-lagrange方程,我们在此不做赘述,我希望读者能注重于软件的求解部分,且假设就为利用PDE模块求解上述方程,这也正是我写这篇博文的目的所在。

首先打开COMSOL Multiphysics5.2,选择model wizard(模型向导)--2D来到物理场的选择界面,选择Mathematics--PDE interfaces--Coefficient Form PDE(c),然后选择add添加系数型PDE场如下:

特别要注意的是上图右边的Review Physics Interface部分的内容,标示了因变量的信息,在这个模块中默认单个因变量名称是u,当存在多个因变量时则为u1,u2,....当然你也可以在Dependent variable栏输入自己习惯的因变量名字,这个是后面在方程输入中要注意的,变量名称此处就已定义。

接着选择study,由于在这个案例中,边界不随着时间变化,所以我们选择stationary,然后选择down如图。

下面点击Model builder下的根目录(root),来到setting窗口,​找到unit system,下拉窗口选择none。做这一步是为了防止后面变量使用时因为单位问题而报错。(事实上,虽然会报错但依然可以进行计算,个人只是觉得warning看着不顺眼而已。。。。)

​    下面开始定义几何,选择菜单栏的Geometry--Primitives--Primitives--ellipse, 由于它的默认设置是中心在(0,0),半径为1的圆,与此例暗合,因而不需改值,直接选择Build Selected构建, 得到下图。​

​    然后进行边界的设定,选择菜单栏的Physics--Boundaries--Dirichlet Boundary Condition,来到狄利克雷边界条件的settings窗口,找到Boundary section,下拉section选择All boundaries,在r处输入x*x,如下图。

然后点击Model Builder下的Coefficient Form PDE(c)下的Coefficient Form PDE1,在Diffusion Coefficient部分输入各系数:c=1/sqrt(1+ux*ux+uy*uy)​,a=0,f=0.至于为什么这么输入,大家可以点击Equation节点,查看方程的原型,结合我们此例的问题,对照(1)的方程便十分清楚了。(这里说明一下,在COMSOL中默认ux是因变量u对x的偏导数,uy同理。)

接下来是对其网格化,COMSOL在求解问题时采用的有限元方法。点击Model Builder下的Mesh,在setting窗口下的element size的下拉中选择fine细化网格,再点击Builder all对其网格化。

接着进行求解的设定,选择菜单栏中的study--solver--show default solver,然后展开Solver configuration,展开Solution1,点击Stationary Solver,在Settings窗口下的General中的Linearity选择Nonlinear.

下面就可以点击Compute求解了,计算得到下图。

​为了更好的显示结果,我们需要对计算结果做一些后处理,找到Model Builder下的Result下的2D Plot Group 1展开,右键surface1选择Height Expression,即可得到下图:

可以看到限制在单位圆区域,以x的平方为边界的面积最小的曲面是马鞍面。这个例子比较清晰简单,适合用来初步了解怎么使用COMSOL的PDE模块。​

COMSOL(1)寻找最小曲面相关推荐

  1. 海量数据中,寻找最小的k个数。

    维护k个元素的最大堆,即用容量为k的最大堆存储最小的k个数,k1设为大顶堆中最大元素.遍历一次数列,n,每次遍历一个元素x,与堆顶元素比 较,x<kmax,更新堆,否则不更新堆. 1 // 海量 ...

  2. 微软编程题:寻找最小的k个值

    转载自:http://blog.csdn.net/v_JULY_v/article/details/6370650 寻找最小的k个数 题目描述:5.查找最小的k个元素 题目:输入n个整数,输出其中最小 ...

  3. 在二维数组中寻找最小鞍点1181(该行最大值,该列最小值)(2种思路)

    题目描述 找出一个2维数组矩阵的鞍点,即该位置上的元素在该行中最大,在该列中最小,可能不存在鞍点,如果存在多个,输出最小的那个! 输入要求 输入 n,m表示二维矩阵的行数和列数,然后根据行列数输入n* ...

  4. MATLAB寻找三维曲面的有效波峰(滤除噪声产生的极大值)

    最近在做课题研究的时候,在三维曲面寻找波峰方面遇到了些困难,虽然查找资料的时候有看到findpeaks和imregionalmax两个找极大值的函数,要么就是只适用于二位曲线,要么就是不能很好地滤除噪 ...

  5. 程序员编程艺术:第三章、寻找最小的k个数

    程序员编程艺术:第三章.寻找最小的k个数 作者:July. 时间:二零一一年四月二十八日. 致谢:litaoye, strugglever,yansha,luuillu,Sorehead,及狂想曲创作 ...

  6. 寻找最小可行化产品背后的真理

    一个成功的开始 \ 同其他99%的产品经理一样,我是通过Eric Ries的<精益创业>这本书了解到MVP(最小可行化产品)这个概念的.当我偶然发现这本书以及Eric的方法时,我想:&qu ...

  7. Java实现寻找最小的k个数

    1 问题描述 有n个整数,请找出其中最小的k个数,要求时间复杂度尽可能低. 2 解决方案 2.1 全部排序法 先对这n个整数进行快速排序,在依次输出前k个数. package com.liuzhen. ...

  8. MATLAB寻找最小矩形区域

    对于一个倾斜的矩形或不规则单连通域,找出其最小矩形,并将其旋转到X,Y坐标系平行位置.如:将 下图蓝色矩形区范围内的黑色区域旋转至,蓝色矩形的边平行于X,Y坐标系. 代码1 图像以固定的步幅进行旋转, ...

  9. c语言从4个整数中找最小的数,编程之法:面试和算法心得(寻找最小的k个数)...

    内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...

  10. SCIP习题 1.21(寻找最小因子)

    (define (smallest-divisor n)(find-divisor n 2))(define (find-divisor n test-divisor)(cond ((> (sq ...

最新文章

  1. 20200406 托普雷兹矩阵 Toeplitz
  2. Docker 入门尝鲜
  3. 通过Nginx反向代理,实现远程调试本机代码
  4. python param_python发送带param的post请求
  5. 盘点两个神器,快速告别垃圾短信邮件
  6. SAP SM36如何设置后台作业 每月最后一天运行
  7. php万年历月份处理_使用 PHP 写的万年历接口
  8. Flowable入门系列文章39 - 网关 01
  9. 资本运作/自我投资--哪项需要优先?
  10. android最新版本下载vivo,vivo应用商店下载安卓版
  11. [SSL_CHX][2021-08-19]前缀和
  12. 转载:微信Windows版-无效的wechatwin.dll文件errcode:126,点击“确定”下载最新版本
  13. XUPT第三届新生算法赛
  14. 量化进阶——如何突破期货交易难点
  15. HTTP 接口设计指北
  16. 修改字段名称、替换字符中的英文变中文括号
  17. FPGA Vs 单片机 -- 嵌入式设计的另一种方法
  18. nosql | 配置mongodb副本集
  19. 著名的假设“缸中之脑”,我们怎么确定自己不是活在电脑程序中?
  20. 天津春季高考历年计算机考试卷,春季高考历年真题-2014年天津市春季高考计算机试卷.docx...

热门文章

  1. 登录不了WPS国际版,密码正确,在网页能够正常登录,在WPS不行,求解答,版本号是10.2.0.7646已刷语言包
  2. JQuery视频总结
  3. 【Android实战】----Android Studio2的安装使用
  4. IP子网划分【网工复习专题】2022.5.8
  5. python人脸考勤系统_python人脸考勤系统Python3多进程 multiprocessing 模块实例详解
  6. stm32之I2C编程前期准备
  7. SWD离线烧写器(完全开源)
  8. ctf不允许上传该类型php,d3ctf easyweb题解
  9. [shell][原创]shell脚本遍历文件夹下所有文件
  10. NPDP产品经理小知识:商业模式画布的9个构成要素