找回密码
 注册
Simdroid-非首页
查看: 92|回复: 0

【原创】如何在Comsol中写入离散定义的函数

[复制链接]
发表于 2008-3-20 20:03:34 | 显示全部楼层 |阅读模式 来自 湖北武汉
        置顶贴中有个如何在femlab中写入自己函数的帖子,写的真好啊.不过那个帖子里只说了写入有解析表达式的方法,实际上我们很多时候面临的函数关系仅仅是离散的数据,不可避免的用到插值什么的来得到函数在任意点的值.comsol里提供了一个很方便的功能,帮助我们实现插值,而且函数在建模的时候可以非常方便的加入模型中.下面通过一个极端的例子说明这个步骤:

问题提出:

Ω∈R2, 求解poisson方程 Uxx+Uyy=fx(x,y), 这里f(x,y)定义在集合Ω’∈R2,Ω’Ω≠Φ.

Ω∈R2, 求解poisson方程 Uxx+Uyy=fx(x,y), 这里f(x,y)定义在集合Ω’∈R2,Ω’Ω≠Φ.
求解步骤:
1)
获得f(x,y)数据,我们假设f(x,y)是离散,按照Comsol规定的格式我们把这组数据存于一个txt文本文件.
这里我们用一个取巧的方式获得这个离散数据,首先我们随便求解一个简单的问题,,比如直接求解源项为1poisson方程.然后把数据导出为一个文本文件. 文件->export-postprocessing data. 选择subdomain选项卡,在下拉菜单中选择u,选择导出格式为regular grid,回到主选项卡,选择保存成文本文件,起个名字,然后确定.如图


这个导出的u数据现在已经按照comsol指定的格式在存于一个txt文件了,打开后我们可以具体看看这种格式是什么样子的,以后就可以自己写这个文件了.

2)
新建一个模型,classical pde->poisson equation, 在空间中建立一个矩形区域,这个区域和离散函数定义域至少部分重合.
3)
Option
菜单下选择function,弹出对话框,选择new,新建一个函数,起个名字就叫f,函数来源选择interpolation, Use data from选择file,浏览到你保存的那个文本文件,选择,确定.我们看到这时候对话框里提示选择插补方法,外插方法(interpolation method and extrapolation method),这个没什么说得,大家应该知道是什么东西. 确定. 现在我们在Comsol中离散定义了一个函数f,如图:

4)
这一部和普通求解poisson方程没什么区别,打开subdomain定义,在源项source term中写入diff(f(x,y),x),表示,poisson 方程的源项是f(x,y)x的偏导数.
5)
求解问题得到结果,如下图.

就写这么多,有错误大家指正.可能有些粗浅,希望对有些朋友有用吧.

[ 本帖最后由 clarkyeah 于 2008-3-20 20:05 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-3-29 04:56 , Processed in 0.049239 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表