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
14 帖子 3 发布者 13.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 飞 离线
    飞 离线
    飞火流星jyj
    写于 最后由 编辑
    #1

    例如U(i,j,k),请老师指点一下

    十分感谢

    1 条回复 最后回复
  • X 离线
    X 离线
    xpqiu 超神
    写于 最后由 编辑
    #2
            forAll(U, cellI)
            {
                scalar Ux = U[cellI].component(0);
                scalar Uy = U[cellI].y();
                scalar Uz = U[cellI].component(2);
            }
    

    .component(0) 或者 .x() 两种方式任君选择。

    飞 2 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 xpqiu 最后由 编辑
    #3

    @xpqiu版主, 我定义了一个变量然后赋值
    U2=U[celli]
    计算报错:
    Different dimensions for =
    dimensions : [0 1 -1 0 0 0 0] = [0 0 0 0 0 0 0]

    From function dimensionSet::operator=(const dimensionSet&) const
    in file dimensionSet/dimensionSet.C at line 171.
    

    怎么U[celli]成无单位的量了,不是应该是单位网格的速度

    十分感谢

    1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 xpqiu 最后由 编辑
    #4

    @xpqiu 解决了:happy:

    十分感谢

    1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    写于 最后由 编辑
    #5

    对于单个网格如何写速度方程,想更新单个网格的速度,UEqn好像是求解了所有的

    十分感谢

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

    对于单个网格如何写速度方程

    在什么情况下需要对单个网格求解速度方程?

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

    飞 1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 李东岳 最后由 飞火流星jyj 编辑
    #7

    @李东岳 李老师,就是添加源项的速度方程只想对于某种网格求解以此来更新这个网格内的速度

    十分感谢

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 飞火流星jyj 最后由 编辑
    #8

    @飞火流星jyj

    那你只在某个网格应用原乡就可以了。

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

    飞 1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 李东岳 最后由 编辑
    #9

    @李东岳 那要怎么写呢,李老师能请简单指点一下:happy:

    十分感谢

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

    比如你某个区域要应用源项,你可以写:

    forAll(mesh.C(), celli)
    {
        if (mesh.C().component(0) < 5 && mesh.C().component(0) > 0)
        {
            Source[celli] = 1.0;
        }
    }
    

    就表示你网格区域如果网格单元x方向的位置大于0并且小于5,就存在S=1的源项。

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

    飞 1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 李东岳 最后由 编辑
    #11

    @李东岳 李老师我的是3.0.X版本的,
    提示:
    UEqn.H:68:6: error: ‘Source’ was not declared in this scope
    Source 没有指定,这个要怎么创建啊

    十分感谢

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

    首先你得声明Source场如:

    volScalarField Source
    (
        IOobject
        (
        随便找一段复制进来
        )
    )
    

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

    飞 1 条回复 最后回复
  • 飞 离线
    飞 离线
    飞火流星jyj
    在 中回复了 李东岳 最后由 李东岳 编辑
    #13

    @李东岳
    1.

    volScalarField Source
    (
        IOobject
        (
                    "Source",
    		runTime.timeName(),
    		mesh,
    		IOobject::NO_READ,
    		IOobject::AUTO_WRITE
        ),
        mesh
    );
    

    加了,mesh才能通过编译,
    2. Source[celli]是double类型的,是不是类似于对应网格的Source.value(),
    3. volScalarField又是定义单位的呢,是不是在速度方程后添加==Source;并且保证量纲统一就可以达到更新速度的目的
    4. 我还不是很理解volScalarField和scalarField的区别

    李老师我问题比较多,看您方便回答哪个,十分感谢

    十分感谢

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

    其他你的理解大体正确,·volScalarField和scalarField的区别仅仅在于volScalarField附加了边界的信息,scalarField`只是网格点的信息不包含边界。

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

    1 条回复 最后回复

  • 登录

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