当前位置: 首页 > 仿真模拟 >fluent udf 和udm 的使用问题,这个问题有点绕。

fluent udf 和udm 的使用问题,这个问题有点绕。

作者 曾经的学渣
来源: 小木虫 700 14 举报帖子
+关注

fluent udf中的一些问题:
   
     本人需要用到源项   DEFINE_SOURCE(en_source, cell, t, dS, eqn)  这个函数,但是源项里面有数据需要通过龙格库塔方法来解微分方程组来计算,我就在udf中写了龙格库塔算法。用龙格库塔解微分方程组时候需要上一个时间步长计算出来的结果作为初值。 现在的问题是如何将上一个时间步长的udf中龙格库塔计算出的值带入到下一个时间步长的udf中去。 矛盾点是udf 只有一套,每次迭代都跑一遍,,,,,,,,,,,,,,,,,,,,,,,,,  我想过用udm   将上一个时间步长计算结果保存到udm中,然后在下一个时间步长的udf中再调用,可是我始终无法实现这个想法。

    我不知道我这个想法靠不靠谱,或者说udm能不能实现这个功能。如果能实现的话,请大神给予指导。





总共就这一点金币全给上了,多谢了。   不知道我描述的清不清楚,有问题请留言给我我再细说。 返回小木虫查看更多

今日热帖
  • 精华评论
  • 曾经的学渣

    引用回帖:
    8楼: Originally posted by keeep0394 at 2017-10-15 18:58:01
    首先在申请内存分配空间,有几个UDMI就申请几个,不然即使编译通过也会因为没有空间存储报错。
    程序中d = Get_Domain(21);  如果仅仅是单相流动,正确的应该是d = Get_Domain(1)。

    我又改了下,不用udf初始化udm了,在初始化的patch里可以定义udm初值,我就只用了 DEFINE_EXECUTE_AT_END  和  DEFINE_SOUCE  两个宏来, udm的计算和修改放在  DEFINE_EXECUTE_AT_END 里 ,  DEFINE_SOUCE 仅仅用来调用udm 计算源项,现在udf 可以通过compiled 放进fluent   但是运行时候报错Error:  received a fatal signal (Segmentation fault).   请你帮我看看我的代码哪里出问题了。  多谢了

  • 曾经的学渣

    引用回帖:
    8楼: Originally posted by keeep0394 at 2017-10-15 18:58:01
    首先在申请内存分配空间,有几个UDMI就申请几个,不然即使编译通过也会因为没有空间存储报错。
    程序中d = Get_Domain(21);  如果仅仅是单相流动,正确的应该是d = Get_Domain(1)。

    我的计算模型是一个简单的固体传热模型,考虑到固体融化问题,其中有一层固体有自热反应,反应速率和温度相关,其实并不涉及流域,但是因为要模拟融化,我把融化那一层设置为液体才能定义相变温度和相变热。

  • keeep0394

    你的计算域是只有一个还是分成了2个?两个C文件完全可以放在一个C文件中编译。

  • 星星在我家门

    请问初始化出错如何解决的,谢谢

  • AiFA绝

    能不能 把要解的微分方程组先亮出来?

  • 凡凡999999

    请问楼主问题解决了吗?我也想知道如何将上一个时间步长的udf中的值带入到下一个时间步长的udf中去,用UDM存储了上一个时间步的值,下一个时间步怎么调用啊?跪求楼主回帖

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓