初始化错误——从一个简单的算例看UDF各个宏的调用顺序
感谢西安交通大学en_phert的问题和尝试
Fluent版本:Fluent 19.0
Visual Studio版本:Visual Studio 2013
在UDF的宏的调用中大家常看见下图:

这个图很容易给大家造成一个误解就是DEFINE_PROFILE是在初始化以后,在运算的过程当中更新物性参数的时候才会调用DEFINE_PROFILE宏
而帮助文档当中各个宏的调用顺序如下图:


从上面两幅图中我们可以看出其实在初始化以前,我们就会调用DEFINE_PROFILE宏,这也就能说明为什么我们在使用UDF的时候,分明只编写了修改边界的DEFINE_PROFILE宏,结果在初始化的时候却造成了Received signal SIGSEGV的错误

下面我们从一个简单算例来验证各个宏的调用顺序
算例来源于:https://confluence.cornell.edu/display/SIMULATION/FLUENT+-+Laminar+Pipe+Flow
对于边界条件来说,我们不直接在GUI当中指定数值,而是使用下面的UDF来指定,UDF中可以有输出信息,这样我们就可以通过控制台输出的信息,观察到对应的宏什么时候被调用。



首先挂载DEFINE_INIT宏和DEFINE_ADJUST宏




入口边界我们用UDF来代替

我们初始化
在我们选择标准初始化,在compute from中选择inlet,我们可以在Fluent的控制台中看到DEFINE_PROFILE宏被调用了一次


点击“Initialize”按钮


点击“Calculate”按钮开始计算




从上面的分析我们可以看到实际上的调用顺序和帮助文档里面的顺序是一致的,也可以再重新绘制如下图:

如果我们编写如下的DEFINE_PROFILE宏

那么我们就会在初始化的时候造成Received signal SIGSEGV的错误

这是因为没有对指针a赋值,a指针是一个野指针,当我们去获取它所指向的值的时候,无法返回正确的值造成的,然而在初始化以前我们会去调用DEFINE_PROFILE这个宏,从而出现了错误。
初始化错误——从一个简单的算例看UDF各个宏的调用顺序的更多相关文章
- 一个简单的样例看明确怎样利用window.location.hash实现ajax操作时浏览器的前进/后退功能
我们知道JavaScript中非常早就提供了window.history对象,利用history对象的forward().go().back()方法可以方便实现不同页面之间的前进.后退等这样的导航功能 ...
- IDDD 实现领域驱动设计-一个简单业务用例的回顾和理解
上一篇:<IDDD 实现领域驱动设计-由贫血导致的失忆症> 这篇博文是对<实现领域驱动设计>第一章后半部分内容的理解. Domain Experts-领域专家 这节点内容是昨天 ...
- 使用CEF(二)— 基于VS2019编写一个简单CEF样例
使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...
- JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例
什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...
- socket编程——一个简单的样例
从一个简单的使用TCP样例開始socket编程,其基本过程例如以下: server client ++ ...
- 一则简单演示样例看Oracle的“无私”健壮性
Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...
- 一个简单的Webservice的demo(中)_前端页面调用
首先新建项目,这里有两种调用方式,为了能方便理解,新建页面WebserviceTest如下图: 先引用写好的服务,这里用上次写好的服务.见上次写的一个简单的Webservice的demo,简单模拟服务 ...
- 一个简单的C共享库的创建及Python调用此库的方法
/********************************************************************* * Author : Samson * Date ...
- python:什么是单例?一个简单的单例
单例:即一个类只能生成唯一的一个实例,python中的类如果没有被实例化,则cls._instance为None 如下: class Singleton(object): def __new__(cl ...
随机推荐
- Date+闭包
date类: var time=new.date() get date() 返回一个月中的某一天 get day () 返回一周中的某一天 get fullyear() 对象以四位数返回年份 get ...
- grid网格布局——色子布局
一.基本概念 样式 含义 grid-area 定义名称 grid-auto-columns 定义列数 grid-auto-flow 定义单元格流动方向(想象水流的样子) grid-auto-rows ...
- Beego 学习笔记二:第一个项目
第一个MVC项目 1> 使用beego命令,创建一个项目 首先切换到创建项目的位置,输入bee new firstweb命令,创建成功之后会出现一个名为firstweb的文件夹 2> ...
- Workerman启动与停止相关命令
start.php为入口文件 一.启动 1.以debug(调试)方式启动 php start.php start 2.以daemon(守护进程)方式启动 php start.php start -d ...
- android scroller用法及属性
正文 一.结构 public class Scroller extends Object java.lang.Object android.widget.Scroller 二.概述 这个类封装了滚动操 ...
- Hive安装部署与配置
Hive安装部署与配置 1.1 Hive安装地址 1)Hive官网地址: http://hive.apache.org/ 2)文档查看地址: https://cwiki.apache.org/conf ...
- MongoDB(NoSQL) 非关系型数据库
目录 简单了解 mongoDB 简单使用mongoDB 简单了解 mongoDB # NoSQL 泛指非关系型的数据库 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅 ...
- [STM32].NVIC嵌套中断向量的理解
转自:http://www.21ic.com/embed/jiaocheng/sheji/201209/5634.html 一.STM32 (Cortex-M3) 中的优先级概念 STM32(Cort ...
- linux设备驱动程序--在用户空间注册文件接口
linux字符设备驱动程序--创建设备节点 基于4.14内核,运行在beagleBone green 在上一讲中,我们写了第一个linux设备驱动程序--hello_world,在驱动程序中,我们什么 ...
- C语言printf函数转换说明表及其修饰符表
请求printf()函数打印数据的指令要与打印数据的类型匹配. 例如, 打印整数时使用%d, 打印字符是使用%c. 这些符号被称为转换说明, 他们指定了数据转换称可显示的形式. 1. ANSI C标准 ...