初始化错误——从一个简单的算例看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 ...
随机推荐
- 面向对象——组合、封装、访问限制机制、property内置装饰器
面向对象--组合.封装.访问限制机制.property 组合 什么是组合? 组合指的是一个对象中,包含另一个或多个对象 为什么要组合? 减少代码的冗余 怎么用组合? # 综合实现 # 父类 class ...
- Python基础8
jupyter notebook 安装目录插件, 步骤
- comet oj #7
A 签到题 题目描述 多次询问,每次询问给一个值域范围 [l,r][l,r],要回答下列四个问题: 从这个范围内选出两个整数(两个数可相同), (1) 这两个数的最小公倍数最大是多少? (2) 这两个 ...
- 浏览网页隐藏服务器IP
host文件修改 notepad %windir%\system32\drivers\etc\hosts 目标IP localhost.autumn.com 可能会导致HTTP Status Code ...
- 【Mysql技术内幕InnoDB存储引擎】读书笔记
一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...
- php curl 转为 x-www-form-urlencoded 方式的坑
网上转变的方法基本都是写添加下面这句: curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-fo ...
- Python数据分析 之时间序列基础
1. 时间序列基础 import numpy as np import pandas as pd np.random.seed(12345) import matplotlib.pyplot as p ...
- sed - 文本三剑客之编辑功能
sed - stream editor for filtering and transforming text Sed是一个流编辑器.流编辑器用于对输入流(文件或管道输入)执行基本的文本转换.虽然在某 ...
- zabbix--4.0源码安装
Zabbix4.0 源码编译安装 ps:其实相对 zabbix 来说,直接按照官网 yum 安装还是要方便点,我这里已经有 lnmp 的环境了,就想自己编译安装试下. 官网yum安装中文文档:http ...
- VMware虚拟化kvm安装部署总结
虚拟化 1.环境 Centos7.3 关闭selinux,关闭防火墙 2.虚拟化环境配置 2.1 kvm部署安装 1. VMware 配置桥接模式 2.bios开启虚拟机,以本地台式机为例, 重启动电 ...