Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. of如何给入口赋值?fixedProfile有没有对应的三维形式?

of如何给入口赋值?fixedProfile有没有对应的三维形式?

已定时 已固定 已锁定 已移动 OpenFOAM
5 帖子 2 发布者 716 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • B 离线
    B 离线
    bit_hypersonic
    写于 最后由 编辑
    #1

    如题,二维情况下,给入口用文件赋值,可以通过fixedProfile,给定入口在某条线上的数据分布形式。
    最近在做三维计算,有没有对应的工具可以实现?

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #2

    http://dyfluid.com/code.html 你看看有没有帮助

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    B 1 条回复 最后回复
  • B 离线
    B 离线
    bit_hypersonic
    在 中回复了 李东岳 最后由 编辑
    #3

    @李东岳 老师好,我已经解决了,过段时间我整理一下我的方法贴在这里,希望能帮助到其他人
    (十分抱歉这么晚回复,因为我的邮箱没有收到消息的回复提醒...)

    1 条回复 最后回复
  • B 离线
    B 离线
    bit_hypersonic
    写于 最后由 编辑
    #4

    自问自答一下:

    具体方法参考这个链接

    先说一下整体背景:
    我要做的是飞行器进气道+燃料掺混段的仿真,分开计算,先算的进气道,想把进气道出口的数据转换到掺混段入口计算。

    操作方法:

    • 1. 使用如下代码,获取掺混段网格信息
    #include "fvCFD.H"
    
    int main(int argc, char *argv[])
    {
    #include "setRootCase.H"
    #include "createTime.H"
    // 在头文件createMesh.H中创建了一个名为mesh的fvMesh对象
    #include "createMesh.H"
    
    Info << "当前时间文件:" << runTime.timeName() << nl
    << "网格数量:" << mesh.C().size() << nl
    << "网格面数量:" << mesh.Cf().size() << nl << nl;
    
    
    // 利用mesh.boundaryMesh()函数获取边界面信息
    forAll(mesh.boundaryMesh(), patchI)
    {
    Info << "Patch[" << patchI << "]:" << mesh.boundary()[patchI].name() << "包括"
    << mesh.boundary()[patchI].Cf().size() << "个网格面" << nl
    << "起始面为:" << mesh.boundary()[patchI].start() << endl;
    }
    
    Info << endl;
    
    
    forAll(mesh.boundaryMesh(), patchI)
    {
    	Info << "Patch[" << patchI << "]:" << mesh.boundary()[patchI].name() << nl;
    	for (label faceI = 0; faceI < mesh.boundary()[patchI].Cf().size(); faceI++)
    	{
        	Info << mesh.boundary()[patchI].Cf()[faceI] << nl;
        }
             
    }
    
    
    
    return 0;
    }
    

    代码的编译运行等流程参考上面的链接,运行时添加“| tee log”生成log文件,结果如下图:
    925ae5d7-4b00-44bd-9238-9a076e9ac6bb-1742104126276.png
    会按照网格面的编号顺序返回网格面心坐标

    • 2.使用自己熟悉的语言,写一个脚本
      使用tecplot,提取进气道出口数据(包含坐标值和数据值),然后只需要把这二者一一对应起来就行了

    • 3.手动拷贝到of中0文件夹下各个变量
      像这样:

    boundaryField
    {
        INLET
        {
            type            fixedValue;
            value           nonuniform List<scalar>
    493
    (
    62304.3935999968
    62304.3935999968
    62304.3935999968
    62304.3935999968
    61340.9584462695
    61340.9584462695
    61340.9584462695
    61340.9584462695
    60768.5332074465
    60768.5332074465
    60768.5332074465
    60768.5332074465
    60032.5837566927
    60032.5837566927
    60032.5837566927
    60032.5837566927
    59027.6877524254
    59027.6877524254
    59027.6877524254
    ...省略
    
    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #5

    感谢分享!

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]