CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    dependency graph,inheritance diagram和collaboration diagram的区别与代码实现?

    OpenFOAM
    1
    2
    273
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • J
      JqBu 最后由 编辑

      最近在看拉格朗日粒子库的一些代码,这里调用了很多模板类,但之间的关系分不太好。我发现同样是类的继承关系,openfoam官方却在用不同的diagram表示他们之间的关系,举个例子说明:

      对于immiscibleIncompressibleThreePhaseMixture这个类来说,他继承了incompressibleThreePhaseMixture和threePhaseInterfaceProperties两个类,代码如下:

      class immiscibleIncompressibleThreePhaseMixture
      :
      public incompressibleThreePhaseMixture,
      public threePhaseInterfaceProperties

      在openfoam官方是用dependency graph来表示它们之间的关系的,如图:
      2e100004-1e8c-4dd6-9aac-fe8f77e05282-1640142326(1).jpg

      而在拉格朗日库中,同样是类的继承关系,是用inheritance diagram和collaboration diagram表示的,对应代码如下:

      template<class CloudType>
      class ParticleForceList
      :
      public PtrList<ParticleForce<CloudType>>

      2d17c9a8-98d4-4382-90bc-df98afa75e09-1640142962.png

      332f8139-9456-4634-a2a2-d7faff9fbeae-1640143390(1).jpg

      在这里有三个疑问:
      1.dependency graph, inheritance diagram和collaoration diagram具体有什么区别?
      2.上面inheritance diagram图的右边的橙色虚线箭头表达的是什么关系?
      3.上面inheritance diagram图的右边ParticleForceList<KinematicCloudFoam::DSMCCloud>和ParticleForceList<KinematicCloud<Cloud<basicKinematicCollidParcel>>>具体是怎么实现的?我在整个src库中都没有检索到相关的代码

      如果有大神答疑 不胜感激!!!期待和大家的交流!!!

      1 条回复 最后回复 回复 引用
      • J
        JqBu 最后由 编辑

        现在搞明白了各种diagram里方框的颜色、线条颜色、虚实代表的含义,详见:https://www.openfoam.com/documentation/guides/latest/api/graph_legend.html

        箭头相关:
        深蓝色箭头用于显示两个类之间的公共继承关系。
        深绿色箭头用于受保护的继承。
        暗红色箭头用于私有继承。
        如果一个类包含或被另一个类使用,则使用紫色虚线箭头。箭头被标记为可访问指向类或结构的变量。
        黄色虚线箭头表示模板实例和实例化它的模板类之间的关系。箭头被标记为实例的模板参数。

        方框相关:
        填充的灰框表示生成图的结构或类。
        带有黑色边框的方框表示文档化的结构或类。
        带有灰色边框的方框表示未文档化的结构体或类。
        带有红色边框的方框表示没有显示所有继承/包含关系的文档化结构或类。如果图形不符合指定的边界,它将被截断。

        d766de53-abdd-4f12-a732-27219ca01c20-1640161125(1).png

        1 条回复 最后回复 回复 引用
        • First post
          Last post