fixedGradient为何梯度和变量一个类型?



  • 如题,参考https://www.openfoam.com/documentation/cpp-guide/html/classFoam_1_1fixedGradientFvPatchField.html#a1a4ebfb8aa4dc581e54081a12bfbd0d3

    This boundary condition supplies a fixed gradient condition, such that the patch values are calculated using:

    $$
    xp=xc+∇(x)/Δ
    $$
    where

    xp = patch values
    xc = internal field values
    ∇(x) = gradient (user-specified)
    Δ = inverse distance from patch face centre to cell centre

    template<class Type>
    class fixedGradientFvPatchField
    :
        public fvPatchField<Type>
    {
        // Private data
    
            Field<Type> gradient_;
    
    //...
    

    速度fixedGradient的梯度还是矢量?要不就只能是法向梯度?



  • x_p = x_c + \frac{\nabla(x)}{\Delta}

    这里面用户给定的是\nabla(x),因此你给速度固定梯度的时候给定的是速度梯度,本身是个矢量,就不需要对速度求梯度了。



  • @李东岳

    确实就是法向梯度。我似乎没法给定一个速度的切向梯度作为边界条件。

    
      192             //- Return gradient at boundary
      193             virtual tmp<Field<Type>> snGrad() const
      194             {
      195                 return gradient_;
      196             }
    


  • 基类fvPatchField<Type>的snGrad()定义就是返回face normal gradient... 也就是$\nabla_{\perp}\phi=\nabla\phi\cdot\vec n $


Log in to reply