1.只获取报告中的差值,并打印到控制台。(注意报告的名称要一致)
#include "udf.h"
/* 全局变量用于存储上一个值 */
static real previous_value = 0.0;
DEFINE_EXECUTE_AT_END(compute_report_difference)
{
int nrOfValues = 1;
real* values = (real*)malloc(sizeof(real) * nrOfValues);
// 获取报告的值,在Fluent中创建的报告的名字为report-stdg
int rv = Get_Report_Definition_Values("report-press-rss", 1, NULL, values, NULL, NULL);
if (rv != 0)
{
Message("Error retrieving report values.\n");
free(values);
return;
}
// 获取当前值
real current_value = values[0];
// 计算当前值和上一个值的差值
real difference = current_value - previous_value;
// 打印差值
Message("Difference from previous value = %f\n", difference);
// 更新上一个值
previous_value = current_value;
// 释放分配的内存
free(values);
}
2.获取报告中的差值,并更改源项大小
#include "udf.h"
/* 全局变量用于存储上一个值 */
static real previous_value = 0.0;
/* 全局变量用于存储质量源项 */
static real mass_source = 1450.0;
/* 定义计算报告差值的函数 */
DEFINE_EXECUTE_AT_END(compute_report_difference)
{
int nrOfValues = 1;
real* values = (real*)malloc(sizeof(real) * nrOfValues);
// 获取报告的值,在Fluent中创建的报告的名字为report-press-rss
int rv = Get_Report_Definition_Values("report-press-rss", 1, NULL, values, NULL, NULL);
if (rv != 0)
{
Message("Error retrieving report values.\n");
free(values);
return;
}
// 获取当前值
real current_value = values[0];
// 计算当前值和上一个值的差值
real difference = current_value - previous_value;
// 打印差值
Message("Difference from previous value = %f\n", difference);
// 检查差值是否小于1500,如果是则增加质量源项
if (difference <= 2670.0)
{
mass_source += 1.0;
Message("Mass source increased by 3.0\n");
}
else if (difference > 2670.0)
{
mass_source -= 1.0;
Message("Mass source decreased by 3.0\n");
}
// 打印累加后的质量源项值
Message("Updated mass source = %f\n", mass_source);
// 更新上一个值
previous_value = current_value;
// 释放分配的内存
free(values);
}
/* 定义质量源项函数 */
DEFINE_SOURCE(mass_source_term, cell, thread, dS, eqn)
{
real source = mass_source;
/* 这里可以根据需要设置对源项的导数 */
dS[eqn] = 0.0;
return source;
}