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

    Hello Foamers:
    目前在编译新的求解器和边界条件,遇到了一些困难,萌新想请教几个OpenFOAM的输入输出问题
    (1)一般而言,怎样将参数输入求解器?之前尝试了IOobject的方法,输入了dimensionedScalar类型的参数,但是如果想要输入int或是double类型的参数,编译就会报错,请问应该怎样解决?
    (2)怎样在新编译的边界上读入文件里的数据?目前在编译一个新的动边界条件,需要用到每一步求解器中计算的参数实时更新,请问在边界条件里怎样读取case中某个文件里的参数呢?
    谢谢!

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

    这个问题看起来有点难以简单回复 :zoule:

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

    N 1 条回复 最后回复
  • N 离线
    N 离线
    nbyjn
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 哈哈哈
    感谢东岳老师
    第一个问题已经解决了
    请问第二个问题能否给点思路提示
    就是怎样从fvMotionSolver的边界条件里读constant或者时间文件里的参数
    万分感谢

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

    就是怎样从fvMotionSolver的边界条件里读constant或者时间文件里的参数

    在你的fvMotionSolver里面,定义一个私有成员dictionary,然后初始化就可以了。要读取时间步下面的场,场要定义为MUST_READ

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

    N 2 条回复 最后回复
  • N 离线
    N 离线
    nbyjn
    在 中回复了 李东岳 最后由 李东岳 编辑
    #5

    @东岳 感谢东岳老师的回复!
    是这样的
    我目前主要是在oscillatingDisplacement这个边界的基础上修改
    下面是oscillatingDisplacement中的一个构造函数

    oscillatingDisplacementPointPatchVectorField::
    oscillatingDisplacementPointPatchVectorField
    (
        const pointPatch& p,
        const DimensionedField<vector, pointMesh>& iF,
        const dictionary& dict
    )
    :
        fixedValuePointPatchField<vector>(p, iF, dict),
        amplitude_(dict.lookup("amplitude")),
        omega_(readScalar(dict.lookup("omega")))
    {
        if (!dict.found("value"))
        {
            updateCoeffs();
        }
    }
    

    按我的理解
    这个dict使用了Case中的pointDisplacement这个dictionary进行初始化
    我尝试了在构造函数中再新增一个dictionary
    但是编译一直有问题

    我目前的想法是在每个时间步
    在求解器中用ofstream强制改写时间文件夹里pointDisplacement里面的某个参数
    但是总感觉这样计算容易造成错误

    烦请东岳老师指点
    万分感谢!

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

    @东岳 东岳老师
    我又仔细检查了一下代码
    由于oscillatingDisplacementPointPatchVectorField引用了fixedValuePointPatchVectorField
    fixedValue又引用了valuePointPatchVectorField
    构造函数模板以及操作符都是在valuePointPatchVectorField里面定义的
    因此如果在构造函数里变成两个dictionary
    考虑到初始化以及后续的运算符操作似乎需要改比较多的内容

    我目前的想法是在每个时间步
    在求解器中用ofstream强制改写时间文件夹里边界的dictionary的某个参数
    但是总感觉这样计算容易造成错误

    请问还有其他思路吗?
    非常感谢!

    1 条回复 最后回复
  • H 离线
    H 离线
    huiCfd
    在 中回复了 nbyjn 最后由 编辑
    #7

    @nbyjn hello,我最近也在做这样一件事,将参数传入到求解器。 我想将一个矩阵[100*3]左右的数据传入,不知道您这里可以给我一些提示吗?

    1 条回复 最后回复

  • 登录

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