CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Running, Solving & CFD

Tensor driven convection

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   August 22, 2006, 06:26
Default Hi, I want to distretize im
  #1
New Member
 
Petr Ryszard Zorowic
Join Date: Mar 2009
Posts: 2
Rep Power: 0
petr is on a distinguished road
Hi,

I want to distretize implicitly the terms:

div((C*C) & V)

and div(V*C)

where C is a vector. This is only possible explicitly using the fvc function. I want to solve for the vector V and for stability reason implicitly. Anybody know if this is possible and how?

Petr
petr is offline   Reply With Quote

Old   August 22, 2006, 09:17
Default Petr, I don't think you can
  #2
Member
 
E. David Huckaby
Join Date: Mar 2009
Posts: 57
Rep Power: 8
david_h is on a distinguished road
Petr,

I don't think you can make the terms fully implicit until a coupled equation capability is introduced into the library.

In the interim, you can modify the method
used for the velocity equations in Reynolds
Stress Transport Models, in which the stress divergence is aranged as an implicit diagonal and an explicit correction.

For the first term:

volScalarField traceCC = (1.0/3.0)*tr(C*C)
or
volScalarField traceCC = C & C;

fvm::grad( traceC, V)
- fvc::grad( traceC, V)
fvc::div( (C*C) & V)

For the second term (one possiblility might be)
gradC = fvc::div(C)
diagGradC = diag(gradC)
fvm::Su( diagGradC, V )
- diagGradC * V
+ fvc::div(V*C)


hope this helps

Dave
david_h is offline   Reply With Quote

Old   August 23, 2006, 06:06
Default Dave, thank you for the kind r
  #3
New Member
 
Petr Ryszard Zorowic
Join Date: Mar 2009
Posts: 2
Rep Power: 0
petr is on a distinguished road
Dave, thank you for the kind reply. I understand what you mean, but have some problems implementing. grad does not exist in the fvm scope, do you mean div:

fvm::div( traceCC, V)
- fvc::div( traceCC, V)
+ fvc::div( (C*C) & V)

then traceCC must somehow be interpolated to surfaceScalarField, I think.

for the second term I think you mean gradC = fvc::grad(C)? For some reason diag() is not recognized, but according the programmers guide it should work.
The compiler says:
error: 'diag' was not declared in this scope

Might the name have changed?

Petr
petr is offline   Reply With Quote

Old   August 23, 2006, 16:08
Default Petr, You are correct abou
  #4
Member
 
E. David Huckaby
Join Date: Mar 2009
Posts: 57
Rep Power: 8
david_h is on a distinguished road
Petr,

You are correct about my div/grad substitutions
(In the first expression I misread your post)

To get traceCC as a surfaceScalarField, you could use fvc::interpolate(traceCC),

The diag() function does not appear to have been implemented for volTensorFields. Further, since fvm::Su and fmv:SuSp only take a volScalarField as a first argument, you wouldn't be able to use a tensor anyway. You could try using:
traceGradC = tr(gradC)/3.0;
fvm::Su( traceGradC, V ) - traceGradC * V + fvc::div(V*C);

Also, div( (C*C) & V) would seem be a scalar,
i.e., d_i(C_i C_j V_j)

Dave
david_h is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Soret-Driven convection simulation Arnaud FLUENT 0 March 16, 2007 07:00
deduce of a tensor dusky.he Main CFD Forum 0 September 22, 2006 00:33
Tensor Notation Kevin A. Goodheart Main CFD Forum 4 September 4, 2002 02:27
Composition driven free convection P.Fonteijn CFX 0 May 7, 2001 18:12
convection dominated convection-diffusion problem Kang, S. K. Main CFD Forum 0 December 22, 2000 15:25


All times are GMT -4. The time now is 09:17.