当前位置: 首页 > 计算模拟 >OpenFOAM_如何设置随空间位置变化的参数

OpenFOAM_如何设置随空间位置变化的参数

作者 wilson_028
来源: 小木虫 300 6 举报帖子
+关注

请教各位,问题如标题所述。

模拟的问题是“裂隙中的两相流”,方程是二维的,裂隙面的开度是二维面的参数,其开度分布如图所示。在不同的位置,裂隙拥有不同的开度。
开度的值是有数据的,给出确定的x、y坐标,就可以确定任何一点的开度值。
开度是方程中的关键参数。

应该怎样在程序中设置该参数?如果tutorials当中有类似的案例(即某个参数是空间位置的函数),如能告知也非常感谢。

 返回小木虫查看更多

今日热帖
  • 精华评论
  • wshhao

    不了解OPENF,但知道FLUENT 和COMSOL,应该是自定义变量,构造其传递方程。

  • xixiuqi

    如果会C++编程的话,在OpenFOAM上直接修改代码是最简单的。mesh.point()可以获得空间位置,然后可以直接对参数进行修改。

  • 超算试用

    加QQ群:①776763109分子动力学②1042542503第一性原理③527177438机器学习   @管理员会给你解决问题

  • zuozhuwu

    引用回帖:
    4楼: Originally posted by xixiuqi at 2021-06-16 19:45:18
    如果会C++编程的话,在OpenFOAM上直接修改代码是最简单的。mesh.point()可以获得空间位置,然后可以直接对参数进行修改。

    const vectorField& cellCentres = mesh.C();    //这一句可以获取网格的cellCentre的坐标

    //假定你要设定的量为U

    forAll(cellCentres, cellIndex)
    {
         vector cellPos = cellCentres[cellIndex];   //获取一个cell的坐标
         scalar pos_x = cellPos.component(0);
         scalar pos_y = cellPos.component(1);
         //根据坐标设定U的值
         if( (pos_x > 1 && pos_x < 2) && (pos_y > 1 && pos_y < 2))
         {
               U[cellIndex] = 1.0;        // U 为标量
               U[cellIndex] = vector(1, 0, 0);   // U 为vector
         }
    }

  • Albertcap



猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓