Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. Fluent
  3. DEFINE_ON_DEMAND 的循环

DEFINE_ON_DEMAND 的循环

已定时 已固定 已锁定 已移动 Fluent
6 帖子 4 发布者 6.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 两月三年两 离线
    两月三年两 离线
    两月三年
    写于 最后由 编辑
    #1

    我想使用DEFINE_ON_DEMAND(Phi1)函数计算场协同数
    0_1538732467216_8ee8f3c5-8b35-4672-9f19-9530424e1d2f-image.png
    然后我的代码

    DEFINE_ON_DEMAND(Phi1)
    {
    	Thread *t;
    	face_t f;
    	Domain *d;
    	real T_diff,T_diff2,Phi,m,n;
    	real i = 0.0;
    	real T_sum = 0.0;
    	real T_sum2 = 0.0;
    	cell_t c;
    	m = 169;	/*m,n 分别表示平面网格个数*/
    	n = 119;	/*目前节点数为  170x120 */
    	d = Get_Domain(1);
    	{
    		thread_loop_c(t,d)
    		{
    			begin_c_loop(c,t)
    			{
    				T_diff = C_UDSI(c,t,1)-C_UDSI(c,t,0);
    				T_diff2 = pow(C_UDSI(c,t,1)-C_UDSI(c,t,0),2);
    				T_sum += T_diff; 
    				T_sum2 += T_diff2;
    				Message("T_diff is:   %d..\n", T_diff);
    				Message("T_diff2 is:   %d..\n", T_diff2);
    				i += 1;
    				Message("i is:   %d..\n", i);
    			}
    			end_c_loop(c,t)
    		}
    		Phi = T_sum/pow(m*n*T_sum2,0.5);
    		Message("count is:   %d..\n", i);
    		Message("T_sum is:   %d..\n", T_sum);
    		Message("T_sum2 is:   %d..\n", T_sum2);
    		Message("Field Synergy Phi is:   %d..\n", Phi);
    	}
    }
    

    C_UDSI(c,t,1),C_UDSI(c,t,0) 分别表示固体和气体温度,不知道哪里有问题?

    那都是很好很好的,可是我偏不喜欢。

    J 1 条回复 最后回复
  • AstremonA 离线
    AstremonA 离线
    Astremon
    写于 最后由 编辑
    #2

    DEFINE_ON_DEMAND只在你需要执行的时候执行一次。所以不能再迭代的时候重复使用。如果药循环计算,可以用DEFINE_EXECUTE_AT_END。

    两月三年两 1 条回复 最后回复
  • 两月三年两 离线
    两月三年两 离线
    两月三年
    在 中回复了 Astremon 最后由 编辑
    #3

    @astremon 对,我就是只是在模拟结束以后计算这个数值,我有看过使用这个函数得到一个自定义内存的场,然后按照我的想法修改了一下,函数里面的循环难道不是挨个获取网格cell的结果吗,还是我的理解有问题,如果可以的话是否可以帮忙把这个公式的代码编写一下(按照我的理解代码应该就是我写的样子,可是我算的结果还是有问题),谢谢!

    那都是很好很好的,可是我偏不喜欢。

    1 条回复 最后回复
  • J 离线
    J 离线
    jackstraw
    在 中回复了 两月三年 最后由 编辑
    #4

    @两月三年 你这出来的结果是什么,陷入死循环吗还是?

    1 条回复 最后回复
  • L 离线
    L 离线
    l.j刘侃
    写于 最后由 编辑
    #5

    A segmentation fault

    1 条回复 最后回复
  • L 离线
    L 离线
    l.j刘侃
    写于 最后由 编辑
    #6

    一个单核代码能出错其实还是不常见的

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]