FLUENT-UDF日记-5-DEFINE_EXECUTE_ON_LOADING

本文介绍了ANSYS Fluent中DEFINE_EXECUTE_ON_LOADING的用途,它用于在加载UDF库后立即执行指定函数,以进行初始化或设置UDF模型。文中通过一个示例展示了一个EXECUTE_ON_LOADING函数如何为库预留UDM并设置其名称,以及一个ON_DEMAND函数如何在算例初始化后设置UDM位置的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.2.6 DEFINE_EXECUTE_ON_LOADING

DEFINE_EXECUTE_ON_LOADING可用于指定在ANSYS Fluent中载入已编译的UDF库后立即执行的函数。适用于在载入UDF库时初始化或设置UDF模型。

example

以下源代码包含两个UDF。第一个UDF是EXECUTE_ON_LOADING函数,用于为库保留三个UDM(使用RESERVER_USER_MEMORY_VARS),并为UDM位置设置唯一名称(使用SET_USER_MEMORY_NAME)。第二个UDF是ON_DEMAND函数,用于在算例初始化后设置UDM位置的值。ON_DEMAND UDF使用UDM_OFFSET设置UDM位置的初始值。注意,必须在算例初始化之后执行UDF,以重置UDM的初始值。

#include "udf.h"
#define NUM_UDM 3 
static int udm_offset = UDM_UNRESERVED;
 DEFINE_EXECUTE_ON_LOADING(on_loading, libname)
 {
    if (udm_offset == UDM_UNRESERVED) 
    udm_offset = Reserve_User_Memory_Vars(NUM_UDM);
    if (udm_offset == UDM_UNRESERVED)
        Message("\nYou need to define up to %d extra UDMs in GUI and then reload current library %s\n", NUM_UDM, libname);
    else
      {
         Message("%d UDMs have been reserved by the current library %s\n",NUM_UDM, libname);
         Set_User_Memory_Name(udm_offset,"lib1-UDM-0");
         Set_User_Memory_Name(udm_offset+1,"lib1-UDM-1");
         Set_User_Memory_Name(udm_offset+2,"lib1-UDM-2");
      }
    Message("\nUDM Offset for Current Loaded Library = %d",udm_offset);
 }
 DEFINE_ON_DEMAND(set_udms)
 {
    Domain *d;
    Thread *ct;
    cell_t c;
    int i; 
    d=Get_Domain(1);
    if(udm_offset != UDM_UNRESERVED)
      {
      Message("Setting UDMs\n");
         for (i=0;i<NUM_UDM;i++)
           {
              thread_loop_c(ct,d)
                {
                   begin_c_loop(c,ct)
                     {
                      C_UDMI(c,ct,udm_offset+i)=3.0+i/10.0;
                     }
                   end_c_loop(c,ct)
                }
             }
        }
        else
          Message("UDMs have not yet been reserved for library 1\n");
 }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值