-
-
17页2.1.4.5:Max Propagation长度为0.5 Maximum Step Length of 0.5
-
22页倒数第二段: Attribute Mode : Attribute Type。这个英文原版也错了。
-
比如22页倒数第四段开始。这段最后一句,说取消勾选。实际5.4中movingwall、fixedwalls、frontandback默认取消勾选。
-
22页倒数第二段。“X Axis Data我们选择Use Data Array以及arc_length,这样x轴代表了离底距离”。
实际操作。“X Axis Data”现在叫“X Axis Parameters”(22页倒数第一段的"Line Series"也变了了"Series Parameters")。没有了“Use Data Array”选项(默认了),多了个“X Array Name”选项。也是默认了arc_length。 -
(这个可忽略)然后22页倒数第一段。这里说“可以看见默认设置就已经有了速度的模以及三个分量”。如果按教程,操作到这里已经执行了postprocess命令。无法判断看到的U_x U_y是默认的还是命令生成的。(实际,默认或者命令生成的都是一个效果。命令并不改变效果。只是在每个时间节点文件夹多了三个文件)当然上面提到postprocess -func "components(U)"时说了“例如”,没说让操作。
-
22页倒数第一段,最后一句,把英文原文的“双击鼠标”翻译丢了。"The user can edit this most easily by a double click of the mouse over that selection"
-
23页第二段,改图中字体、颜色、名称不在图形左上方。在pipeline Browser 下方
-
23页第三段,“图2.11我们使用了下述选项:采用标准格式,指定了坐标轴范围”。原文是“Notation”选“Standard”,并选中“Specify Axis Range”。是软件名词,翻译成中文了。然后。英文版的也不对。没有Standard了。而且四个轴可以分别设置了。mixed、scientific、fixed。最后一句:enable line series,没有这个选项了。只要在line style里选none就可以不显示线。然后在marker style里选circle或者 square能实现图2.12效果。设置的时候还要把要调整的三条线都选中。
-
还有一个细节。英文原版在代码部分用的是“等宽字体”。一般代码都用这种字体,上下对的齐,变量名太长不至于看起来很稠。正常用来阅读的英文不等宽,i最窄ZW这些占的宽,符合书写和阅读习惯。
-
61页:3.2.2.1中“1.”“2.”中有三处出现“InInclude”。应该该是"lnInclude"(lninclude\LNINCLUDE)英文版也错了。
-
61页:3.2.2.1中"4."中"$WM_ARCH"前多了个"-"。英文原版那有个"-"是因为在行尾。
-
61页:倒数第二行,“EXE”和“INC”中间有个下划线丢失了。
-
62页:第二个"3.",“EXE”和“INC”中间有个下划线丢失了。
-
66页:倒数第三行,“FOAM”和“RUN”中间有个下划线丢失了。
-
66页:倒数第二行,“FOAM”和“SOLVERS”中间有个下划线丢失了。
-
67页:“来进行编译。编译过程会产生下列信息”下面的信息好像还是openfoam2.3的。英文版的手册这里已经变了。再下面的再次编译操作的信息也和英文版不一样。我操做的和英文版的也不一样。现在重复编译,不返回任何信息。
-
92页:量纲表第5个量是“物质的量”,单位“mol”。“摩尔质量”是另外一个单位kg/mol,表示1mol物质的质量。
-
120页:第二行“需要兴义网格单元形状”->“需要定义网格单元形状”
-
150页:倒数第二行,“首先需要创建一个文件系统”,英文版是创建个算例“create a new OpenFOAM case”
-
-
关于OpenFOAM模板类"List"的翻译:
虽然在STL中list对应的数据结构是链表,但是OpemFOAM中List对应的数据结构是数组容器,在OF List的基类UList的定义中有:
//- Number of elements in UList label size_; //- Vector of values of type T T* __restrict__ v_; // Private Member Functions //- Disallow default shallow-copy assignment //
List中对v_的内存分配操作为:
template<class T> inline void Foam::List<T>::alloc() { if (this->size_ > 0) { this->v_ = new T[this->size_]; } }
实际在堆上为v_分配了大小为(this->size)*(size_of(T))的连续空间,因此能够根据下标访问元素,插入时先重新分配size+1的空间之后拷贝,复杂度O(n)
实际OpenFOAM中链表容器的基类为DLListBase(双向链表)和SLListBase(单向链表),位于src\OpenFOAM\containers\LinkedLists目录下
以单向链表为例
void Foam::SLListBase::insert(SLListBase::link* a) { nElmts_++; if (last_) { a->next_ = last_->next_; } else { last_ = a; } last_->next_ = a; }
插入时将链表尾部指针指向新元素,复杂度为常数。访问使用内部迭代器遍历,复杂度O(n),
在《OpenFOAM用户指南-5.0》中东岳老师将继承自List模板的类翻译成链表,个人建议将其翻译成数组或者列表更合理,这样能够减少使用者定义底层数据时的困惑。