fluent udf 和udm 的使用问题,这个问题有点绕。
fluent udf中的一些问题:
本人需要用到源项 DEFINE_SOURCE(en_source, cell, t, dS, eqn) 这个函数,但是源项里面有数据需要通过龙格库塔方法来解微分方程组来计算,我就在udf中写了龙格库塔算法。用龙格库塔解微分方程组时候需要上一个时间步长计算出来的结果作为初值。 现在的问题是如何将上一个时间步长的udf中龙格库塔计算出的值带入到下一个时间步长的udf中去。 矛盾点是udf 只有一套,每次迭代都跑一遍,,,,,,,,,,,,,,,,,,,,,,,,, 我想过用udm 将上一个时间步长计算结果保存到udm中,然后在下一个时间步长的udf中再调用,可是我始终无法实现这个想法。
我不知道我这个想法靠不靠谱,或者说udm能不能实现这个功能。如果能实现的话,请大神给予指导。
总共就这一点金币全给上了,多谢了。 不知道我描述的清不清楚,有问题请留言给我我再细说。 返回小木虫查看更多
今日热帖
我又改了下,不用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). 请你帮我看看我的代码哪里出问题了。 多谢了
,
我的计算模型是一个简单的固体传热模型,考虑到固体融化问题,其中有一层固体有自热反应,反应速率和温度相关,其实并不涉及流域,但是因为要模拟融化,我把融化那一层设置为液体才能定义相变温度和相变热。
你的计算域是只有一个还是分成了2个?两个C文件完全可以放在一个C文件中编译。
请问初始化出错如何解决的,谢谢
能不能 把要解的微分方程组先亮出来?
请问楼主问题解决了吗?我也想知道如何将上一个时间步长的udf中的值带入到下一个时间步长的udf中去,用UDM存储了上一个时间步的值,下一个时间步怎么调用啊?跪求楼主回帖