Fluent 中Domain和thread的个人理解

Fluent 中Domain和thread的个人理解


简单理解,Domain的级别要比Thread的级别高。
先看这个汇总
在这里插入图片描述

Domain

对于多相流,以焊接过程的两相为列,保护气和金属,空气和铝吧。焊接过程中始终有3个相场,混合相区域,空气相区域和铝相区域。
注意,混合相区域(mix-domain)ID始终为1.在其他的例子力也是一样的。另外的空气区域和铝的区域的ID看界面,如下:
空气相ID
在这里插入图片描述铝相ID
在这里插入图片描述

Domain_ID

目前用到的这个功能就在初始化的时候用过。用ID号来区分不同区域中的同一个位置的初始状态。

sub_domain_loop(subdomain,d,phase_domain_index)  
	{
		if (DOMAIN_ID(subdomain) == 2)
			thread_loop_c(t,subdomain)
			{
				begin_c_loop(c,t)
				{
	               //判断
				}
				end_c_loop(c,t)
			}
			}
		if (DOMAIN_ID(subdomain) == 3)
			thread_loop_c(t,subdomain)
			{
				begin_c_loop(c,t)
				{
	               //判断
				}
				end_c_loop(c,t)
			}
	}	
	

DOMAIN_SUB_DOMAIN

DOMAIN_SUB_DOMAIN宏需要两个参数:混合相的domain指针及相索引

混合相的domain指针由Fluent内核传递进来,相索引需要手工指定。

对于主相,其相索引为0,而次相的索引则按照Multiphase Model对话框中各相的排列顺序依次累加。如下图所示,主相的相索引为0,次相的索引为1。如何还有另外的相索引号就依次累加
在这里插入图片描述

/**********************************************************
这里要注意:这里的相的索引和ID号要区分!!
再次强调:主相索引为0,不是下面的ID号!!
/**********************************************************

Thread

前面找了区域(domain),接下来对区域中的体或者面操作的时候就要用thread了。

THREAD_SUB_THREAD

这里也要注意,与Domain类似,主相的索引始终为0,次相索引按对话框中相索引依次递加。

若已知主相和次相的Thread指针,也可以通过THREAD_SUPER_THREAD获取混合相的Thread指针。

可以参考这里:Fluent UDF中的Domain与Thread

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fluent ,您可以使用 User Defined Function (UDF) 遍历每个粒子的信息。下面是一个示例 UDF,它遍历了在域定义的每个粒子,并输出了它们的 ID 和速度信息: ``` #include "udf.h" DEFINE_ON_DEMAND(print_particle_info) { Domain *domain = Get_Domain(1); Particle *particle = NULL; /* 遍历域的每个粒子 */ thread_loop_c (t, domain) { begin_c_loop(particle, t) { /* 输出粒子的 ID 和速度信息 */ Message("Particle ID: %d, Velocity: (%f, %f, %f)\n", particle->id, particle->V[0], particle->V[1], particle->V[2]); } end_c_loop(particle, t) } } ``` 在上面的 UDF ,我们使用 `begin_c_loop` 和 `end_c_loop` 宏遍历了域的每个粒子,并使用 `Message` 函数输出了每个粒子的 ID 和速度信息。 要在 Fluent 使用该 UDF,请按照以下步骤操作: 1. 打开 Fluent,选择您的工作目录和文件; 2. 在 Fluent 启用粒子追踪功能; 3. 编译并加载该 UDF; 4. 在 Fluent 运行该 UDF,以遍历每个粒子并输出其信息。 您可以使用 FLUENT 自带的编译器 `fluent3DMotionUdf` 来编译该 UDF。在 Fluent ,选择“解决方案”→“用户定义”→“编译 UDF”,在弹出的对话框选择该 UDF 文件,然后单击“编译”按钮。 编译成功后,可以使用 `load` 命令将该 UDF 加载到 Fluent : ``` (load "udf/libudf") ``` 加载成功后,您可以使用 `print_particle_info` 命令在 Fluent 运行该 UDF: ``` (print_particle_info) ``` Fluent 将遍历每个粒子并输出其 ID 和速度信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值