
[Sponsors] 
flux limiter involving tensor : How to use fvc::flux() with volTensorField ? 

LinkBack  Thread Tools  Display Modes 
December 21, 2010, 06:57 
flux limiter involving tensor : How to use fvc::flux() with volTensorField ?

#1 
Senior Member
Cyprien
Join Date: Feb 2010
Location: Stanford University
Posts: 245
Rep Power: 10 
Hi!
I am trying to build a flux from the fvc::flux() function with an volTensorField. The aim is to use flux limiter such as vanLeer scheme. For a volScalarField I use: Code:
volScalarField fS = blahblah; surfaceScalarField phi = linearInterpolate(U) & mesh.Sf(); surfaceScalarField phiS = fvc::flux(phi,fS,sScheme); Now I want to replace the volScalarField fS with a volTensorField TfS but Code:
volTensorField TfS = blahblah; surfaceScalarField phiS = fvc::flux(phi,TfS,sScheme); I can replace the previous snippet of code by: Code:
volTensorField TfS = blahblah; surfaceScalarField phiS = linearInterpolate(U&TfS) & mesh.Sf(); Do you know a trick to do such a thing ? Thank you very much for your help, Cyp 

January 3, 2011, 06:05 

#2 
Senior Member
Cyprien
Join Date: Feb 2010
Location: Stanford University
Posts: 245
Rep Power: 10 
Hi!
I am still facing this problem. Does anyone have an idea to solve this issue ? Best regards, Cyp (and happy new year!) 

January 21, 2011, 05:36 

#3 
Senior Member
Cyprien
Join Date: Feb 2010
Location: Stanford University
Posts: 245
Rep Power: 10 
Hi!
Here is the solution I found out to use tensor with the fvc::flux() object. Since fvc::flux() doesn't seem to be adapted to volTensorField, I turn the tensor formulation to a sum of scalarField formulation. Hence I can use fvc::flux(). U = Ux + Uy + Uz fS&U = fSxx*Ux+fSyx*Ux+fSzx*Ux + fSxy*Uy+fSyy*Uy + ...... Firstly, I need to get the surfacic flux of each component of the velocity field: Code:
phi_x = linearInterpolate(U.component(vector::X)*vector(1,0,0)) & mesh.Sf(); phi_y = linearInterpolate(U.component(vector::Y)*vector(0,1,0)) & mesh.Sf(); phi_z = linearInterpolate(U.component(vector::Z)*vector(0,0,1)) & mesh.Sf(); Then, I defined a surfaceScalarField which is based on the sum of volScalarField: Code:
surfaceScalarField phiS = fvc::flux(phi_x,fSb.component(tensor::XX),sScheme) + fvc::flux(phi_x,fSb.component(tensor::YX),sScheme) + fvc::flux(phi_x,fSb.component(tensor::ZX),sScheme) + fvc::flux(phi_y,fSb.component(tensor::XY),sScheme) + fvc::flux(phi_y,fSb.component(tensor::YY),sScheme) + fvc::flux(phi_y,fSb.component(tensor::ZY),sScheme) + fvc::flux(phi_z,fSb.component(tensor::XZ),sScheme) + fvc::flux(phi_z,fSb.component(tensor::YZ),sScheme) + fvc::flux(phi_z,fSb.component(tensor::ZZ),sScheme); I hope the snippet above could some of you, Best regards, Cyp 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Ultimate Flux Limiter  gentela  Main CFD Forum  1  August 2, 2016 20:55 
LaxWendroff flux, using any flux limiter  mcaro  Main CFD Forum  1  September 30, 2010 11:37 
Slope limiter vs. Flux limiter  jinwon park  Main CFD Forum  3  September 11, 2007 10:55 
the flux limiter  prapanj  Main CFD Forum  4  October 14, 2006 23:08 
Flux Limiter  Q. Liu  Main CFD Forum  4  August 6, 1999 22:36 