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

    如题,在计算时由于重复性工作所以使用数组进行计算比较方便,但是在0文件夹中定义边界条件时却只能为这些数组变量定义相同的边界条件。有没有办法在不改变其数组特性的情况下做到分别赋予其边界条件啊?

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

    但是在0文件夹中定义边界条件时却只能为这些数组变量定义相同的边界条件

    边界条件不是你任意给的么?为什么只能定义相同的边界条件?

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

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    yang山青
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 因为需要定义边界的量有T[0]、T[1]、T[2]等。但是在0文件夹中只有一个T文件夹,并没有能够分别为各个数组成员赋予边界条件啊。试过分别建立初始条件但是并不能识别

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

    @yang山青 在 数组类型的变量场怎么分别设置边界条件? 中说:

    因为需要定义边界的量有T[0]、T[1]、T[2]等。但是在0文件夹中只有一个T文件夹

    你需要声明一个PtrList<class>,类似如下(我这个例子是surfaceScalarField),

            `//- Moments in the cell faces
            PtrList<surfaceScalarField> mFlux_;
    

    然后初始化:

            mFlux_.set
    			(
    				kth,
    				new surfaceScalarField 
    				(
    					IOobject
    					(
    						  "mFlux" + name(kth),
    						  mesh_.time().timeName(),
    						  mesh_,
    						  IOobject::NO_READ,
    						  IOobject::AUTO_WRITE
    					),
    					mesh_,
    					dimensionedScalar
    					(
    						  "mFlux" + name(kth),
    						  dimensionSet(0,0,0,0,0,0,0), 
    						  0.0
    					),
    					mFluxTypes
    				)
    			);
    

    这样,你就可以写出T0,T1等不同的场了。

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

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    yang山青
    在 中回复了 李东岳 最后由 编辑
    #5

    @东岳 我可能没有懂您的意思。但是我设置数组变量的时候也是您这样设置的,然后这样怎么能够分别设置边界条件呢?比如T1的左边界是定值,右边界是零梯度。而T2左边界是零梯度,右边界是定值呢?而且我要的变量场是因变量,就是需要在0文件中设置初始时刻的边界条件。

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

    但是我设置数组变量的时候也是您这样设置的,然后这样怎么能够分别设置边界条件呢?

    我知道了,你要在创建数组的时候,自动给outlet,inlet之类的创建边界条件?这没法实现。只能设定为MUST_READ,然后手动在0文件夹里面设定。或者,就是在求解器内部强制赋值某边界条件。

    而且我要的变量场是因变量,就是需要在0文件中设置初始时刻的边界条件。

    这和上文不是相符的么?

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

    1 条回复 最后回复

  • 登录

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