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. LiftForce.C中的异或运算符"^"和curl怎么理解?

LiftForce.C中的异或运算符"^"和curl怎么理解?

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

    在LiftForce的计算中,表达式为:

    value.Su() = mass/p.rho()*td.rhoc()*Cl*((td.Uc() - p.U())^curlUc);
    

    为什么这里会出现一个异或运算符“^”?看文献中的Lift的公式应该是

    $F_{lift}=rho_f * V * Cl * (U_f-U_p) * |dUf / dy|$

    1. 难道这个"^"就是简单的理解为乘号?

    2. 这个curlUc等于是速度梯度|dUf / dy|吗?

    3.另外想问问,我的理解是在SaffmanMeiLift.C或者TomiyamaLift.C中的运算,都只是为了求参数Cl的值,然后不管用哪个模型,这个Cl最终都要在LiftForce.C计算,以 value.Su() 的形式添加给粒子,这个理解对不对?

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

    @hotairballon1997

    Su 和Sp 是两个东西
    在forceSuSp.H的头文件有如下解释

        Helper container for force Su and Sp terms.
            F = Sp(U - Up) + Su
        Explicit contribution, Su specified as a force
        Implicit coefficient, Sp specified as force/velocity
    

    Su返回的是一个向量 
    ^ 是cross product
    截屏2021-05-27 23.17.09.png

    返回Su后,你可以看一下kinematicParcel中的 calcVelocity部分

    游荡

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hotairballon1997
    在 中回复了 星星星星晴 最后由 编辑
    #3

    @星星星星晴 谢谢解答,下面是calcVelocity的部分,但是因为在那些acp, ancp, bcp的存在,让我越来越混乱了:135:

    想问问这么理解对不对:
    (1)这个kinematicParcel中的calcVelocity部分,主要是为了计算颗粒相带给流体相多少动量转移,用于计算流体相的速度?
    (2)而如果只计算单个颗粒相本身的速度,其实就是可以通过F = Sp(U - Up) + Su这个合力能计算的,Sp(U - Up)就是单个颗粒所受的曳力,Su就是升力,重力等等的合力?

        // Calculate the integration coefficients
        const vector acp = (Fcp.Sp()*td.Uc() + Fcp.Su())/massEff;
        const vector ancp = (Fncp.Su() + Su)/massEff;
        const scalar bcp = Fcp.Sp()/massEff;
    
        // Integrate to find the new parcel velocity
        const vector deltaU = cloud.UIntegrator().delta(U_, dt, acp + ancp, bcp);
        const vector deltaUncp = ancp*dt;
        const vector deltaUcp = deltaU - deltaUncp;
    
        // Calculate the new velocity and the momentum transfer terms
        vector Unew = U_ + deltaU;
    
        dUTrans -= massEff*deltaUcp;
    
        Spu = dt*Fcp.Sp();
    
        // Apply correction to velocity and dUTrans for reduced-D cases
        const polyMesh& mesh = cloud.pMesh();
        meshTools::constrainDirection(mesh, mesh.solutionD(), Unew);
        meshTools::constrainDirection(mesh, mesh.solutionD(), dUTrans);
    
        return Unew;
    
    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 hotairballon1997 最后由 星星星星晴 编辑
    #4

    @hotairballon1997
    kinematicParcel中先看move部分,

    1. 初始化各个参数,计算lagrangian 步长。
    2. 更新参数,setCellValues,计算dispersion,然后calc方程
    3. 在calcVelocity中得到新parcel速度,新parcel速度calcVelocity部分中计算parcel受力得到新的parcel速度,返回到calc中,然后在calc中,根据 1-way 2-way 计算parcel是否对流场产生影响
    4. 然后返回到move中。。

    https://openfoam.top/sprayVelocity/

    所以Q1 在你不说你的模拟是1way 还是2way 是无法解释的
    Q2 在上面的链接一定程度上可以解释一些

    Explicit contribution, Su specified as a force
    Implicit coefficient, Sp specified as force/velocity
    

    游荡

    1 条回复 最后回复

  • 登录

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