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如何输出header

OF如何输出header

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

    我想把一个scalarField规范输出到文本文件里面,以便下次计算直接可以读取。但是由于IO读取的时候似乎要检查header,例如下面这样。如何规范地输出scalarField呢?

    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  v1806                                 |
    |   \\  /    A nd           | Web:      www.OpenFOAM.com                      |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        location    "constant";
        object      transportProperties;
    }
    
    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    写于 最后由 编辑
    #2

    如何把表头也输出到文件里面呢,或者能不能IO的时候直接write好这个scalarField呢

    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    写于 最后由 编辑
    #3

    又是搜索的一晚上,还好查出来了。通过scalarIOField来定义想输出的scalarField,在scalarFiled里面用IOobject来初始化。最后用write()来输出到指定文件夹。这样输出的文件就有header了。以后OF也可以读取了,很棒!!
    不过有个问题是,我在IOobject里面设置的路径是runTime.path()/“postProcessing”,发现结果却没有输出到postProcessing这个文件夹里面。而是输出到了runTime.timeName()文件夹里。不知道是怎么回事。
    看起来像是不能识别postProcessing文件夹路径,而默认到了runTime.timeName()路径里面去。不知道怎么解决这个问题

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    写于 最后由 编辑
    #4

    另外并行计算的mesh.constant()路径是processor里面的constant文件夹。有没有命令能够直接得到processor外面的那个constant文件路径呢

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

    感谢分享
    试试runTime.path()/"postProcessing"/"sets"/name()? see streamlines.C

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

    S 1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 Samuel-Tu 最后由 编辑
    #6

    @Samuel-Tu 在 OF如何输出header 中说:

    scalarIOField
    OF1806对应的是IOField<scalar>

    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    在 中回复了 李东岳 最后由 编辑
    #7

    @东岳 还是不行,首先是没有name()这个函数,去掉name()后识别不出来postProcessing,还是输出到runTime.timeName()里面了

    1 条回复 最后回复
  • S 离线
    S 离线
    Samuel-Tu
    写于 最后由 编辑
    #8

    此贴终结,完美输出方式被我找到了!!!!!!

        IOField<scalar> utau
        (
            IOobject
            (
                "utau",
                 runTime.constant(),
                "../postProcessing",
                mesh,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE 
            ),
            scalarField(totalFSize,0.0)
        );
    

    这样就可以输出到想要的文件夹(此处是postProcessing)了

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

    感谢分享!!!收录在此 https://www.cfd-china.com/topic/3499/openfoam小代码

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

    1 条回复 最后回复

  • 登录

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