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中文网

U

upc_ngh

@upc_ngh
关于
帖子
144
主题
25
群组
0
粉丝
4
关注
6

帖子

最新

  • OpenFOAM中的网格导出fluent中出现问题
    U upc_ngh

    各位老师好,最近在做of和fluent的对比模拟,在of中通过stl对模型进行个网格划分,在使用foamMeshToFluent命令后只能得到如图1的长方体网格,好像是stl文件用来切割的,但实际的网格应该是图2,烦请各位老师指点一二,这种网格应该如何导出,谢谢!
    e7e1dd67-2bc2-4f9a-82c2-47999d5f2e7c-f1.JPG
    c6fcc14f-728e-4a81-9773-003d2833a81d-o1.JPG


  • chtMultiRegionFoam自带算例的网格问题
    U upc_ngh

    @李东岳
    (1)对的,李老师。今天下午按照这个命令发现,在简单的block块网格上可以实验单一Z方向的拉伸,但对于snappyHexMesh生成后发现多个方向都成倍数扩展了,这个不知道是什么问题,还请李老师和各位大神指点一下;
    (2)是的,网格质量会变差,但是可以通过对Z方向多做网格节点弥补。
    因此,总的来说对于复杂网格的单一方向拉伸,of是不是没法通过简单的命令进行处理呢?还请各位老师指点,谢谢!:xinxin:


  • chtMultiRegionFoam自带算例的网格问题
    U upc_ngh

    @李东岳 感谢东岳老师回复,但使用这个命令后模型依然全尺寸扩大了,我具体的命令如下。是不是针对简便的缩放模型,更改scale,或者节点坐标,又或者transformPoints命令可以,但是涉及到snappyHexMesh就有很多复杂的设置了,所以我想问有李老师和各位大神,针对这种复杂网格的缩放问题要咋处理呢,谢谢!下图是经过这个命令后生成的模型,可以看出尺寸没有发生变化,质量还变得很差,没有达到仅Z轴缩放的目的,所以针对snappyHexMesh还能通过命令做缩放吗?

    #!/bin/sh
    
    cd ${0%/*} || exit 1
    
    . $WM_PROJECT_DIR/bin/tools/RunFunctions
    
    # Create the initial block mesh and decompose
    runApplication blockMesh
    
    runApplication transformPoints 'scale=(1 1 10)'
    
    runApplication decomposePar -copyZero
    
    # Run snappy
    runParallel snappyHexMesh -overwrite
    
    # Split the mesh into regions
    runParallel splitMeshRegions -cellZones -defaultRegionName solid -overwrite
    
    runParallel $(getApplication)
    
    runApplication reconstructParMesh -allRegions -constant
    runApplication reconstructPar -allRegions
    
    paraFoam -touchAll
    

    1.jpg


  • chtMultiRegionFoam自带算例的网格问题
    U upc_ngh

    各位老师好,在使用chtMultiRegionFoam自带的标准算例shellAndTubeHeatExchange时,想要使管壳式换热器仅仅在Z轴方向拉伸,而在XY方向保持原尺寸,是否有可行的办法?目前尝试过更改blockMesh中关键点的位置坐标,如下将原来的vertices中Z轴坐标扩大,但均会报错。不知道通过改代码是否能够实现这样的目的,还请各位老师指点,谢谢!
    屏幕截图 2023-07-11 112005.jpg


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳,感谢李老师挂念,其实当时算的不是喷管,而是引射器,喷管只是其中一个部分,后面因为引射器的整体结构我们无法设计,所以很难判断是模拟的问题还是设计结构的问题,后来就搁浅了。看看后面业主能不能提供现场数据,再算算看。


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 和老板申请一下,结合方向看有没有机会再次跟着老师再拓展点知识面,期待:huahua:


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 哇,谢谢东岳老师,北京见:huahua:


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 非常感谢东岳老师,您先忙。那能否把您现在的case发上来,我好好学习一下,搞清楚哪些地方设置错了:140: ,打工人太难了:136:


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 谢谢李老师,这是改的边界条件吗?“现在需要慢慢向你的设置靠拢”是啥意思呢,是我的初始参数比如11.6MPa不对吗?


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 好的,case已经上传case_laval.rar ,另东岳老师我这是过热水蒸气,是否需要改变thermophysicalProperties内的perfectGas设置,这部分也没啥资料:136:
    另外, 东岳老师今年是线下吗,北京还是杭州?上次在杭州上课受益匪浅,希望今年还是在杭州,直接从学校去听课,再跟着老师学习一下:140:


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 我模仿其他压力基求解Case的边界条件进行搭配,我也不知道该咋正确搭配,真令人头大:136: 那东岳老师经验丰富,有啥好的建议吗:140: ?对于这种简单的laval喷管,入口11.6MPa,633K,出口1MPa


  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    @李东岳 谢谢东岳老师回复,U的入口边界条件设定过两种,跑出来的结果都差不多,难道是U的设置出了错误,实际上应该入口30m/s,喉部500m/s,出口1000多m/s
    一种是这个

     INLET_1
        {
          type            fixedValue;
          value           uniform (30 0 0);
        }
    

    一种是这样的

    INLET_1
        {
       type            pressureInletOutletVelocity;
        value           $internalField;//这是跟随设置的internalField   uniform (0 0 0);
        }
    

  • openFoam与Fluent模拟简单的Laval蒸汽喷管
    U upc_ngh

    各位老师好!学生目前在做简单的laval喷管的模拟,流动介质是过热水蒸汽,采用了sonicFoam和rhocentralFoam以及Fluent,分别进行了计算,OF内求解器的P和U的边界条件都如下图1计算结果(sonic和rhoCentral计算结果差不多)所示,T的边界条件是,入口:type inletOutlet; inletValue uniform 633;出口:type zeroGradient; 可以看出目前模型无法计算,压力和流速都不对。图2的云图是Fluent计算结果,可以看出这个计算结果是比较正确的。目前不知道哪里出现了错误,目前怀疑边界条件有问题,或者是thermophysicalProperties设置不对如下图3,因为模拟的是过热水蒸汽,这部分不知如何修改,请各位老师点拨学生一下,不胜感激!
    图片1.png
    图片2.png
    图片3.png


  • DPMFoam给粒子添加温度等
    U upc_ngh

    @vbcwl 你好,可以在SRC里面额外添加颗粒属性T,再进行计算,是可行的,但做不到东岳老师说的表面和内部的差异,仅仅是颗粒表面温度。


  • 如何使用lookupObject寻找SRC库内的场变量
    U upc_ngh

    @四季之中的隐星
    我自己写的求解器场变量是XX,传进去之后使用const volatile进行转换,你看看是否有帮助

     const  fvMesh& mesh = this->owner().mesh();
     const volatile volScalarField& zhan = mesh.objectRegistry::lookupObject<volScalarField>("XX");
     const volatile volScalarField& Tsur = mesh.objectRegistry::lookupObject<volScalarField>("Tcell");    
    volScalarField* modifier = (volScalarField*)(&zhan);
    volScalarField& XXX = *modifier;  
    volScalarField* modifierTsur = (volScalarField*)(&Tsur);
    volScalarField& Tsurface = *modifierTsur;
    

  • 如何使用lookupObject寻找SRC库内的场变量
    U upc_ngh

    @四季之中的隐星 你好,我的方法比较笨。首先在application定义一个场变量(和你要传回来的场值最好一样);然后把这个量传递进SRC中,在SRC里面把场的const性质强行转换为非const,这样就可以赋值,传递出来了


  • 如何使用lookupObject寻找SRC库内的场变量
    U upc_ngh

    @马乔 谢谢马乔老师的回答,这个问题我通过其他方法绕过去解决了。我在求解器外定义了一个场,然后传输进SRC中,把我想获取的值传递到这个场内,然后就可以在求解器调用massStick()的数值了,谢谢前辈的点拨,我后面试试先调用这个方法是否可行,再次感谢!:xinxin:


  • interFoam耦合相间的能量方程
    U upc_ngh

    @李东岳 感谢李老师的回复,根据查阅的资料:this->nuEff() = nu() + nut() interFoam求解器使用的this->nuEff()应该是laminarModel下的Stokes.C这个模型,因为在求解器计算时输出器选用的stress model 是Stokes model,那divDevTau()函数下的this->nuEff()就如Stokes.C内所描述如下,就是指向nu()并不是为this->nut() + this->nu(),这里就很疑惑,这里将nu()换成自己设定的Nu(T),就得不到合理的计算结果(流场分布)。此外,我选用的是层流在laminarModel.C内也将nut初始化为0,如下代码,所以不知道interFoam这里调用了哪里的的nuEff(),可能不是目前我认知的Stokes.C内部的:141:

    template<class BasicMomentumTransportModel>
    tmp<volScalarField> Stokes<BasicMomentumTransportModel>::nuEff() const
    {
        return volScalarField::New
        (
            IOobject::groupName("nuEff", this->alphaRhoPhi_.group()),
            this->nu()
        );
    }
    
    template<class BasicMomentumTransportModel>
    Foam::tmp<Foam::volScalarField>
    Foam::laminarModel<BasicMomentumTransportModel>::nut() const
    {
        return volScalarField::New
        (
            IOobject::groupName("nut", this->alphaRhoPhi_.group()),
            this->mesh_,
            dimensionedScalar(dimViscosity, 0)
        );
    }
    
    

  • interFoam耦合相间的能量方程
    U upc_ngh

    @李东岳 非常感谢李老师不辞辛苦的点拨,现在有了一点小进展,为避免之后的同学犯错总结一下:
    (1)之前错误点在于:通过lookup寻找随温度变化的nu场,再将 linearViscousStress.C中的divDevTau()下的this->nuEff()转换为nu场如下代码,这时仅仅编译 linearViscousStress.C上层的momentumTransportModels是不够的,还需要编译incompressible中的divDevTau()函数(尽管并没有修改这个函数),再编译求解器才可以。证明了interFoam中的divDevTau()中的函数在层流下执行的就是 linearViscousStress.C中的divDevTau()。
    (2)但现在又存在一个问题,按照东岳老师的interFoam的解析并对照下面的代码可以看出, this->nuEff()是等价与nu即图中的v(运动粘度)
    666.jpg
    但是如果简单的将this->nuEff()代替成nu是不对的,计算出来的流场是错误的(熔渣向下滴落结果速度是向上的)如下图,其中nu的值都是根据气液相分数乘以分别的nu值得到,不知道哪里错了,或许这里的this->nuEff并不是简单的nu的数值,而是对其进行了处理,但也没找到相关定义,真是举步维艰,心累唉:xinlei:

    %  linearViscousStress.C中的divDevTau()函数返回值
    volScalarField Nu = rho.db().objectRegistry::lookupObject<volScalarField>("nu");
        return
        (
          - fvc::div((this->alpha_*rho*this->nuEff())*dev2(T(fvc::grad(U))))
          - fvm::laplacian(this->alpha_*rho*this->nuEff(), U)
        );
    
    %  修改后linearViscousStress.C中的divDevTau()
    volScalarField Nu = rho.db().objectRegistry::lookupObject<volScalarField>("nu");
        return
        (
          - fvc::div((this->alpha_*rho*Nu)*dev2(T(fvc::grad(U))))
          - fvm::laplacian(this->alpha_*rho*Nu, U)
        );
    

    ai.jpg


  • interFoam耦合相间的能量方程
    U upc_ngh

    @李东岳 目前应该是还没找对divDevTau(rho, U)具体位置,不知道把nu传给谁,网上说传给 linearViscousStress.C,但没任何反应,我昨天有个笨办法,在OF9下的MomentumTransportModels这个文件夹下关于divDevTau()所有定义内都加了Info输出某个量,用来监测interFoam中的divDevTau()到底调用了哪个函数,如下,但是没发现任何调用的迹象,我感觉很懵,明明定义在这个文件夹下,咋会找不到它的具体调用:141: ,东岳老师Help !!!现在完全没思路了

    %%这是非线性的divDevTau函数定义在  nonlinearEddyViscosity.C内
    template<class BasicMomentumTransportModel>
    Foam::tmp<Foam::fvVectorMatrix>
    Foam::nonlinearEddyViscosity<BasicMomentumTransportModel>::divDevTau
    (
        const volScalarField& rho,
        volVectorField& U
    ) const
    {
    
    Info<< " 13 "<<endl;
        return
        (
            fvc::div(rho*nonlinearStress_)
          + eddyViscosity<BasicMomentumTransportModel>::divDevTau(rho, U)
        );
    }
    
    %%这是非线性的divDevTau函数定义在  linearViscousStress.C内
    template<class BasicMomentumTransportModel>
    Foam::tmp<Foam::fvVectorMatrix>
    Foam::linearViscousStress<BasicMomentumTransportModel>::divDevTau
    (
        const volScalarField& rho,
        volVectorField& U
    ) const
    {
    
      //volScalarField Nu = rho.db().objectRegistry::lookupObject<volScalarField>("NU");
      Info<<"8"<<endl;
        return
        (
          - fvc::div((this->alpha_*rho*this->nuEff())*dev2(T(fvc::grad(U))))
          - fvm::laplacian(this->alpha_*rho*this->nuEff(), U)
        );
    }
    
    
  • 登录

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