24小时热门版块排行榜    

查看: 3929  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

iLZh

新虫 (正式写手)

[求助] COMSOL中,如何避免某物理量为负值? 已有4人参与

如题,以避免反应物浓度为0为例,浓物质传递模块存在反应源(反应速率为定义的局部变量)。comsol常见问题解答书中介绍,有一种处理方式是“当浓度为0时,需要使反应速率为0,可以通过对源项的修正实现,如q*(c>0),或q*flc1hs(c-w/2,w),w为足够小的数”。请教一下如何操作?求教大神们,万分感谢!

发自小木虫IOS客户端
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lyz_666888

新虫 (初入文坛)

【答案】应助回帖

楼主,请问您解决了这个问题了吗,我也遇到了这个情况,想知道您是怎么处理的
7楼2021-05-13 11:43:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

天天进步啊

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
你在给浓度赋值的时候使用 if 函数
分子筛、分子动力学模拟,有问题可咨询我的知乎主页 https://www.zhihu.com/people/rao777
2楼2019-04-28 18:36:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

iLZh

新虫 (正式写手)

引用回帖:
2楼: Originally posted by 天天进步啊 at 2019-04-28 18:36:33
你在给浓度赋值的时候使用 if 函数

首先感谢您的解答。但我还是没明白具体怎么操作。是这样,物质浓度是模块中一个待求解变量。其求解是物质传递模块中添加一个源项,源项需要根据我自己在局部变量中定义的反应速率变化,我想这样的话,是不是可以把速率定义为分段函数,根据求得的浓度分段定义:当浓度为0时,速率为0,当浓度大于0时为表达式值。不知道怎么实现?

发自小木虫IOS客户端
3楼2019-04-28 18:58:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bfamq

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
3楼: Originally posted by iLZh at 2019-04-28 18:58:05
首先感谢您的解答。但我还是没明白具体怎么操作。是这样,物质浓度是模块中一个待求解变量。其求解是物质传递模块中添加一个源项,源项需要根据我自己在局部变量中定义的反应速率变化,我想这样的话,是不是可以把 ...

首先浓度负值要么是没有选择质量约束,要么是网格太粗,或其他条件设置不好,应当尽量壁面才对。当然如果实在不想让它变成负值,最简单的办法是使用分离求解器,讲该物理量设置一个“下限”,比如comp1.c1 0.001。
等离子体模块教学,搜索公众号【comsol等离子体模拟】获取更多经验技巧哦
4楼2019-04-29 10:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见