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. fvOptions(rho, Yi)与scalarSemiImplicitSource

fvOptions(rho, Yi)与scalarSemiImplicitSource

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

    reactingFoam中加个甲烷的质量源项,如下:

    scalarTracer //name
    {
        type            scalarSemiImplicitSource;
        active          true;
        selectionMode   cellZone;  // all, cellSet, points, cellZone 
        cellZone       f0;
        
        scalarSemiImplicitSourceCoeffs
        {
            volumeMode      absolute; // absolute <quantity>; specific <quantity>/m^3
            injectionRateSuSp 
            {
                CH4      (14.8e-6 0); //kg/s    1e-6 almost perfect
            }
        }
    }
    

    这样是在f0加了14.8e-6 kg/s的甲烷吗?我试算的一个算例表明似乎是的。

    但是组分方程中的变量是质量分数Yi,而不是质量浓度kg/m^3,应该是利用了当地的混合气体的密度。能否从fvOptions(rho, Yi)实现代码的角度解释一下?

    另外 any comments are welcome!

    主要做AI,懂一点CFD

    1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    写于 最后由 编辑
    #2

    另外通过fvOptions的方式注入的气体如何指定其温度?

    主要做AI,懂一点CFD

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

    这样是在f0加了14.8e-6 kg/s的甲烷吗?我试算的一个算例表明似乎是的。

    如果你想每个网格单元附加12.8e-6的甲烷,是的。因为你用的是绝对形式。不过在方程中应该是kg/(m^3 s)。

    组分方程中的变量是质量分数Yi,而不是质量浓度kg/s,

    参考:

    template<class Type>
    Foam::tmp<Foam::fvMatrix<Type> > Foam::fv::optionList::operator()
    (
        const volScalarField& rho,
        GeometricField<Type, fvPatchField, volMesh>& field
    )
    {
        return this->operator()(rho, field, field.name());
    }
    
    const dimensionSet ds
        (
            rho.dimensions()*field.dimensions()/dimTime*dimVolume
        );
    ···
    
    在fvOptions中已经把单位转换为kg/s了

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

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

    多谢。有个小问题,我与实验对照过计算结果,absolute应该是加在整个zone上的,不是每个网格单元。

    主要做AI,懂一点CFD

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

    @Wayne 在 fvOptions(rho, Yi)与scalarSemiImplicitSource 中说:

    absolute应该是加在整个zone上的,不是每个网格单元。

    10个网格,

    injectionRateSuSp 
            {
                CH4      (1 0); //kg/s    1e-6 almost perfect
            }
    

    就是所有10个网格总共是1,而不是每个网格是1,整体是10?

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

    WayneW 1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    在 中回复了 李东岳 最后由 编辑
    #6

    @李东岳 额,我不确定了。突然想起来我是拿归一化的浓度和实验对比的 = = 等有空测试测试

    主要做AI,懂一点CFD

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

    @Wayne 最近主要做反应流了?

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

    WayneW 1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    在 中回复了 李东岳 最后由 编辑
    #8

    @李东岳 做一个奇怪的东西,自由流和多孔介质流的耦合,遇到好多问题,最近我要来刷屏了

    主要做AI,懂一点CFD

    WayneW 1 条回复 最后回复
  • WayneW 离线
    WayneW 离线
    Wayne
    在 中回复了 Wayne 最后由 编辑
    #9

    参考fvOptions 之 semiImplicitSource
    。

    absolute是加在整个Set上的。如下

        // Set volume information
        V_ = 0.0;
        forAll(cells_, i)
        {
            V_ += mesh_.V()[cells_[i]];
        }
        reduce(V_, sumOp<scalar>());
    
        Info<< indent
            << "- selected " << returnReduce(cells_.size(), sumOp<label>())
            << " cell(s) with volume " << V_ << endl;
    

    另外,fvOptions(rho, he) 中的rho 可能实际上没有使用,如下:

    template<class Type>
    void Foam::fv::SemiImplicitSource<Type>::addSup
    (
        const volScalarField& rho,
        fvMatrix<Type>& eqn,
        const label fieldi
    )
    {
        if (debug)
        {
            Info<< "SemiImplicitSource<" << pTraits<Type>::typeName
                << ">::addSup for source " << name_ << endl;
        }
    
        return this->addSup(eqn, fieldi); //又调用了不带rho的addSup函数
    }
    

    主要做AI,懂一点CFD

    1 条回复 最后回复
  • N 离线
    N 离线
    nanxuan
    写于 最后由 编辑
    #10

    前辈,您好,在这个设置区域的浓度方面这个fvoptions与setfields的用法上,fvoptions能实现随时间的变化,其他还要什么呢。

    1 条回复 最后回复

  • 登录

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