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

[01.PDE] 如何人为设定变量的最小值

[复制链接]
发表于 2012-6-5 16:34:23 | 显示全部楼层 |阅读模式 来自 陕西西安
比如PDE方程中的一个变量是rho,计算过程中可能会出现rho小于零的情况,那么此时我想人为将此时的rho强制赋值为e-5,请问如何操作。多谢。
发表于 2012-6-5 16:40:13 | 显示全部楼层 来自 北京
Simdroid开发平台
本帖最后由 Vivi_Song 于 2012-6-5 16:42 编辑

可以用判断性的语句来实现:rho*(rho>=0)+1e-5*(rho<0).它表示的意思是当满足括号里的不等式时,括号项为1,否则为0.这样就可以实现密度值的切换。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-6-5 16:58:44 | 显示全部楼层 来自 陕西西安
首先谢谢Vivi_Song朋友的回答。
我的目的是限制rho本身的值(使其不能为负数),比如我的计算周期为100s,计算周期为1s,当我计算到50s时,空间中有些单元的rho由正变负,那么我想要对这些为负数的rho重新赋值为e-5,以便进行第51秒的计算。
我现在的初步想法是给PDE方程组另外联立一个global ODEs and DAEs, 写入rho-if(rho-10^-5>=0,rho,10^-5),但是计算下来并无效果。
请问有何建议?
回复 不支持

使用道具 举报

发表于 2012-6-5 17:26:13 | 显示全部楼层 来自 北京
xiaoyaoyou 发表于 2012-6-5 16:58
首先谢谢Vivi_Song朋友的回答。
我的目的是限制rho本身的值(使其不能为负数),比如我的计算周期为100s, ...

看您是用rho来表示的,所以下意识的把它想象成密度了。好吧,您是在用自定义PDE来求解方程组,当rho由正变负以后,计算要继续,是不是因为rho还被代入到其他方程中计算其他未知量,而rho这个方程就是为了求其他未知量?如果是这样的话,那您为什么不把用到rho的方程中直接把rho用rho*(rho>=0)+1e-5*(rho<0)替换掉?
回复 不支持

使用道具 举报

 楼主| 发表于 2012-6-5 17:43:49 | 显示全部楼层 来自 陕西西安
Vivi_Song 发表于 2012-6-5 17:26
看您是用rho来表示的,所以下意识的把它想象成密度了。好吧,您是在用自定义PDE来求解方程组,当rho由正 ...

rho确实如您所说是质量密度,只是我的物理模型中质量密度的变化范围会很大,会有rho=0(即真空)的情况,于是计算PDE方程组的过程中难免有rho<=0的情况出现(这会直接引起计算结果不收敛),因此此时我想对这些单元赋予e-5的值来代表物理上的真空。
如您所说rho是为了求其他未知量,但是下一步的计算中仍要求解质量守恒方程,因此替换掉rho为负值的那一部分也是必须的。
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-9-21 18:35 , Processed in 0.027554 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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