- 积分
- 6
- 注册时间
- 2006-5-10
- 仿真币
-
- 最后登录
- 1970-1-1
|
置顶贴中有个如何在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文本文件.
这里我们用一个取巧的方式获得这个离散数据,首先我们随便求解一个简单的问题,,比如直接求解源项为1的poisson方程.然后把数据导出为一个文本文件.即 文件->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 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|