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. 如何在controlDict中创建一个场,不需要修改求解器

如何在controlDict中创建一个场,不需要修改求解器

已定时 已固定 已锁定 已移动 OpenFOAM
5 帖子 3 发布者 2.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 学 离线
    学 离线
    学流体的小明 神
    写于2023年5月25日 08:02 最后由 学流体的小明 编辑 2023年5月25日 16:03
    #1

    话说这个latex代码怎么转义不了
    使用LES计算气泡槽道流,因为是多相流,某一点可能会有气泡经过,解析的雷诺应力u′iu′j会受到很大影响,所以我想对 u′iu′j 进行加权处理。
    具体方法是:生成张量场,计算每一个cell每一个瞬时的αu′iu′j,(1−α)u′iu′j,ρu′iu′j,然后使用fieldAverage进行系综平均。
    我想在controlDict中生成场ρu′iu′j,然后每个时刻计算一下这个场,怎样通过functions{ }操作呢?因为是要每一个时间步都计算以获得正确的值,所以不太想按一定时间间隔输出数据之后再进行后处理。
    当然也可以直接在solver的createFields.H中创建,我就是想找一个更通用的不用修改求解器的方法,直接很简便地在controlDict - functions{ }中实现。
    毕竟functions{ }可以用writeObjects输出

    /*--------------------------------*- C++ -*----------------------------------*\
      =========                 |
      \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
       \\    /   O peration     | Version:  v2012
        \\  /    A nd           | Website:  www.openfoam.com
         \\/     M anipulation  |
    -------------------------------------------------------------------------------
    Description
        Writes out specified objects, e.g. fields, stored on the case database.
    
    \*---------------------------------------------------------------------------*/
    
    type            writeObjects;
    libs            (utilityFunctionObjects);
    
    objects         (<object names>);
    
    writeControl    writeTime;
    
    // ************************************************************************* //
    
    1 条回复 最后回复
  • 1 离线
    1 离线
    18190691340
    写于2025年3月25日 02:16 最后由 编辑
    #2

    大佬解决了吗?最近也想这样搞

    学 1 条回复 最后回复 2025年3月26日 07:51
  • 学 离线
    学 离线
    学流体的小明 神
    在 2025年3月26日 07:51 中回复了 18190691340 最后由 编辑
    #3

    编程解决的,直接改求解器

    1 1 条回复 最后回复 2025年3月26日 16:41
  • 1 离线
    1 离线
    18190691340
    在 2025年3月26日 16:41 中回复了 学流体的小明 最后由 编辑
    #4

    @学流体的小明 在 如何在controlDict中创建一个场,不需要修改求解器 中说:

    编程解决的,直接改求解器
    也只能这样了

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    写于2025年4月10日 02:55 最后由 编辑
    #5

    OpenFOAM-v2206/tutorials/incompressible/pimpleFoam/LES/planeChannel/setups.orig/common/system/controlDict,有一个计算Cf场的函数,可以参考下:

    Cf
    {
    type coded;
    libs (utilityFunctionObjects);
    name Cf;
    timeStart $/timeStart;
    writeControl writeTime;
    codeExecute
    #{
    auto* CfPtr =
    mesh().getObjectPtr<volScalarField>("Cf");
    if (!CfPtr)
    {
    Info<< "Create skin-friction coefficient field" << nl;
    CfPtr = new volScalarField
    (
    IOobject
    (
    "Cf",
    mesh().time().timeName(),
    mesh(),
    IOobject::NO_READ,
    IOobject::AUTO_WRITE
    ),
    mesh(),
    dimless
    );
    regIOobject::store(CfPtr);
    }
    auto& Cf = *CfPtr;
    Info<< "Computing skin-friction coefficient field\n" << endl;
    const auto& tau =
    mesh().lookupObject<volVectorField>("wallShearStress");
    const dimensionedScalar Ubulk(dimVelocity, 17.55);
    Cf = mag(tau.component(0))/(0.5*sqr(Ubulk));
    #};
    }
    1 条回复 最后回复
2023年5月25日 08:02

2/5

2025年3月25日 02:16

2025年4月10日 02:55
  • 登录

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