| 查看: 3268 | 回复: 8 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
Comsol自定义场变量,只要曾经温度T>Ts,对应场变量元素为1,一旦为1,则永久保持 已有3人参与
|
|||
|
问题:comsol能否自定义一个场变量,来标记每个网格点温度T曾经是否大于Ts,一旦某个网格点温度曾经大于Ts,该网格状态量为1,即便温度降下来了,状态量不变。 这个问题非常具有代表性,其归根结底是要定义场变量f(x,y,z,t),这个场变量依附于每一个网格,可以初始化,可被用户自定义操作。我目前发现,comsol并不能不依附任何物理场模块自定义这样的变量,退而求其次的做法是采用comsol的数学模块里的域偏微分/域常微分方程/不可逆转变/生物传热模块,这些做法逻辑是能行得通,但是求解非常不准确。采用偏微分或者常微分模块,无论是通过系数将模块数学方程u=f,还是du/dt=f这么简单的方式,其中f通过逻辑控制,即便这样,我发现comsol求解出来的u误差很大,连u=f,这里置f=1或者0,都不能严格控制计算的u=1或者0;du/dt=f的方式求解的误差更离谱,我一直定义f为正,但是u求解出来的还有一点点负值,这样就无法通过u来判断它曾经的状态。不可逆转变/生物传热一样有这样的问题,我觉得这个东西应该很简单,而且计算也不困难,不知道大家有没有什么好的方案。 还要说的是,Matlab函数我也试过,本来想把这样的状态量在matlab里定义为全局场变量,但是发现comsol送过来的网格坐标是分批的,打个比方,模型有50万网格,comsol会分好几拨送过来,也就是Matlab函数在一次时间迭代开始前会被调用好几次,而且送过来的网格批次的先后顺序也不得而知,这就无法对齐场变量元素的位置。 |
» 猜你喜欢
国自然评审意见
已经有12人回复
国自然面上复盘~欢迎讨论
已经有14人回复
系统查不到
已经有11人回复
有多少人是今天查系统知道结果的?
已经有18人回复
为什么资助数各大高校都创新高,自己申请怎么就这么难
已经有12人回复
有没有仍没收到信息的
已经有3人回复
导师吐槽:我怎么摊上了这么个极品研究生!
已经有8人回复
基金不中,共勉
已经有11人回复
麻烦专家们看看评委们的意见(F口面上)
已经有9人回复
2026年叶企孙基金
已经有6人回复
7楼2018-11-16 13:29:46
landl3017
新虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 5019.9
- 散金: 1317
- 红花: 20
- 帖子: 1489
- 在线: 154.2小时
- 虫号: 3584852
- 注册: 2014-12-09
- 性别: GG
- 专业: 动力学与控制
2楼2018-11-13 15:44:04
3楼2018-11-13 17:56:14
landl3017
新虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 5019.9
- 散金: 1317
- 红花: 20
- 帖子: 1489
- 在线: 154.2小时
- 虫号: 3584852
- 注册: 2014-12-09
- 性别: GG
- 专业: 动力学与控制
4楼2018-11-13 19:35:35









回复此楼
30