当变量超过任意设定的变量限制时终止fluent模拟【翻译】

时间:2022-09-02 12:56:09

一些时候某个特定的变量(压力,速度,温度等)发散会造成不合理的计算结果。在许多算例,当变量超过某些合理的限制时,自动停止/打断模拟是有帮助的。

解决方法是联合UDF和scheme文件。UDF将会遍历所有的单元并且当任意用户定义的限制被超过时会将标识符开启。接下来的这个算例中我们不希望速度超过1.5m/ s

UDF代码如下:

#include "udf.h"

#include "math.h"

#include "var.h"

DEFINE_ADJUST(interrupt_fcn, d)

{

Thread *t;

cell_t c;

int x = 0;

thread_loop_c(t,d)  /
*遍历所有的计算域*/

{

begin_c_loop(c,t)  
/ *遍历所有的单元*/

{

if(sqrt(C_U(c,t)*C_U(c,t)+C_V(c,t)*C_V(c,t)+C_W(c,t)*C_W(c,t))>1.5)
/ *如果有单元的速度超过1.5m/s*/

{

x=1;   
/ *设置x的值为1*/

break;  /
*跳出循环*/

}

}

end_c_loop(c,t)

break;  /
*跳出对计算域的循环*/

}

x=PRF_GIHIGH1(x); / *
PRF_GIHIGH1计算x的最大值并返回*/

if(x==1)

RP_Set_Integer("interrupt/ flag",1); /
*转换表示符*/

}

Scheme代码:

(rp-var-define 'interrupt/flag 0 'integer #f)

(define (interrupt)

    
(if (> (%rp-var-value 'interrupt/flag) 0)

    
(cx-interrupt)))

步骤如下:


用户读入case/data文件,scheme文件和UDF


挂载“interrupt_fcn”到adjust函数


在Solve-Execute Commands面板输入"(interrupt)"

完成以上步骤,一旦启动fluent进行模拟,scheme文件会在速度超过1.5m/s时打断模拟,结果可以给出即将发散的点/原因。

当变量超过任意设定的变量限制时终止fluent模拟【翻译】的更多相关文章

  1. 设定报表变量的CharSpacing

    设定报表变量的CharSpacing字符间距,预览时都没问题, 间距大的字与字之间拉得比较大,但在大多数电脑打印时和预览的结果一样,但有些电脑打印出来却跟没有设间距一样?

  2. 手动设定实例变量的KVO实现监听

    手动设定实例变量的KVO实现监听 如果将一个对象设定成属性,这个属性是自动支持KVO的,如果这个对象是一个实例变量,那么,这个KVO是需要我们自己来实现的. 以下给出源码供君测试: Student.h ...

  3. Linux设定系统变量和单个用户的环境变量问题

    环境为Ubuntu. 设定系统变量意思就是所有用户都可以使用设定的环境变量,而设定用户的单个环境变量意思就是只有设定环境的该用户才可以使用这个环境变量. 这里以java的jdk环境变量JAVA_HOM ...

  4. linux下 export只能设定临时变量

    今天在调用ABBYY API的时候,需要传递APPID和APPPASSWD给系统环境才能够执行相应的python调用代码. 设置之后,因为写代码自己关掉了terminal,后面直接运行报错,访问权限不 ...

  5. C语言探索之旅】 第一部分第四课第三章:变量的世界之显示变量内容

    内容简介 1.课程大纲 2.第一部分第四课第三章:变量的世界之显示变量内容 3.第一部分第五课预告:基本运算 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用 ...

  6. Linux编程 11(shell全局环境变量与局变环境变量)

    一.概述 在linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的 ...

  7. java入门---变量类型&类变量&局部变量&实例变量&静态变量

        在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下:     type identifier [ = value][, identifier [= value] ...] ; ...

  8. php面试题7(1、unset变量是删除栈变量,并不删除堆变量)(2、php爬虫特别简单: 可以file_get_contents和直接fopen)

    php面试题7(1.unset变量是删除栈变量,并不删除堆变量)(2.php爬虫特别简单: 可以file_get_contents和直接fopen) 一.总结 1.unset变量是删除栈变量,并不删除 ...

  9. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

随机推荐

  1. mvc2/3/4_伪静态_路由配置

    一.路由规则: routes.MapRoute(                name: "Default2",                url: "{contr ...

  2. Linux下的字符集问题

    怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导 ...

  3. Java多线程练习

    国际惯例,先贴出代码 package jiankong; import java.util.Date; public class jiankong { public static void main( ...

  4. 基于Predictive Parsing的ABNF语法分析器(十三)——rulelist、rule、rulename、define-as和elements

    我们来看看rulelist,它是整个ABNF文法的入口,就是说一个ABNF文法就是一个规则列表rulelist.一个rulelist由若干个rule规则组成,每个rule由规则名rulename.定义 ...

  5. C# .NET ASP.NET 其中关系你了解多少

    有些人一直在做这方面..但突然有人来问你这些问题..估计有很多答不上来. 1..NET是一个平台,一个抽象的平台的概念. .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台. 个人理解. ...

  6. JavaScript数组学习总结

    数组   数组 1.数组:数组是一组数据(数据类型不限,任意)的有序集合===>我们写代码,一般一个数组只放一种数据类型的数据 2.我们写代码,一般一个数组只放一种类型的数据 3.注意: 大多数 ...

  7. linux下mysql升级

    最近漏洞扫描,扫描出了数据库存在中高危漏洞,于是迫切需要进行数据库升级.上网查了各种资料,说法很多,也到自己虚拟机上试了好多方法,终于倒腾出来,做下小总结记录一下. 升级操作: 1.到mysql官网h ...

  8. WIN32控件使用系统样式

    定义如下即可: #ifdef _M_IX86 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Mi ...

  9. [Qt扒手] PyQt5 基础绘画例子

    [说明] 好吧,坦白从宽,我是Qt扒手(不要鄙视我).这是我根据qt官网提供的C++版本的例子(http://doc.qt.io/qt-5/qtwidgets-painting-basicdrawin ...

  10. POPSpring动画参数详解

    POPSpring动画参数详解 效果 源码 https://github.com/YouXianMing/Animations // // POPSpringParameterController.m ...