找回密码
 注册
查看: 2873|回复: 8

求教前辈,加载密度函数UDF后发散,不能计算。

[复制链接]
发表于 2015-11-30 22:26:26 | 显示全部楼层 |阅读模式
1金钱
做齿轮的润滑分析,UDF中包含定义齿轮啮合传动的程序,流场密度随压力变化的程序,run后迭代几部就出错。当密度为常数,只定义udf啮合传动时收敛很好,当只用udf定义密度函数,齿轮传动用稳态做时也能正常迭代。
# Divergence detected in AMG solver: pressure correction -> Turning off correction scaling!
# Divergence detected in AMG solver: pressure correction -> Increasing relaxation sweeps!

 楼主| 发表于 2015-11-30 22:28:24 | 显示全部楼层
自己顶一下,UDF如下:
#include "udf.h"
DEFINE_PROPERTY(my_density,c,t)
{
    double P=C_P(c,t),a=856.12;
    double density;
    density=a*(1+6*P*pow(10,-10)/(1+1.7*P*pow(10,-9)));
    return density;
}

DEFINE_CG_MOTION(roting , dt, vel, omega, time, dtime)
{

omega[2]=-1000;
}
DEFINE_CG_MOTION(roting1 , dt, vel, omega, time, dtime)
{

omega[2]=896.55172;
}

回复

使用道具 举报

 楼主| 发表于 2015-11-30 22:28:41 | 显示全部楼层
自己顶一下,UDF如下:
#include "udf.h"
DEFINE_PROPERTY(my_density,c,t)
{
    double P=C_P(c,t),a=856.12;
    double density;
    density=a*(1+6*P*pow(10,-10)/(1+1.7*P*pow(10,-9)));
    return density;
}

DEFINE_CG_MOTION(roting , dt, vel, omega, time, dtime)
{

omega[2]=-1000;
}
DEFINE_CG_MOTION(roting1 , dt, vel, omega, time, dtime)
{

omega[2]=896.55172;
}
回复

使用道具 举报

发表于 2015-12-8 21:21:09 | 显示全部楼层
有类似的问题,同问,还请高手解答
回复

使用道具 举报

发表于 2016-4-28 20:41:54 | 显示全部楼层
可以试试不使用密度UDF,还可以适当降低压力的松弛因子
回复

使用道具 举报

发表于 2016-8-21 22:31:01 | 显示全部楼层
同样的问题,我也遇到了,请问楼主是如何解决的
回复

使用道具 举报

 楼主| 发表于 2016-11-11 11:02:05 | 显示全部楼层
没晓晓 发表于 2016-8-21 22:31
同样的问题,我也遇到了,请问楼主是如何解决的

没有解决,你呢?
回复

使用道具 举报

 楼主| 发表于 2016-11-11 11:04:06 | 显示全部楼层
Jolie 发表于 2015-12-8 21:21
有类似的问题,同问,还请高手解答

你解决没?
回复

使用道具 举报

 楼主| 发表于 2016-11-11 11:05:50 | 显示全部楼层
漫舞飞沙 发表于 2016-4-28 20:41
可以试试不使用密度UDF,还可以适当降低压力的松弛因子

降低松弛因子也不行,导师要求用这个密度函数。
回复

使用道具 举报

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

本版积分规则

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