symmetryPlane coefficients in OpenFOAM/FOAM
Hello FOAMers!
I have been looking at the symmetry plane implementation in OpenFOAM/FOAM and am struggling to understand how the gradientInternalCoeffs were derived i.e. the matrix coefficients related to the diffusion term. In particular for vectors. In all main forks of OpenFOAM, the symmetryPlane internal coefficients (gradientInternalCoeffs) are calculated as (in transformFvPatchField.C): Code:
template<class Type> Code:
tmp<Field<Type> > basicSymmetryFvPatchField<Type>::snGradTransformDiag() const From this I can see that the internal coefficients for a vector field will be (when I also include gammaMagS assuming a scalar gamma): Which can equivalently be written as (allows easier comparison with what comes below): It is not clear where the mag(n_i) comes from here. Moukalled, Mangani and Darwish (http://dx.doi.org/10.1080/10407790.2016.1138748) say it should be: Notice that Foam replaced one of the mag(S_i) with mag(S) which boosts the coefficient. This does not make a difference when the symmetry plane is aligned with a Cartesian plane but they will give different convergence otherwise. Of course if outer corrections are performed, the value of this coefficient does not directly affect the answer but just the convergence. From some quick checks, the Foam version seems to give faster convergence for vector problems but it is not clear where it came from. Maybe somebody can comment or share related references. Thanks! Philip |
All times are GMT -4. The time now is 05:13. |