jumpCyclic边界条件的问题
-
94 of file jumpCyclicFvPatchField.C
template<class Type> Foam::tmp<Foam::Field<Type>> Foam::jumpCyclicFvPatchField<Type>::patchNeighbourField() const { const Field<Type>& iField = this->primitiveField(); const labelUList& nbrFaceCells = this->cyclicPatch().neighbFvPatch().faceCells(); tmp<Field<Type>> tpnf(new Field<Type>(this->size())); Field<Type>& pnf = tpnf.ref(); Field<Type> jf(this->jump()); if (!this->cyclicPatch().owner()) { jf *= -1.0; } if (this->doTransform()) { forAll(*this, facei) { pnf[facei] = transform ( this->forwardT()[0], iField[nbrFaceCells[facei]] ) - jf[facei]; } } else { forAll(*this, facei) { pnf[facei] = iField[nbrFaceCells[facei]] - jf[facei]; } } return tpnf; }
感觉数学上jump应该是界面两侧物理量的jump,实际被搞成了界面两侧单元物理量的jump。
这个大家怎么看?
-
界面两侧物理量和界面两侧单元物理量 有什么差别?我发现jump的值过大,会造成发散,与fluent里面的porous jump 可能不一样
-
@liuyf
截面jump是 p(x=0) == p(x=1) + dp
截面两侧单位jump 是 p(x=0+dx/2) == p(x=1-dx/2) + dp边界网格越粗,这个差异应该会越大吧。