《OpenFOAM用户指南》勘误


  • CORE 网格教授 OpenFOAM教授 管理员

    本帖用于《OpenFOAM用户指南》勘误。

    问题类型 页码 勘误内容 贡献者 勘误日期
    错别字 前言 -> 李建治
    错别字 前言 疲于->频繁 @东岳
    错别字 102 梯度格式(gradScheme) ->梯度格式 @东岳 20180329
    错别字 17 Max Propagation->Maximum Step Length @bestucan
    错别字 22 Attribute Mode->Attribute Type @bestucan
    paraview版本问题 22 添加脚注 新版本的paraview中默认取消勾选 @bestucan
    paraview版本问题 22 添加脚注 新版本的paraview为X Axis Parameters @bestucan
    paraview版本问题 22 添加脚注 新版本的paraview为Series Parameters @bestucan
    遗漏释义 22 用户可以对此进行随意的设置 -> 用户可以通过双击鼠标对此进行随意的设置 @bestucan
    错别字 23 采用标准格式,指定了坐标轴范围 -> 在Notation中选择Standard并选取Specify Axis Range @bestucan
    paraview版本问题 23 添加脚注 新版本paraview中取消了Standard,并且四个轴可以分别设置 @bestucan
    paraview版本问题 23 添加脚注 新版本paraview中没有enable line series选项,只要在line style里面选择none就可不显示线,然后在marker style里选circle或者 square能实现图2.12效果,设置的时候注意把调整的三条线都选中 @bestucan
    建议增添 4 添加脚注 ...其只能用于求解层流流动... @tidedrinker 20180403
    错别字 62 InInclude -> lnInclude @bestucan
    错别字 62 /-$WM_ARCH -> /$WM_ARCH @bestucan
    错别字 62 EXE INC -> EXE_INC @bestucan
    错别字 63 EXE LIBS -> LIB_LIBS @东岳
    错别字 67 FOAM RUN -> FOAM_RUN @bestucan
    错别字 67 FOAM SOLVERS -> FOAM_SOLVERS @bestucan
    错别字 92 摩尔质量 -> 物质的量 @bestucan
    错别字 121 需要兴义网格单元形状 -> 需要定义网格单元形状 @bestucan
    错别字 151 首先需要创建一个文件系统 -> 首先创建一个OpenFOAM算例 @bestucan 20180409
    错别字 158 一盒 -> 几何 @同学博
    建议增添 158 添加脚注此处<>在输入的时候不需要添加,如:mapFields /home/test -consistent 即可 @东岳
    错别字 185 热导率 -> 比热容
    错别字 194 L^2/T -> m^2/s Hky 20180425
    错别字 32 lib -> lid @同学博
    错别字 97 常规 -> 正则 王通 20180504
    错别字 152 装换 -> 转换 @同学博 20180522
    错别字 103 那代码 -> 使用代码 @白猫紧张 20181022
    错别字 103 hploynominal -> hpolynominal @D-Benjamin 20181126
    版面问题 全部 代码高亮 @东岳 20190310
    错别字 全部 链表 -> 列表 @Tong 20190410

  • Linux讲师

    • 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”


  • CORE 网格教授 OpenFOAM教授 管理员

    已更新,非常感谢!!


  • Linux讲师

    李老师客气了,从这里得到那么多帮助,捐不了很多钱,出点力应该的:chouchou:
    还有,帖子最上面的勘误表92页那个。那条我说的容易误解。原文是“摩尔质量”,改成“物质的量”,表里反了。:mihu:



  • 最新版底103页,表4.1下面第一行,最后一句话。
    “如果用户不知道那代码中的那部分来调用这个文件”
    是否应该是
    “如果用户不知道拿代码中的哪部分来调用这个文件”


  • Linux讲师

    106页:量纲表第4个量,名称应该是“温度”,USCS单位应该是"。R"(Rankine是读音的一部分,不是单位的一部分);
    106页:量纲表第5个量,SI单位应该是“mol”,USCS单位也是"mol"
    zzz.png



  • 关于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模板的类翻译成链表,个人建议将其翻译成数组或者列表更合理,这样能够减少使用者定义底层数据时的困惑。:mihu:
    :chigua:


  • CORE 网格教授 OpenFOAM教授 管理员

    @Tong 多谢,非常严谨,已更新 :xiexie: :xiexie:


 

Forest
Mountains