|
[Sponsors] |
December 30, 2012, 11:18 |
anisotropic diffusion fvm::laplacian
|
#1 |
New Member
Michael Buchmayr
Join Date: Mar 2010
Posts: 16
Rep Power: 16 |
Hi,
I have had a look at the implicit discretization of anisotropic diffusion (fvm::laplacian). It seems to me that the implementation is wrong. At least I haven't yet managed to figure out why the coefficients are as they are. It is fairly easy to follow in Ferzinger & Peric how the non-orthogonal correction approach is done for scalar "gamma" fields. For tensor fields it's a bit more tricky. What is being passed to the uncorrected (implicit) laplacian function is the scalar field sfGammaSn. For me it would make sense to pass a vector field sfGamma and then split the derivative nabla(vf) into a derivative along d and a derivative along sfGamma_{unity}. I think the way fvm::laplacian is implemented now shouldn't even work for scalar "gammas" right? Otherwise there wouldn't exist a template version for fvm::laplacians for scalars. I would appriciate if anybody can exchange thoughts on this topic / approves my thoughts / teaches me wrong / explains to me the implementation. Cheers, Michi template<class Type, class GType> tmp<fvMatrix<Type> > gaussLaplacianScheme<Type, GType>::fvmLaplacianUncorrected ( const surfaceScalarField& gammaMagSf, actually passes sfGammaSn const GeometricField<Type, fvPatchField, volMesh>& vf ) { tmp<surfaceScalarField> tdeltaCoeffs = this->tsnGradScheme_().deltaCoeffs(vf); const surfaceScalarField& deltaCoeffs = tdeltaCoeffs(); tmp<fvMatrix<Type> > tfvm ( new fvMatrix<Type> ( vf, deltaCoeffs.dimensions()*gammaMagSf.dimensions()*v f.dimensions() ) ); fvMatrix<Type>& fvm = tfvm(); fvm.upper() = deltaCoeffs.internalField()*gammaMagSf.internalFie ld(); fvm.negSumDiag(); Last edited by MichiB; January 10, 2013 at 05:43. |
|
January 10, 2013, 05:47 |
|
#2 |
New Member
Michael Buchmayr
Join Date: Mar 2010
Posts: 16
Rep Power: 16 |
I figured out that the coeffs indeed correspond to what I've derived
which is (Sf dot Gamma dot Sf)/(Sf dot d) ... for the uncorrected laplacian. I hope I didn't confuse anyone that read this message! If so, sorry! |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Moving mesh | Niklas Wikstrom (Wikstrom) | OpenFOAM Running, Solving & CFD | 122 | June 15, 2014 07:20 |
How to stop diffusion and advection in a zone for selected species. | hda | FLUENT | 0 | March 19, 2012 00:59 |
How to implement anisotropic diffusion coefficient | benk | OpenFOAM | 1 | March 25, 2010 22:41 |
Species diffusion coefficient | iceabc | FLUENT | 1 | June 10, 2004 11:04 |
Anisotropic Diffusion Coefficient | perkinsg@cances.atp.com.au | FLUENT | 0 | March 29, 2001 03:15 |