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. movingConeTopoFvMesh使用的一些疑惑

movingConeTopoFvMesh使用的一些疑惑

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

    各位大佬,以下是使用movingConeTopoFvMesh提示我需要输入的参数,

    dynamicFvMesh   movingConeTopoFvMesh;
    
    motionVelAmplitude		(1 0 0);
    motionVelPeriod			1;
    leftEdge				0;
    leftObstacleEdge		0;
    rightObstacleEdge		1;
    right     				1;
    

    但运行时跳出报这样错误,求教怎么解决

    Attempt to return primitive entry ITstream : /home/fang/OpenFOAM/fhc/study/cavity/constant/dynamicMeshDict.right, line 25, IOstream: Version 2.0, format ASCII, line 0, OPENED, GOOD
        primitiveEntry 'right' comprises 
            on line 25 the label 1
     as a sub-dictionary
    
    
    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 xiaolin 最后由 编辑
    #2

    @xiaolin 你用的是哪个版本?我用OpenFOAM 7,这个动网格设置大约是这个风格

    dynamicFvMeshLibs ("libmovingConeTopoFvMesh.so");
    
    dynamicFvMesh      movingConeTopoFvMesh;
    
    movingConeTopoXXXFvMeshCoeffs
    {
        motionVelAmplitude      (0 0.00006 0);
        motionVelPeriod         1;
    
        //leftEdge                0;
        leftObstacleEdge        0.2;
        rightObstacleEdge       1.5;
    
        left
        {
            minThickness        2.5e-3;
            maxThickness        7.6e-3;
        }
    
        right
        {
            minThickness        1.2e-3;
            maxThickness        2.8e-3;
        }
    }
    

    让我们随波逐流

    1 条回复 最后回复
  • X 离线
    X 离线
    xiaolin
    写于 最后由 编辑
    #3

    您好,史老师,我在设置的时候碰到这个问题,是不是需要在初始文件中定义边界运动情况还是网格拉伸区域范围

    Face extrusion zone contains no faces. Please check your mesh definition.
    
    

    我使用的是6,所以删除了一点,不知道会不会产生影响呢

    dynamicFvMesh      movingConeTopoFvMesh;
    
    
        motionVelAmplitude      (0 0.3 0);
        motionVelPeriod         1;
    
        leftEdge                -0.1;
        leftObstacleEdge        0;
        rightObstacleEdge       2;
    
        left
        {
            minThickness        0.005;
            maxThickness        0.05;
        }
    
        right
        {
            minThickness        0.005;
            maxThickness        0.05;
        }
    
    
    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 xiaolin 最后由 编辑
    #4

    @xiaolin 我刚刚看了一下,我用的是OpenFOAM 6,前面写错了抱歉。
    下面是movingConeTopoFvMesh中对应的构造函数(初始化函数)

     Foam::movingConeTopoFvMesh::movingConeTopoFvMesh(const IOobject& io)
     :
         topoChangerFvMesh(io),
         motionDict_
         (
             IOdictionary
             (
                 IOobject
                 (
                     "dynamicMeshDict",
                     time().constant(),
                     *this,
                     IOobject::MUST_READ_IF_MODIFIED,
                     IOobject::NO_WRITE,
                     false
                 )
             ).optionalSubDict(typeName + "Coeffs")  //在movingConeTopoFvMeshCoeffs中寻找对应参数
         ),
         motionVelAmplitude_(motionDict_.lookup("motionVelAmplitude")),
         motionVelPeriod_(readScalar(motionDict_.lookup("motionVelPeriod"))),
         curMotionVel_
         (
             motionVelAmplitude_*sin(time().value()*pi/motionVelPeriod_)
         ),
         leftEdge_(readScalar(motionDict_.lookup("leftEdge"))),
         curLeft_(readScalar(motionDict_.lookup("leftObstacleEdge"))),
         curRight_(readScalar(motionDict_.lookup("rightObstacleEdge")))
    {
        ...
    }
    

    从构造函数可以看出来,所有的动网格参数要从一个movingConeTopoFvMeshCoeffs的字典中查找获得,所以,在设置动网格参数的时候,这个字典是不能少的,其对应结构如下:

    movingConeTopoFvMeshCoeffs
    {
        ...
    }
    

    你好像缺少了这个结构

    让我们随波逐流

    1 条回复 最后回复
  • X 离线
    X 离线
    xiaolin
    写于 最后由 编辑
    #5

    @史浩
    好的,已经照您说的加了,不过我的6里面并不包含libmovingConeTopoFvMesh.so这个动态链接库,

    dynamicFvMeshLibs ("libmovingConeTopoFvMesh.so");
    

    所以这个我没加进去,不知道会不会有影响,现在碰到了这个问题

    Selecting dynamicFvMesh movingConeTopoFvMesh
    Initial time:0 Initial curMotionVel_:(0 0 0)
    Time = 0
    Adding zones and modifiers to the mesh
    zone: 0()
    zone: 0()
    Adding mesh zones.
    
    
    --> FOAM FATAL ERROR: 
    Face extrusion zone contains no faces. Please check your mesh definition.
    

    尝试使用求解器计算时出现如上错误,zone无边界面,我想达成的效果如下,底部滑块可以左右移动
    2020-08-22 20-36-25 的屏幕截图(1).jpg
    有如下几点疑惑:在DyDict里只给定了运动周期和振幅,leftEdge,leftObstacleEdge,rightObstacleEdge,因为没有实例,所以想问程序怎么识别我想运动哪一块边界,即出现上述Zone no faces的原因
    2.能不能应用于模型内部滑块上下左右的可变运动,既然运动通过motionVelAmplitude和motionVelPeriod给定,那leftEdge,leftObstacleEdge,rightObstacleEdge达到一种什么目的?看不太明白

    史 1 条回复 最后回复
  • 史 离线
    史 离线
    史浩 神
    在 中回复了 xiaolin 最后由 编辑
    #6

    @xiaolin leftEdge没有意义,leftObstacleEdge(rightObstacleEdge)是指运动的左(右)侧边界的位置
    这个类其实是一个不太好用的类,你自己要改一下。这个建议你先去看一下源码,了解里面的操作流程,然后修改一下就可以自己用了,亲测可以

    让我们随波逐流

    1 条回复 最后回复

  • 登录

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