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. 时变的非均匀速度边界条件timeVaryingMappedFixedValue运行发散

时变的非均匀速度边界条件timeVaryingMappedFixedValue运行发散

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

    请教各位老师一个边界条件文件,如题,我对于速度条件使用了在网上搜到的timeVaryingMappedFixedValue条件,可以导入时变、非均匀的风速数据,但是运行后会报发散错误,我认为是因为没有修改其他物理量边界条件的问题,但是没有找到相关的解决方法。
    希望各位老师帮忙看下怎么修改对应的边界条件:
    blockMesh如下:

    backgroundMesh
    {
        xMin   1250; 
        xMax   8698;
        yMin   1343; 
        yMax   9476;
        zMin     -60;
        zMax   600;
        xCells  248;
        yCells  271;
        zCells  33;
    }
    
    convertToMeters 1;
    
    vertices
    (
        ($!backgroundMesh/xMin $!backgroundMesh/yMin $!backgroundMesh/zMin)
        ($!backgroundMesh/xMax $!backgroundMesh/yMin $!backgroundMesh/zMin)
        ($!backgroundMesh/xMax $!backgroundMesh/yMax $!backgroundMesh/zMin)
        ($!backgroundMesh/xMin $!backgroundMesh/yMax $!backgroundMesh/zMin)
    
        ($!backgroundMesh/xMin $!backgroundMesh/yMin $!backgroundMesh/zMax)
        ($!backgroundMesh/xMax $!backgroundMesh/yMin $!backgroundMesh/zMax)
        ($!backgroundMesh/xMax $!backgroundMesh/yMax $!backgroundMesh/zMax)
        ($!backgroundMesh/xMin $!backgroundMesh/yMax $!backgroundMesh/zMax)
    );
    
    blocks
    (
        hex (0 1 2 3 4 5 6 7)
        (
            $!backgroundMesh/xCells
            $!backgroundMesh/yCells
            $!backgroundMesh/zCells
        )
        simpleGrading (1 1 1)
    );
    
    boundary
    (
        west
        {
            type patch;
            faces
            (
                (0 3 7 4)
            );
        }
    
        east
        {
            type patch;
            faces
            (
                (1 5 6 2)
            );
        }
    
    
        south
        {
            type patch;
            faces
            (
                (0 4 5 1)
            );
        }
        north
        {
            type patch;
            faces
            (
                (3 2 6 7)
            );
        }
    
        ground
        {
            type wall;
            faces
            (
                (0 1 2 3)
            );
        }
    
        top
        {
            type patch;
            faces
            (
                (4 7 6 5)
            );
        }
    
    );
    
    

    各物理量边界条件如下:
    U

    dimensions      [0 1 -1 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {
        west
        {
            type            timeVaryingMappedFixedValue;
            offset          (0 0 0);
            setAverage      off;
    
        }
        east
        {
            type            pressureInletOutletVelocity;
            value           uniform (0 0 0);
        }
        north
        {
            type            timeVaryingMappedFixedValue;
            offset          (0 0 0);
            setAverage      off;
    
        }
        south
        {
            type            pressureInletOutletVelocity;
            value           uniform (0 0 0);
        }
        ground
        {
            type            noSlip;
        }
        buildings
        {
            type            noSlip;
        }
         wall
        {
            type            noSlip;
        }
        top
        {
            type            timeVaryingMappedFixedValue;
            offset          (0 0 0);
            setAverage      off;
        }
    }
    
    

    P

    dimensions      [0 2 -2 0 0 0 0];
    
    internalField   uniform 0;
    
    boundaryField
    {
        west
        {
            type            zeroGradient;
        }
        east
        {
            type            totalPressure;
            rho             rho;
            psi             none;
            gamma           1;
            p0              uniform 0;
            value           uniform 0;
        }
        north
        {
            type            zeroGradient;
        }
        south
        {
            type            totalPressure;
            rho             rho;
            psi             none;
            gamma           1;
            p0              uniform 0;
            value           uniform 0;
        }
        ground
        {
            type            zeroGradient;
        }
        wall
        {
            type            zeroGradient;
        }
        buildings
        {
            type            zeroGradient;
        }
        top
        {
            type            zeroGradient;
        }
    }
    
    
    

    nut

    dimensions      [0 2 -1 0 0 0 0];
    
    internalField   uniform 0;
    
    boundaryField
    {
        west
        {
            type            calculated;
            value           uniform 0;
        }
        east
        {
            type            calculated;
            value           uniform 0;
        }
        north
        {
            type            calculated;
            value           uniform 0;
        }
        south
        {
            type            calculated;
            value           uniform 0;
        }
        ground
        {
            type            nutkWallFunction;
            value           uniform 0;
        }
        buildings
        {
            type            nutkWallFunction;
            value           uniform 0;
        }
        wall
        {
            type            nutkWallFunction;
            value           uniform 0;
        }
    
        top
        {
            type            calculated;
            value           uniform 0;
        }
    }
    
    
    

    k

    dimensions      [0 2 -2 0 0 0 0];
    
    internalField   uniform 1.5;
    
    boundaryField
    {
        west
        {
            type            fixedValue;
            value           uniform 1.5;
        }
        east
        {
            type            inletOutlet;
            inletValue      uniform 1.5;
            value           uniform 1.5;
        }
        north
        {
            type            fixedValue;
            value           uniform 1.5;
        }
        south
        {
            type            inletOutlet;
            inletValue      uniform 1.5;
            value           uniform 1.5;
        }
        ground
        {
            type            kqRWallFunction;
            value           uniform 1.5;
        }
        buildings
        {
            type            kqRWallFunction;
            value           uniform 1.5;
        }
        wall
        {
            type            kqRWallFunction;
            value           uniform 1.5;
        }
    
        top
        {
            type            inletOutlet;
            inletValue      uniform 1.5;
            value           uniform 1.5;
        }
    }
    
    

    spsilon

    dimensions      [0 2 -3 0 0 0 0];
    
    internalField   uniform 0.03;
    
    boundaryField
    {
        west
        {
            type            fixedValue;
            value           uniform 0.03;
        }
        east
        {
            type            inletOutlet;
            inletValue      uniform 0.03;
            value           uniform 0.03;
        }
        north
        {
            type            fixedValue;
            value           uniform 0.03;
        }
        south
        {
            type            inletOutlet;
            inletValue      uniform 0.03;
            value           uniform 0.03;
        }
        ground
        {
            type            epsilonWallFunction;
            value           uniform 0.03;
        }
        buildings
        {
            type            epsilonWallFunction;
            value           uniform 0.03;
        }
        wall
        {
            type            epsilonWallFunction;
            value           uniform 0.03;
        }
    
        top
        {
            type            inletOutlet;
            inletValue      uniform 0.03;
            value           uniform 0.03;
        }
    }
    
    
    C 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #2

    你用的openfoam单向流求解器么,这个如果网格质量不是特别差的话,发散都是设置的问题。可以调节一下你湍流的进口边界。

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

    W 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 wsy11 最后由 编辑
    #3

    @wsy11

    1. 这是算URANS吗?计算的建筑绕流?
    2. top面为何也是速度入口,如果改为symmetry看看
    3. U的east和south,你设置了pressureInletOutletVelocity,我没用过这个,一般设置为zeroGradient或者inletOutlet。
      对应p的east和south,设置为fixedValue为0
    W 1 条回复 最后回复
  • W 离线
    W 离线
    wsy11
    在 中回复了 coolhhh 最后由 编辑
    #4

    @coolhhh
    大佬您好,感谢您的指导,以下我对于没说清楚的点的一些解释:
    1、是的,我是计算的复杂地形上的建筑绕流,,但是不确定是否为URANS,我刚刚接触CFD,还没有具体学过湍流求解方法,现在选择RAS只是想先跑出结果;
    2、top面设置为速度入口,是因为我的研究区域,top、west、east、south、north面的速度都是已知的,因此把top面速度条件也给加进去了(理论上应该把除地面外的五个面都设置好初始速度),我要做的工作就是把大尺度的风速给细化,得到研究区域区域内小尺度的风速;
    3、zeroGradient这个条件也试过,但是还是发散,经过今天的学习,我认为是k文件epsilon文件的初始值也需要更改,准备以后测试一下。
    最后再次感谢大佬的耐心指导!(刚接触CFD,可能对于一些问题的解释并不是很清楚)

    C 1 条回复 最后回复
  • W 离线
    W 离线
    wsy11
    在 中回复了 李东岳 最后由 编辑
    #5

    @李东岳
    李老师您好,我刚实操OpenFOAM,不太确定是否为您说的单向流求解器:
    1、我的研究区域top、west、east、south、north面的速度都是已知的,因此理论上应该把除地面外的五个面都设置好初始速度,我要做的工作就是把大尺度的风速给细化,得到研究区域区域内小尺度的风速(即复杂地形的建筑物扰流);
    2、我也认为是湍流的边界条件问题,今天学习后发现可能是因为将入口设置为时变的非均匀速度条件后,并没有改变k文件和epsilon文件对应点位的值(如上边对应文件所示,k和epsilon只是简单的设置成了fixedValue);
    3、李老师,想请问您一个问题:如果设置好入流面一个点的(u,v,w)后,这个点的脉动速度分别为(0.05u,0.05v,0.05w)吗?对于下面图中的k和速度场U的关系不是很理解
    f1d4414d-53db-4d7b-b7e8-1208375637ca-image.png

    1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 wsy11 最后由 编辑
    #6

    @wsy11

    1. URANS(Unsteady Reynolds-Averaged Navier-Stokes)就是用RANS湍流模型+瞬态求解器(pisoFoam,pimpleFoam),如果用simpleFoam求解器就是稳态,就不应该用时变的边界
    2. 没有试过其他5个面都设置速度入口。因为算的不可压缩湍流,我的理解是要能计算至少得满足5个面在每个瞬时的通量总和等于0,即流入等于流出。没看过有人这么设置过,一般都会设置个出口,通过计算自动调整出口的通量,使得满足不可压缩条件
    3. 既然算瞬态,可以用LES模拟,采用WALE湍流模型,0文件夹只需要设置p,U,nut
    4. 建议先拿一个简单的长方体空风洞开始,先测试只有1个速度入口+1个出口(侧面和顶面用symmetry),再测试2个速度入口+2个出口(顶面用symmetry),依次增加速度入口个数测试,最后才是看5个面都是速度入口能否算
    W 1 条回复 最后回复
  • W 离线
    W 离线
    wsy11
    在 中回复了 coolhhh 最后由 编辑
    #7

    @coolhhh
    大佬您好,我可能忘了介绍我的研究时段了,我研究的是较长时间的模拟,理想模拟时间应该是2-3天;模拟区域也比较大,大概为长宽高为6km6km600m。
    1、因为研究的时间较长,所以每个边界的风速肯定是变化的(风速输入用的是每个边界所设置的非均匀分布风塔的观测数据,每个面都有数个观测点,观测数据风速利用timeVaryingMappedFixedValue每隔十分钟输入)因为之前学习了windaroundbuildings这个算例(也是建筑扰流),所以设置求解器为simpleFoam,这个算例风速确实是时不变的,这一点没有考虑到,等换成瞬时求解器试试;
    2、目前还没有试过五个入流面,因为我也认为可能不太符合通量守恒,所以先设置了3个速度入口和2个出口,我先做一下大佬在4中提供的建议;
    3、LES模拟也考虑过,正在学习,等做完2中试验后尝试一下大佬提供的条件,就不用计算k和epsilon文件的设置了。

    1 条回复 最后回复

  • 登录

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