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. 请问有人用过sprayFoam中的下面coneNozzleInjection吗?

请问有人用过sprayFoam中的下面coneNozzleInjection吗?

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

    @星星星星晴 好的谢谢您,没有计算结果不同,就是想问问parcel和particle的区别,回答的很详细,再次感谢

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #8

    @upc_ngh 客气,parcel的概念的引用一方面会减少计算量,和steady-state一样,达到一定的数量的parcel就可以认为他达到了统计学上的满足要求,就一定程度的减少了计算量
    另一方面可以对于mass 等其他properties进行更容易的处理,比如涉及到mass transfer等。

    游荡

    1 条回复 最后回复
  • D 在线
    D 在线
    dzw05 超神
    在 中回复了 upc_ngh 最后由 编辑
    #9

    @upc_ngh 如@星星星星晴 所言,parcel就是n个particle的合集,具有相同的参数。

    自主匠心,普惠仿真。

    U 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #10

    @upc_ngh mass 是累加的

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 dzw05 最后由 编辑
    #11

    @dzw05 谢谢老师回答,差不多明白了:xinxin:

    1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #12

    @星星星星晴 非常感谢您的回答,这个mass是指parcel的mass是每个particle的质量累加的是吧

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #13

    @upc_ngh 是的
    of4.1 injectionmodel.C 489-518

    
                        // Number of particles per parcel
                        pPtr->nParticle() =
                            setNumberOfParticles
                            (
                                newParcels,
                                newVolumeFraction,
                                pPtr->d(),
                                pPtr->rho()
                            );
    
                        if (pPtr->nParticle() >= 1.0)
                        {
                            parcelsAdded++;
                            massAdded += pPtr->nParticle()*pPtr->mass();
    
                            if (pPtr->move(td, dt))
                            {
                                td.cloud().addParticle(pPtr);
                            }
                            else
                            {
                                delete pPtr;
                            }
                        }
                        else
                        {
                            delayedVolume += pPtr->nParticle()*pPtr->volume();
                            delete pPtr;
                        }
    

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #14

    @星星星星晴 非常感谢您的回答,搞清楚这个又有新的问题了,麻烦您再看一眼。
    我现在想要在Kinematic这个模板类下想要调用ManualInjection这个模板类的函数,应该怎么去操作,我看网上的回答尝试了友元还有其他方法,还是不行,您有什么好的方法吗?

    template<class CloudType>
    void Foam::KinematicCloud<CloudType>::updateCellOccupancy()
    {
        // Only build the cellOccupancy if the pointer is set, i.e. it has
        // been requested before.
    
        if (cellOccupancyPtr_.valid())
        {
            buildCellOccupancy();
        }
    }
    
    template<class CloudType>
    Foam::scalar Foam::ManualInjection<CloudType>::volumeToInject
    (
        const scalar time0,
        const scalar time1
    )
    {
        // All parcels introduced at SOI
        if ((0.0 >= time0) && (0.0 < time1))
        {
            return this->volumeTotal_;
        }
        else
        {
            return 0.0;
        }
    }
    
    
    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #15

    @upc_ngh 我没理解到你什么意思,请仔细的描述一下

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #16

    @星星星星晴 就是假如我想在kinematic就是第一段代码里面调用ManuaInjection就是第二段代码里面的函数,什么方法比较简单。

    template<class CloudType>
    void Foam::KinematicCloud<CloudType>::updateCellOccupancy()
    {
        // Only build the cellOccupancy if the pointer is set, i.e. it has
        // been requested before.
    
        if (cellOccupancyPtr_.valid())
        {
    
            //buildCellOccupancy();//假如不要这个函数了,想要使用下面这个
           return this->volumeTotal_;//这个是Man类下的函数,该怎么去调用
    
        }
    }
    
    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #17

    @upc_ngh 额,这个我也不太了解,我也是半路出家,你这种修改属于涉及到底层了。。
    不过我个人建议,如果能暂时不触及底层就暂时先不触及,因为如果你修改底层的东西了,也需要修改其他模型,否则就报错。无法编译。updateCellOccupancy()这个方程是在哪调用的呢?调用了以后有什么作用,影响到了什么?如果你随便修改这种东西,就算编译通过了,最后计算的东西也不好说。。

    我一个朋友说过,编程其实不难,难的是你最后选择什么途径去解决问题。如果已经很熟悉在openfoam的框架,然后再去修改底层。。。

    如果你确定你需要修改这个地方,看看下面的流程介绍,希望能有帮助
    https://openfoamwiki.net/index.php/OpenFOAM_guide/UML/lagrangian

    其实最重要的问题是,你需要通过manualinjection实现什么效果,你为什么要修改updatecellOccupancy,是想计算theta()?在kinematicparcel中有该计算

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #18

    @星星星星晴 好的谢谢谢谢,我就好奇它内部的类函数是怎么相互传递的,本身还远没这个能力去改这个代码:mihu: ,非常感谢您耐心的回答,我再看看您提供的资料再看看框架:xinxin:

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #19

    @upc_ngh

    客气,其实你看一下manualinjection最后返回的什么,然后你去找它的父模板 injectionmodel,然后去找kinematicparcel,然后再去找kinematiccloud

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #20

    @upc_ngh 我这边就是因为需要自定义injection,因为我找不到特别好的方法,所以在distributionmodel中就返回了一个vector,然后再***injection.c中call了 distributionmodel返回的vector,然后给parcel.U 和parcel.d()进行了定义

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #21

    @星星星星晴 injection.c可以直接call 到DistributionModel中的vetor?可以加一下好友讨论吗1514969704,谢谢

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #22

    @upc_ngh 我这边用不了QQ,邮件吧~

    游荡

    1 条回复 最后回复
  • 香柏树香 离线
    香柏树香 离线
    香柏树
    在 中回复了 dzw05 最后由 编辑
    #23

    @dzw05 您好,我也在使用coneNozzleInjection模型进行燃烧室喷雾燃烧模拟,燃烧室进出口的速度边界条件分别为turbulentInlet和pressureInletOutletVelocity,压力边界条件分别为zeroGradient和totalPressure。在进行燃烧室内当量比分析的时候有些疑惑,向您请教下。(1)如果燃油流量是0.1kg/s的话,按照您的解释应该massTotal=0.1,duration=1。在time step size为1e-6s的情况下,也就是每个时间步喷入燃油燃油流量0.1/1*0.000001=1e-7kg,这样只有在喷射时间持续了1s的时候燃油在燃烧室内的质量才能达到0.1kg。本节的这段理解正确么?(2)在计算中一个通流时间为0.02s,受限于计算资源,实际计算过程达不到1s。如果我想在1s之前分析燃烧室内的当量比的话,是不是必须燃油喷射时间超过一个通流时间后才能进行分析呢?在一个通流时间后,喷入燃烧室的燃油流量和流出燃烧室的燃油流量之间的差值可以达到平衡么?(3)关于parcelsPerSecond数目的问题,您说的粒子体积是根据下图中的d进行计算的么?
    705cdf4e-6a03-4cc4-9b4a-56eef67f1952-图片.png
    麻烦您了!谢谢!

    1 条回复 最后回复
  • chengan.wangC 离线
    chengan.wangC 离线
    chengan.wang
    在 中回复了 李东岳 最后由 编辑
    #24

    @李东岳 李老师,我想设置喷雾不随时间变化,

    flowRateProfile constant 1e-4;
    

    我试着用这个设置命令,算例也能运行。
    如果这个命令没有意义不能用那该怎样设置?必须用下面的命令?把时间设得很长?

    flowRateProfile table
                (
                    (0              1e-4)
                    (100000           1e-4)
                );*/
    

    另外,请教关于文件‘sprayCloudProperties’,有些参数没找到资料,比如

    solution
    {
        active          true; 
        coupled         true;
        transient       yes;
        cellValueSourceCorrection on;
        maxCo           0.3;
    
        sourceTerms
        {
            schemes
            {
                rho             explicit 1;
            }
        }
    
        interpolationSchemes
        {
            rho             cell;
            U               cellPoint;
        }
    
        integrationSchemes
        {
            U               Euler;
            T               analytical;
        }
    }
    

    以及

    constantProperties
    {
        T0              320; //  这个有意义么?只是初始化用么?
    
        // place holders for rho0 and Cp0
        // - reset from liquid properties using T0
        rho0            1000;
        Cp0             4187;
    
        constantVolume  false; //这个是干啥用的呢?
    }
    

    最后,我想用paraview看看输出结果的水滴分布情况,这个怎么查看呢?还有水的质量在空间上的分布?

    麻烦李老师了,谢谢。

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 chengan.wang 最后由 编辑
    #25

    @chengan-wang 请善用谷歌,这些东西在网上都有,只是零碎的,等我忙完这段时间或许会写个关于喷雾模拟的东西,但是现在请善用搜索引擎。而且你需要多读code才明白为什么这个东西是这么设置的

    请见谅说的有些直,但是事实如此。

    游荡

    chengan.wangC 1 条回复 最后回复
  • chengan.wangC 离线
    chengan.wangC 离线
    chengan.wang
    在 中回复了 星星星星晴 最后由 编辑
    #26

    @星星星星晴 没关系,明白,想尽快弄出来

    1 条回复 最后回复

  • 登录

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