感谢西安交通大学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各个宏的调用顺序的更多相关文章

  1. 一个简单的样例看明确怎样利用window.location.hash实现ajax操作时浏览器的前进/后退功能

    我们知道JavaScript中非常早就提供了window.history对象,利用history对象的forward().go().back()方法可以方便实现不同页面之间的前进.后退等这样的导航功能 ...

  2. IDDD 实现领域驱动设计-一个简单业务用例的回顾和理解

    上一篇:<IDDD 实现领域驱动设计-由贫血导致的失忆症> 这篇博文是对<实现领域驱动设计>第一章后半部分内容的理解. Domain Experts-领域专家 这节点内容是昨天 ...

  3. 使用CEF(二)— 基于VS2019编写一个简单CEF样例

    使用CEF(二)- 基于VS2019编写一个简单CEF样例 在这一节中,本人将会在Windows下使用VS2019创建一个空白的C++Windows Desktop Application项目,逐步进 ...

  4. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

  5. socket编程——一个简单的样例

    从一个简单的使用TCP样例開始socket编程,其基本过程例如以下: server                                                  client ++ ...

  6. 一则简单演示样例看Oracle的“无私”健壮性

    Oracle的强大之处就在于他能总帮助让你选择正确的运行计划,即使你给了它错误的指示. 实验: 1. 创建測试表: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZ ...

  7. 一个简单的Webservice的demo(中)_前端页面调用

    首先新建项目,这里有两种调用方式,为了能方便理解,新建页面WebserviceTest如下图: 先引用写好的服务,这里用上次写好的服务.见上次写的一个简单的Webservice的demo,简单模拟服务 ...

  8. 一个简单的C共享库的创建及Python调用此库的方法

    /********************************************************************* * Author  : Samson * Date    ...

  9. python:什么是单例?一个简单的单例

    单例:即一个类只能生成唯一的一个实例,python中的类如果没有被实例化,则cls._instance为None 如下: class Singleton(object): def __new__(cl ...

随机推荐

  1. Boleto 银行付款

    Boleto是由多家巴西银行共同支持的一种支付方式,在巴西占据绝对主导地位,客户可以到巴西任何一家银行.ATM机.caipiao网点或使用网上银行授权银行转账. 该支付渠道有如下特点:1. 一旦付款, ...

  2. CDN: trunk Repo update failed - CocoaPods

    解决方案: 1.podfile文件中添加source源:  source 'https://github.com/CocoaPods/Specs.git' 2.执行 pod repo remove t ...

  3. C/C++ 函数参数传递:传值,传指针,传引用

    前面我们介绍了函数的调用约定,明白了函数调用者与被调用者之间传递参数的顺序与如何进行栈恢复的. 实际上,函数调用者如何将参数传递给被调用者也是有讲究的. 总的来说,函数参数传递分为3种情况:传值,传指 ...

  4. ELK日志分析

    1. 为什么用到ELK 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获取自己想要的信息.但是规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎 ...

  5. Linux操作系统内核参数

    Linux操作系统内核参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一./proc目录 /proc目录: 内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系 ...

  6. Nginx下隐藏index.php

    在用NGINX搭建web网站时遇到一个问题,那就是除了网站的首页能够正常打开,其他的子网站都打不开,显示找不到文件.但是如果你在网址后面加上index.php,子网站就又可以打开了.那么我们怎么才能不 ...

  7. centos 启动 oracle

    source .bash_profile su - oracle //切换到自己的oracle账户   lsnrctl start //启动oracle监听   sqlplus /nolog //登录 ...

  8. css overflow失效的原因

    声明 转载自https://my.oschina.net/xuqianwen/blog/540587 项目中常常有同学遇到这样的问题,现象是给元素设置了overflow:hidden,但超出容器的部分 ...

  9. Django如何与JQuery进行数据通信?

    index.html: 下面form的action属性表示当提交表单时,向何处发送表单数据 <script src="https://code.jquery.com/jquery-3. ...

  10. 拖拽插件SortableJS

    在项目中,经常会遇到一些涉及到拖拽的需求,github上面有一个开源的SortableJS的插件,支持Vue,React,Angular等多种框架,实现效果很好,基本可以满足大部分的需求,下面就第一次 ...