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. OpenFOAM小代码

OpenFOAM小代码

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

    @李东岳 在 OpenFOAM小代码 中说:

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

    请问老师,如果我想要在postProcessing中输出一个标量,他只是一个数,并不是场量,我应该怎么定义他的类型。上面这种方法是不是只适应于场量的输出。我想输出的是下面c的数值。

    const volScalarField& b = mesh().lookupObject<volScalarField>("alpha.liquid");
    scalar c= b.weightedAverage(mesh().V()).value();
    
    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 hongjiewang 最后由 编辑
    #17

    @hongjiewang

        IOList<scalar> utau
        (
            IOobject
            (
                "utau",
                runTime.constant(),
                "../postProcessing",
                mesh,
                IOobject::NO_READ,
                IOobject::AUTO_WRITE 
            ),
            1
        );
        
        utau[0] = b.weightedAverage(mesh().V()).value();
    

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

    H vbcwlV 3 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #18

    @李东岳

      totalLiquid
      {        
            libs            (utilityFunctionObjects);
            type            coded;
            name            totalLiquid;
            enabled         true;
            writeControl    timeStep;
            writeInterval   1;
            
            codeOptions
            #{
                -I$(LIB_SRC)/meshTools/lnInclude
            #};
    
            codeExecute
            #{
    
                const volScalarField& b =
                    mesh().lookupObject<volScalarField>("alpha.liquid");
    
                IOList<scalar> liquidFraction
                (
                    IOobject
                    (
                        "liquidFraction",
                        mesh().time().constant(),
                        "../postProcessing",
                        mesh(),
                        IOobject::NO_READ,
                        IOobject::AUTO_WRITE
                    ),
                    1
                );
                liquidFraction[0] = b.weightedAverage(mesh().V()).value();
            #};
        }
    

    东岳老师,我这样添加到controlDict里,运行后postProcessing里并没有出现liquidFraction的值。
    1618213472(1).png

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 hongjiewang 最后由 hongjiewang 编辑
    #19

    @hongjiewang 在 OpenFOAM小代码 中说:

    @李东岳

      totalLiquid
      {        
            libs            (utilityFunctionObjects);
            type            coded;
            name            totalLiquid;
            enabled         true;
            writeControl    timeStep;
            writeInterval   1;
            
            codeOptions
            #{
                -I$(LIB_SRC)/meshTools/lnInclude
            #};
    
            codeExecute
            #{
    
                const volScalarField& b =
                    mesh().lookupObject<volScalarField>("alpha.liquid");
    
                IOList<scalar> liquidFraction
                (
                    IOobject
                    (
                        "liquidFraction",
                        mesh().time().constant(),
                        "../postProcessing",
                        mesh(),
                        IOobject::NO_READ,
                        IOobject::AUTO_WRITE
                    ),
                    1
                );
                liquidFraction[0] = b.weightedAverage(mesh().V()).value();
            #};
        }
    

    东岳老师,我这样添加到controlDict里,运行后postProcessing里并没有出现liquidFraction的值。
    1618213472(1).png

    需要修改两个部分,
    1.在下方添加 .write()
    2.将codeExecute改为codeWrite
    之后就可以得到想要的相含量结果。

    1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #20

    @李东岳

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       scalarField;
        location    "constant/../postProcessing";
        object      totalLiquid;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    1(0.2)
    

    麻烦老师再帮我看一下,为什么每次都只会输出一个时刻的值,不会随时间增加输出的

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #21
    meanDiameter
        {
            type            coded;
            libs            ("libutilityFunctionObjects.so");
            name            error;
        
            codeExecute
            #{
                const volScalarField& d =
                    mesh().lookupObject<volScalarField>("d.alpha.oil");
    
                scalar d32 = d.weightedAverage(mesh().V()).value();
        
                if (Pstream::master())
                {
                    std::ofstream file;
                    file.open ("d32", std::ofstream::out | std::ofstream::app);
                    file << mesh().time().timeName() << " " << d32 << "\n";
                    file.close();
                }
            #};
        }
    

    我最近也凑巧要用这个,我用的上面这种方式。

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

    1 条回复 最后回复
  • 五好青年五 离线
    五好青年五 离线
    五好青年
    在 中回复了 李东岳 最后由 编辑
    #22

    @李东岳
    请问东岳老师:135:

    (1) 东岳老师,您上面写的:codedFixedValue
    (2) yfclark朋友,上面写的:CodeStream

    在自定义边界条件方面,这两个有啥区别啊,我研究了几天没想明白

    I am a CFD machine with no emotions.

    五好青年五 1 条回复 最后回复
  • 五好青年五 离线
    五好青年五 离线
    五好青年
    在 中回复了 五好青年 最后由 编辑
    #23

    @yfclark
    朋友,您好:

    codedFixedValue和CodeStream

    你知道在自定义边界条件方面,这两个有啥区别啊,我研究了几天没想明白

    I am a CFD machine with no emotions.

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 五好青年 最后由 编辑
    #24

    codedFixedValue更简单,直接用

    code
            #{
                operator==(min(10, 0.1*this->db().time().value()));
            #};
    

    就可以赋值。CodeStream更普适性,我见过一些代码用CodeStream对内部场进行初始化。比如建立U的内部场与空间的函数。

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

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 李东岳 最后由 编辑
    #25

    @李东岳 目前我需要将温度边界和压力边界定义为随相含量变化的一个场。我只可以做到变化之后的也是同一类边界条件,但是像下图中的气相区压力是第一类边界条件,液相区温度是第二类边界条件。请问这种变边界类型的边界应该怎么定义~1632279639(1).png

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 hongjiewang 最后由 hongjiewang 编辑
    #26

    @hongjiewang 在 OpenFOAM小代码 中说:

    @李东岳 目前我需要将温度边界和压力边界定义为随相含量变化的一个场。我只可以做到变化之后的也是同一类边界条件,但是像下图中的气相区压力是第一类边界条件,液相区温度是第二类边界条件。请问这种变边界类型的边界应该怎么定义~1632279639(1).png

    已解决压力的~但是温度的第二类和第三类的转换还没有解决~

    1 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题
  • 疏影横斜水清浅疏 离线
    疏影横斜水清浅疏 离线
    疏影横斜水清浅
    写于 最后由 编辑
    #27

    你好,请问const polyPatch& cPatch = mesh.boundaryMesh()[patchID];与const fvPatch& cPatch = mesh.boundary()[patchID];有什么不同?

    1 条回复 最后回复
  • D 离线
    D 离线
    Dingcy
    在 中回复了 李东岳 最后由 编辑
    #28

    @李东岳 在 OpenFOAM小代码 中说:

    //const fvBoundaryMesh& boundaryMesh = boundaryPatch.boundaryMesh();
    //const fvMesh& mesh = boundaryMesh.mesh();

    我想用codedFixedValue,写一个壁面的边界条件,壁面都是wall,而不是patch,所以这里想用这两个命令,但是编译过程中总是提示9e34b123-be2b-4f45-bace-a18c0fd0bd1e-image.png我是不是应该声明点啥呢?我也查了网上的,发现全是在inlet使用这个功能,然后入口是patch

    我希望我得到的少一点,少一点,再少一点......

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 Dingcy 最后由 编辑
    #29

    @dingcy

    const polyPatch& cPatch = mesh.boundaryMesh()[patchID]
    

    类似这个?

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

    D 1 条回复 最后回复
  • D 离线
    D 离线
    Dingcy
    在 中回复了 李东岳 最后由 编辑
    #30

    @李东岳 好像不是这个0acf9421-5d4d-4d1a-8874-380f51687e50-image.png 又显示了mesh没有声明....

    我希望我得到的少一点,少一点,再少一点......

    1 条回复 最后回复
  • vbcwlV 离线
    vbcwlV 离线
    vbcwl
    在 中回复了 李东岳 最后由 编辑
    #31

    @李东岳 能请教下这个具体怎么使用么?我没能输出utau:chouchou:

    LBE

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 vbcwl 最后由 编辑
    #32

    @vbcwl 上面那些代码么。上面那些代码都需要自己写到代码里面去。还不是简单的使用。需要有编程基础,这些代码起到一定的提示作用。

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

    1 条回复 最后回复
  • 李东岳李 李东岳 被引用 于这个主题
  • 李东岳李 李东岳 被引用 于这个主题
  • 2 离线
    2 离线
    2019201300
    写于 最后由 编辑
    #33

    李老师您好,请问输出努塞尔数代码是直接放进去吗?还是里边的部分数据需要进行修改呢微信截图_20221112113853.png ?

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 2019201300 最后由 编辑
    #34

    @2019201300 这个我太久之前写的。已经忘了。但是这个代码只是提供案例。具体数值大概率需要自己改一下。直接放在controlDict下面。

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

    2 1 条回复 最后回复
  • 2 离线
    2 离线
    2019201300
    在 中回复了 李东岳 最后由 编辑
    #35

    @李东岳 好的,谢谢李老师,我再认真研究研究。

    1 条回复 最后回复

  • 登录

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