|
[Sponsors] |
flux limiter involving tensor : How to use fvc::flux() with volTensorField ? |
|
LinkBack | Thread Tools | Search this Thread | 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: 299
Rep Power: 18 |
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: 299
Rep Power: 18 |
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: 299
Rep Power: 18 |
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 |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Ultimate Flux Limiter | gentela | Main CFD Forum | 1 | August 2, 2016 21:55 |
Lax-Wendroff flux, using any flux limiter | mcaro | Main CFD Forum | 1 | September 30, 2010 12:37 |
Slope limiter vs. Flux limiter | jinwon park | Main CFD Forum | 3 | September 11, 2007 11:55 |
the flux limiter | prapanj | Main CFD Forum | 4 | October 15, 2006 00:08 |
Flux Limiter | Q. Liu | Main CFD Forum | 4 | August 6, 1999 23:36 |