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)/Δ
$$
wherexp = patch values
xc = internal field values
∇(x) = gradient (user-specified)
Δ = inverse distance from patch face centre to cell centretemplate<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 $