
[Sponsors] 
July 18, 2005, 15:19 
Hi, Henry,
In one of the ea

#1 
New Member
Jing Wang
Join Date: Mar 2009
Location: Toronto, Ontario, Canada
Posts: 7
Rep Power: 9 
Hi, Henry,
In one of the earlier responses on this forum you said that transient solvers may not converge for steadystate problems. Right now I am trying to model some polymer extrusion process using OpenFOAM, but it looks like there is no solver for steadystate laminar flow of nonNewtonian fluids. Do you think nonNewtonianIcoFoam can be used for my purpose by setting the runTime long enough? (simpleFoam seems to be for turbulent flow, rather than laminar flow) If you don't think so, could you explain a little bit what I should do? Thanks a lot. 

July 18, 2005, 15:21 
Use simpleFoam with the "lamin

#2 
Senior Member
Join Date: Mar 2009
Posts: 854
Rep Power: 14 
Use simpleFoam with the "laminar" turbulence model.


July 19, 2005, 10:31 
I want to patch, in the first

#3 
Member
olivier Petit
Join Date: Mar 2009
Location: Göteborg, Sweden
Posts: 67
Rep Power: 9 
I want to patch, in the first zone where y<1,
a viscosity wich is different than the one in the second zone where y>1. How can i do that, please Thanks a lot. 

July 19, 2005, 14:56 
Have a look at the setGammaDam

#4 
Super Moderator
Mattijs Janssens
Join Date: Mar 2009
Posts: 1,416
Rep Power: 17 
Have a look at the setGammaDambreak utility in the damBreak tutorial on how to access the cell centres.
Change the createFields.H in your solver and make the nu into a volScalarField. Either use the same syntax as for e.g. p in which case it gets read from disk or use the extra constructor argument: volScalarField nu ( IOobject ( "nu", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar(transportProperties.lookup("nu") ) ); 

July 19, 2005, 15:32 
Hi, Henry,
Thanks for your

#5 
New Member
Jing Wang
Join Date: Mar 2009
Location: Toronto, Ontario, Canada
Posts: 7
Rep Power: 9 
Hi, Henry,
Thanks for your last reply. I tried simpleFoam and it got a converged solution for my problem. But the pressure seems about 2 orders lower than expected. I am somehow confused about the PDE equation defined in simple foam, which is: tmp<fvvectormatrix> UEqn ( fvm::div(phi, U) + turbulence>divR(U) ); UEqn().relax(); solve(UEqn() == fvc::grad(p)); It seems the diffusion term, fvm::laplacian(fluid>nu(), U), doesn't appear here. I think it it included in the turbulence>divR(U) term, but can not figure it out by looking at the source code. My question is, if I use laminar model in simpleFoam, are the PDEs in nonNewtonianIcoFoam and SimpleFoam going to be exactly the same (except for the time derivative) ? How does simpleFoam read in the transport properties(I don't see 'transportProperties.lookup("nu")' in simpleFoam's sourcecode) ? Thanks a lot. 

July 19, 2005, 15:39 
simpleFoam should give very si

#6 
Senior Member
Join Date: Mar 2009
Posts: 854
Rep Power: 14 
simpleFoam should give very similar results to nonNewtonianIcoFoam.
The laminar transport model is created by autoPtr<transportmodel> laminarTransport ( transportModel::New(U, phi) ); in simpleFoam and equivalently by autoPtr<transportmodel> fluid ( transportModel::New(U, phi) ); in nonNewtonianIcoFoam, dimensionedScalar nu ( transportProperties.lookup("nu") ); is redundant and should be removed. The laminar stress term is indeed included in turbulence>divR(U) 

July 20, 2005, 18:58 
Thanks, Henry. I checked the s

#7 
New Member
Jing Wang
Join Date: Mar 2009
Location: Toronto, Ontario, Canada
Posts: 7
Rep Power: 9 
Thanks, Henry. I checked the source code and is much better informed now.
I have a very simple question (maybe stupid) about the following line of code: fvc::div(nuEff( )*dev(fvc::grad(U)( ).T( ))) It looks like this is the momentum source, which is ignored in nonNewtonianIcoFoam. But I have never seen expressions like "grad(U)( )" in C++ code (a function call followed immediately by a pair of brackets). Is the return value from grad(U) used as a function name here? Thanks a lot if you can clarify a little bit. 

July 20, 2005, 19:09 
In incompressible flow that te

#8 
Senior Member
Join Date: Mar 2009
Posts: 854
Rep Power: 14 
In incompressible flow that term will be small but only zero if the viscosity is uniform and hence formally should be included in nonNewtonianIcoFoam.
fvc::grad(U) returns a tmp<voltensorfield> and the transpose member function .T() is called for the const volTensorField& returned by the tmp dereferencing operator (). 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Couette flow with nonNewtonianicoFoam  floooo  OpenFOAM Running, Solving & CFD  2  December 7, 2010 06:39 
SteadyState  tutlhino  OpenFOAM Running, Solving & CFD  5  April 30, 2009 09:10 
Steadystate settlingFoam  darrin  OpenFOAM Running, Solving & CFD  0  February 28, 2007 05:51 
Steadystate Vs Transient solver  amitshah  OpenFOAM Running, Solving & CFD  1  August 23, 2006 02:54 
Steadystate Euler solver  jelmer  OpenFOAM Running, Solving & CFD  1  June 19, 2006 08:24 