OFtutorial01_inputOutput解析

news/2024/11/17 15:39:49/文章来源:https://www.cnblogs.com/ouqiyo/p/18350642

OFtutorial1.C

源码解析

#include "fvCFD.H"int main(int argc, char *argv[])
{// Initialise OF case#include "setRootCase.H"// These two create the time system (instance called runTime) and fvMesh (instance called mesh).#include "createTime.H"<details>#include "createMesh.H"// ---// Get access to a custom dictionarydictionary customDict;const word dictName("customProperties");#定义一个word对象dictName,用来存放customProperties文件名称// Create and input-output object - this holds the path to the dict and its nameIOobject dictIO(dictName, // name of the filemesh.time().constant(), // path to where the file ismesh, // reference to the mesh needed by the constructorIOobject::MUST_READ // indicate that reading this dictionary is compulsory);// Check the if the dictionary is present and follows the OF formatif (!dictIO.typeHeaderOk<dictionary>(true))FatalErrorIn(args.executable()) << "Cannot open specified refinement dictionary "<< dictName << exit(FatalError);// Initialise the dictionary objectcustomDict = IOdictionary(dictIO);// ---// Read various pieces of information from the main part of the dictionary// Lookup which does not need to be told what type of variable we're looking for and// uses the standard C++ stringstream syntaxword someWord;customDict.lookup("someWord") >> someWord;// This template method needs to know the type of the variable and can provide// a default value if the entry is not found in the dictionaryscalar someScalar( customDict.lookupOrDefault<scalar>("someScalar", 1.0) );#定义一个scalar类对象someScalar, 这个字典对象customDict的lookup函数找到这个对象customDict的关键词"someScalar"的值,然后放入someScalar中去。如果没有,默认为1.// A switch is a neat feature allowing boolean values to be read from a dict,// it supports the OpenFOAM yes/on/true/1 and no/off/false/0 values automatically.bool someBool ( customDict.lookupOrDefault<Switch>("someBool",true) );#定义一个bool类对象someBool,这个对象someBool通过字典对象customDict的lookup函数找到这个对象customDict的关键词" someBool "的值,然后放入someBool中去。// Lists of values may also be read in the same wayList<scalar> someList ( customDict.lookup("someList") );// This type of container is particularly interesting - it associates entries with// given key values (here of word type but can be anything); useful when// associating things by indices in a list is less handyHashTable<vector,word> someHashTable ( customDict.lookup("someHashTable") );// Summarise what's been read and print in the consoleInfo << nl << "Read the following:" << nl << nl<< "someWord " << someWord << nl << nl<< "someScalar " << someScalar << nl << nl<< "someList " << someList << nl << nl<< "someHashTable " << someHashTable << nl << nl<< "someBool " << someBool << nl << nl<< endl;// ---// Create a custom directory and write an output file// Create the output path directoryfileName outputDir = mesh.time().path()/"postProcessing";// Creathe the directorymkDir(outputDir);// File pointer to direct the output toautoPtr<OFstream> outputFilePtr;// Open the file in the newly created directoryoutputFilePtr.reset(new OFstream(outputDir/"customOutputFile.dat"));// Write stuffoutputFilePtr() << "# This is a header" << endl;outputFilePtr() << "0 1 2 3 4 5" << endl;// Append to the imported hash table and wirte it toosomeHashTable.insert("newKey", vector(1., 0., 0.));outputFilePtr() << someHashTable << endl;Info<< "End\n" << endl;return 0;
}

小结

该求解器读取customProperties文件中的内容并将需要的内容输出到customOutputFile.dat中

Make、Allwclean、Allwmake

这三个文件(目录)与上期OFtutorial00_helloWorld解析类似,此处不做赘述

testcase

组成如图所示

与OFtutorial00相同,没有调用system、constant(除customProperties外)中的文件,其内容可以忽略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/780270.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Motrix下载器使用教程

使用浏览器下载通常会有速度慢的问题,需要借助一些下载管理器软件来进行提速,但有的下载器存在广告多、或者需要付费成为会员才能享受高速下载。这里介绍的Motrix是一款无广告、免费、开源的下载软件,目前使用体验不错,使用方法也很简单。 下载安装前往官网进行下载:https…

宏基因组实战之:质控去宿主

1、测序数据 数据来源于密歇根大学的一项研究,数据项目号为PRJNA389927。这个研究项目的包括正常、癌前病变和癌症病人样本共181例。项目对应的github地址:https://github.com/SchlossLab/Hannigan_CRCVirome_mBio_2018 ,也可以直接去ebi网站下载这个项目的原始测序数据,会…

宏基因组实战之:公开数据下载

1、测序数据 数据来源于密歇根大学的一项研究,数据项目号为PRJNA389927。这个研究项目的包括正常、癌前病变和癌症病人样本共181例。项目对应的github地址:https://github.com/SchlossLab/Hannigan_CRCVirome_mBio_2018 ,也可以直接去ebi网站下载这个项目的原始测序数据,会…

在Power BI表或矩阵中创建迷你图

第一部分:什么是迷你图? Power BI目前已支持在表或矩阵添加迷你图(迷你图功能目前为预览版)。迷你图可以方便用户快速查看和比较趋势,同时可以突出显示最大值和最小值等等,非常实用。 样例图: 前期准备:开启迷你图功能 默认情况下,迷你图应是开启的状态。由于大家使用…

程序员壁纸合集分享,最后一张有惊喜

周五轻松一下,给大家分享一些程序员有关的壁纸,看到最后一张有惊喜哦~大家好,我是程序员鱼皮,今天轻松一下,给大家分享一些程序员有关的壁纸,看到最后一张有惊喜哦~经典壁纸 神图镇楼:希望这张壁纸不要成真:这是程序员每天的生活么?有多少人能看懂这张图的意思?01 是…

C语言(三)函数与文件

C语言(三)函数与文件 1. 函数定义与声明 作用:将一段经常使用的代码封装起来,减少重复代码 函数的定义一般主要有5个步骤:返回值类型:一个函数可以返回一个值。在函数定义中; 函数名:给函数起个名称; 参数列表:使用该函数时,传入的数据; 函数体语句:花括号内的代码…

Python按条件删除Excel表格数据的方法

本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据剔除,保留符合我们需要的数据的方法~本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据…

git rebase重定基时冲突,文件损坏出现HEAD标志一键删除

我遇到这种情况,我去找同类文章,结果他们说删除就行了,(要是我能一键修复还用得着你?) 终于在Github Docs找到了一键删除的方法:git rebase --abort第二解决方法: 使用VSCode

git合并代码时冲突,文件损坏出现HEAD标志一键删除

我遇到这种情况,我去找同类文章,结果他们说删除就行了,(要是我能一键修复还用得着你?) 我的解决方法: 使用VSCode

一文读懂银企直联

中国企业财资管理发展的二十年,也是银企直联发展的二十年。作为财资管理的底层技术支撑,银企直联一直是中国财资管理行业发展道路上的基石。通过银企直联,企业不仅可以实现跨银行的全局账户视通和足不出户的企业直联支付,还能实现跨银行的资金自动归集。然而,银企直联的建…

Springboot+logback+druid +密码加密 实现业务日志入库

springboot 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedruid:# 主库数据源master:driverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://xxx:3306/dbName?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertTo…