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. Cd计算不准的问题-LES-Re3900-三维圆柱绕流-pisoFoam

Cd计算不准的问题-LES-Re3900-三维圆柱绕流-pisoFoam

已定时 已固定 已锁定 已移动 OpenFOAM
136 帖子 24 发布者 438.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 random_ran 最后由 编辑
    #61

    @random_ran 说得很好,我是通过修改wallGradU的代码实现的,直接给出了时间平均的值,不过在GradU为0的点后面的部分,需要人工手动加负号,体现速度方向相反,关键代码如下:

       wallGradUMean.boundaryField()[patchi] =
                        -UMean.boundaryField()[patchi].snGrad();
    

    snGrand()就是面法向梯度方向了,显然这是个vector,mag一下即可

    @wwzhao 这样看来,并不需要再乘以面法向向量了

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    写于 最后由 编辑
    #62

    @wwzhao 你好 是不是这样:

    -UMean.boundaryField()[patchi].snGrad() & mesh.Sf()

    长风破浪会有时,直挂云帆济沧海

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 yhdthu 最后由 编辑
    #63

    @yhdthu

    被你搞晕了。。。说一下我是怎么分离点的吧。

    1. 修改wallGradU的代码,让它读取UMean,写出wallGradUMean。
    2. 得到wallGradUMean后,用paraview对圆柱表面的patch做slice,提取圆周上的点的wallGradUMean的值,保存到一个csv文件里。
    3. 用python写个脚本,读取并处理csv里面的数据,将wallGradUMean投影到圆周表面的切向方向。投影后的值出现正负变化的时候即为分离点。
    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 wwzhao 最后由 编辑
    #64

    @wwzhao 好的,我明白了,切向量是按着圆的切线方程得来的,这样上半圆与下半圆的切线方向是不同的吧?为了做出精确的曲线,在展向做切片的数量比较多如何处理?

    长风破浪会有时,直挂云帆济沧海

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 yhdthu 最后由 编辑
    #65

    @yhdthu

    1. 圆周上下是对称的,上下切一半即可。
    2. 对于展向切片较多的情况,建议你写个paraview的python脚本实现数据批量提取。
    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 wwzhao 最后由 编辑
    #66

    @wwzhao 你好 我用你的方法试了,但是发现一个严重的问题,用paraview导出后的csv格式出现了数据丢失,比如我模型的x范围是(-1,1),导出来之后区间缩小了,变成(-0.85,0.88),请问这怎么处理呢?

    长风破浪会有时,直挂云帆济沧海

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 yhdthu 最后由 编辑
    #67

    @yhdthu 我没有遇到这个情况,你是怎么导出的?先做clip再做slice?

    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 wwzhao 最后由 编辑
    #68

    @wwzhao 我都试过,结果一样的,不知道怎么回事

    长风破浪会有时,直挂云帆济沧海

    W 1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    写于 最后由 编辑
    #69

    再仔细分析了一下计算,代码,和计算结果,又产生了疑惑。

    疑惑的对象是: 二阶张量点乘(内积,dot product)一个矢量,其结果应该还是一个矢量。这个点乘与两个矢量之间的点乘不太一样。后者结果是一个数。其物理意义是一个矢量在另外一个矢量方向上的投影长度乘以被投影到的这个矢量的模长。

    那么这里的二阶张量点乘一个矢量得到的这个新矢量代表着什么呢?

    这个新的矢量是否代表这着 du/dn, dv/dn 以及dw/dn?

    那这个新矢量的物理意义就是某个点的速度沿法向量方向上的梯度?并不是我们要求的速度沿圆周面切线的分量沿法向量的梯度?

    越绕越糊涂。

    Yours in CFD,

    Ran

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 random_ran 最后由 编辑
    #70

    @random_ran 之前我的表述有误。这里不涉及到二阶张量,snGrad返回的是一个矢量,代表壁面处速度沿法向的变化率。由于壁面上的速度为0,所以snGrad返回的实际上就是第一层网格的速度除以第一层网格格心到壁面的距离。snGrad是平行壁面的,在二维情况下(+x为右,+y为上,流速指向+x),取圆周上半部分,当snGrad的方向由顺时针变为逆时针时(snGrad在顺时针切向方向的投影符号发生变化),即为流动分离点。

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 yhdthu 最后由 编辑
    #71

    @yhdthu 你看的是"Points:0","Points:1"和"Points:2"吗?这个不是按大小排序的,仔细检查一下。

    yhdthuY 2 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 wwzhao 最后由 编辑
    #72

    @wwzhao 你好,我是直接把点转化成了角度值,发现只有60度到120度

    长风破浪会有时,直挂云帆济沧海

    W 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 wwzhao 最后由 编辑
    #73

    @wwzhao 你好,我有个新思路,是直接在of代码中改的,具体如下:

    想办法求取每点的切向量,其方向在上下半圆都是流动的反向,之后与以UMean计算的snGrad做内积

    实现这个切向量的方法很简单,就是用一个vector(0,0,1)与面法向量做叉积,再乘以面法向量在y轴的投影正负号函数

    这是最后的效果图:

    0_1495502077634_WechatIMG8813.jpeg

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • W 离线
    W 离线
    wwzhao 超神
    在 中回复了 yhdthu 最后由 编辑
    #74

    @yhdthu

    这个是我的结果,纵坐标已经处理过,分离角85.8度。

    0_1495501850786_wallGradU-mean.png

    1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    写于 最后由 random_ran 编辑
    #75

    再顺思路:

    1. 将速度(矢量)沿切线(矢量)分解,求出切线速度(矢量)

    2. 对1所得切线速度(矢量)求梯度,得到含九个分量的二阶张量

    3. 用这个张量点乘法向量得到一个新的矢量,也就是切线速度沿法线上的梯度

    4. 将3中所得矢量点乘切线向量,最后得到一个标量

    5. 沿圆周画出4得到的标量,找到等于零的点对应的座标

    这是目前基于O.F.直接计算结果,我能想到的计算分离角的方法。ParaView似乎对叉乘不太支持?这样第一步似乎就走不通了。还需要再研究。

    看来不动O.F.代码真是麻烦了...

    Yours in CFD,

    Ran

    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 random_ran 最后由 yhdthu 编辑
    #76

    @random_ran 我改的代码如下,写的可能有点啰嗦,如果有更好的表达形式望告知

            forAll(wallGradUMean.boundaryField(), patchi)
            {
                const fvPatch& currPatch = patches[patchi];
                if (isA<wallFvPatch>(currPatch))
                {
                    	
                    wallGradUMean.boundaryField()[patchi] =
                        (
                        	-UMean.boundaryField()[patchi].snGrad() &
                        	(
                        		(
                			mesh.Sf().boundaryField()[patchi]
                			/mesh.magSf().boundaryField()[patchi]
                        		) ^ vector(0,0,1)
                        	)
                        ) * sign(mesh.Sf().boundaryField()[patchi] & vector(0,1,0));
                }
            }
    

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • R 离线
    R 离线
    random_ran 大神
    写于 最后由 random_ran 编辑
    #77

    一种方法:

    求出平均速度之后,用ParaView的 GradientOfUnstructuredDataSet 直接计算vorticity在Z方向上的分量. 不用动代码,只需要ParaView 5.2.0 版本以上。0_1495565337045_vorticityZ.png

    Yours in CFD,

    Ran

    yhdthuY 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    在 中回复了 random_ran 最后由 编辑
    #78

    @random_ran 这个我也试过,还要再次处理,我觉得有点麻烦,所以改了代码,我比较懒😂

    长风破浪会有时,直挂云帆济沧海

    1 条回复 最后回复
  • B 离线
    B 离线
    bingningmeng45
    在 中回复了 random_ran 最后由 编辑
    #79

    @random_ran 这个圆形正交网格正交性确实很好,我也是做一个圆柱绕流DNS的算例验证Re=3900,刚开始采用o型网格感觉网格质量不是很好,计算效率不是很高。想换成此篇文献中的圆形正交网格,但不知道这样的网格边界条件是怎么设定的,比如说出口,入口的边界是半圆吗?希望你能解答一下疑惑

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

    0_1499871510271_2017-07-12 22-57-27屏幕截图.png

    最近在准备课程的算例,有一个就是圆柱绕流,我找了找文献,目前圆柱绕流期刊里面大部分都是这种圆形网格。

    不知谁那有文献做过矩形网格和圆形网格的对比研究?

    @random_ran
    你那个更换计算网格之后好像结果明显提高很多?

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

    B 1 条回复 最后回复

  • 登录

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