openfoam UPstream类探索(二)
前言
接上次的博文,本篇补全以下几个函数的介绍:
Pstream::nProcs()
Pstream::parRun()
UPstream::exit()
简述几个常用的函数如下:
Pstream::nProcs()
openfoam对其的介绍是:
Number of processes in parallel run.
//- Number of processes in parallel run
static label nProcs(const label communicator = 0)
{
return procIDs_[communicator].size();
}
Foam::DynamicList<int> Foam::UPstream::myProcNo_(10);
//- List of process IDs
static DynamicList<List<int>> procIDs_;
Pstream::nProcs()与上篇我们介绍的函数Pstream::myProcNo()非常相似,
Pstream::nProcs()的介绍是Number of processes in parallel run
Pstream::myProcNo()的介绍是Number of this process (starting from masterNo() = 0)
按照这个程序释义来说,Pstream::nProcs()返回的是并行计算中进程的数量,而Pstream::myProcNo()返回的是从主节点开始该进程的数量
我这英语水平不大行,没看懂其中区别,继续从源码中寻找答案
看看两个静态成员函数的返回值
Pstream::nProcs()的返回值是procIDs_[communicator].size(),Pstream::myProcNo()的返回值是myProcNo_[communicator]
procIDs_与myProcNo_的定义分别是
//- List of process IDs
static DynamicList<List<int>> procIDs_;
//- My processor number
static DynamicList<int> myProcNo_;
单单从成份上看,procIDs_装载的是List< int >,而myProcNo_装载的只是int
从这个角度也更能解释他们的程序注释,Pstream::nProcs()返回的是包含列表的动态列表,Pstream::myProcNo()返回的仅仅是一个int类型的动态列表
后续遇到再结合程序案例进行分析
Pstream::parRun()
openfoam对其的介绍非常明确了
//- Is this a parallel run?
static bool& parRun()
{
return parRun_;
}
返回的是布尔型判断,默认值是false
而且返回值是引用类型,说明可以在程序运行时随时更改
bool Foam::UPstream::parRun_(false);
所以这句话也经常在判断语句中使用,如:
if (nProcs == 0)
{
parRun_ = false;
statement();
}
这段语句说明如果是在主节点运行,我这个标识符就置为false
当然也这样使用
if (doPstream && parRun())//并行处理前的判定
{
statement();
}
Pstream::exit()
这个可以参考该链接
之所以用exit()函数,因为他是强制关闭,类似正在开机的电脑长摁电源键几秒
结语
后续如果遇到并行计算需要的函数或者不理解其中原理,我认为可以按照我的方法刨根问底,可能前十次的速度很慢,但好事多磨,这两篇文章更重要的是说明学习openfoam的方法
of的学习曲线就是开始很缓慢后续很陡峭,没办法,该花的时间要花的
修行在个人,修行在个人
一起探索openfoam也是相当有趣的一件事,非常欢迎私信讨论
指正的价值要比打赏更重要,下面是个人联系方式,希望能结交到志同道合的朋友

openfoam UPstream类探索(二)的更多相关文章
- JavaScript学习笔记-实例详解-类(二)
实例详解-类(二) //===给Object.prototype添加只读\不可枚举\不可配置的属性objectId(function(){ Object.defineProperty(Object ...
- php分页类的二种调用方法(转载)
php分页类的二种调用方法 原文地址:http://www.xfcodes.com/php/fenye/25584.htm 导读:php分页类的二种调用用法,ajax调用php分页类,非ajax方式调 ...
- python中的类(二)
python中的类(二) 六.类的成员 字段:普通字段,静态字段 eg: class Province(): country=’中国’ #静态字段,保存在类中,执行时可以通过类或对象访问 def __ ...
- java中的常用类(二)
java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...
- 关于MapReduce中自定义带比较key类、比较器类(二)——初学者从源码查看其原理
Job类 /** * Define the comparator that controls * how the keys are sorted before they * are pa ...
- Python-面向对象(类)二
一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...
- Java 之 常用类(二)
1.StringBuffer a.StringBuffer 与 String:①StringBuffer是一个全新的类型,与String没有继承关系 ②StringBuffer的出现是为了解决Stri ...
- Util应用程序框架公共操作类(十二):Lambda表达式公共操作类(三)
今天在开发一个简单查询时,发现我的Lambda操作类的GetValue方法无法正确获取枚举类型值,以至查询结果错误. 我增加了几个单元测试来捕获错误,代码如下. /// <summary> ...
- 常用的Arrays类和二维数组以及二分法的介绍
---恢复内容开始--- 1.Array类 Array中包含了许多数组的常用操作,较为常见的有: (1)快速输出 import java.util.Arrays; public class Test{ ...
- Excel通用类工具(二)
前言 上一篇中写到了用反射来处理类中的不用的属性,但是Excel的列名还得手动输入,这样还是比较麻烦的,今天这篇就利用自定义注解来解决手动传入列名的问题:其实很简单的,只需要在上一篇的基础上加一个类就 ...
随机推荐
- js中数组追加和删除
1.push 往后追加 let arr=[1,2,3,4];arr.push(5);console.log(arr);//得到[1,2,3,4,5] 2.unshift方法 往前追加 let arr ...
- Python3.7.3安装TensorFlow和OpenCV3
根据python的版本进行下载相应的文件 一.安装TensorFlow 进入网址https://pypi.org/project/tensorflow/#files下载TensorFlow文件 进入下 ...
- 2A锂电池充电管理IC,具有恒压/恒流充电模式
PW4052 是一颗适用于单节锂电池的.具有恒压/恒流充电模式的充电管理 IC.该芯片采用开关型的工作模 式, 能够为单节锂电池提供快速. 高效且简单的充电管理解决方案. PW4052 采用三段式充电 ...
- 【JUC】循环屏障CyclicBarrier详解
欢迎关注专栏[JAVA并发] 前言 jdk中提供了许多的并发工具类,大家可能比较熟悉的有CountDownLatch,主要用来阻塞一个线程运行,直到其他线程运行完毕.而jdk还有一个功能类似并发工具类 ...
- 创建并且配置win10系统虚拟机
一.创建Windows10镜像 1.下载地址:https://www.microsoft.com/zh-cn/software-download/windows10 2.制作镜像 完成之后,会生成一个 ...
- java中的自增运算
本文主要阐明java中的自增运算 1.当i ++ 与 ++ i作为单独语句时,作用与i = i +1一样 2.当赋值时,结果就不一样了 temp = i ++: 操作顺序:1)temp = i: 2) ...
- jmeter 之 JSON 断言
1.JSON 断言所在位置:断言->JSON 断言 2.JSON断言中的字段解析 Assert JSON Path exists:json 表达式,判断所字段是否存在,存在则为True, 否则为 ...
- cmd命令行ssh连接Linux服务器
打开cmd工具 使用命令ssh连接服务器 ssh 用户名@ip地址 (不需要指定端口号,默认端口就是22) 输入密码即可
- 2022年7月9日 第四组 周鹏 HTML的初认识
<!DOCTYPE html> <html lang="en"> <!-- 文档的根标签 --> <head> & ...
- Hadoop详解(07) - Hdfs数据压缩
Hadoop详解(07) - Hdfs数据压缩 概述 压缩技术能够有效减少底层存储系统(HDFS)读写字节数.压缩提高了网络带宽和磁盘空间的效率.在运行MR程序时,I/O操作.网络数据传输. Shuf ...