CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   scalarTransportFoam (

cfddwarf December 2, 2011 10:22

Hello Folks,
Iam new to OpenFoam and there are so many things I have not yet figured out. I would like to model the transport equation for different species. I have inlet flows with different concentrations and would like to see how the concentrations spread in my volume.

:confused: I understand I could use scalarTransportFoam a couple of times, i.e. for each concentration, but there should be a way to solve all the transport equations at once?

:confused:I understand modelling chemical reactions in OF is difficult. Especially in fluids. Why cant the scalar transport equation just be extended by the sourceterm and then solved?

Iam sure, the answers to my questions are straightforward to most of you. I would appreciate any answer. Thanks.

marupio December 2, 2011 12:53

Exactly my area of research.

Often it is conventional to solve the governing equations simultaneously, e.g. in systems of ODEs. But continuum mechanics have PDEs as governing equations, and these are not conventionally solved simultaneously because it's much harder. Even for incompressible laminar flow, we solve continuity first, then momentum (pressure) second. The problem comes in trying to "couple" these two solution methods. It took many decades of research before some efficient algorithms were developed - SIMPLE and PISO.

If you want to solve the PDE equations *simultaneously*, these solvers are now available. Not in OpenFOAM-2.0.x, but look in OpenFOAM-extend-1.6.x. They have what's known as a "block-coupled matrix solver". The one in OpenFOAM-extend is very powerful, in that it can be used to solve any kind of block coupled matrix: point-implicit, full coupled, with scalars, vectors, tensors, etc..

There are two main kinds of block-coulped matrices. A "point-implicit", where the coupling effects between variables are only local to each cell, and "full-coupled", where the coupling effects between variables extend throughout the entire control volume. The full-coupled solver is very taxing on computer memory. So if you would be able to use a 2 million element mesh with a conventional solver, a full-coupled solver would only allow you to use say 200,000 elements for the same memory.

If you want to solve the flow field, you need a fully-coupled solver. But if you only want to solve chemical reactions, you can probably get by with a point-implicit solver.

There are three options I see:

1. Fully segregated: i) solve the flow, ii) transport the species, iii) solve the reactions. All of these are done separately. The timestep is limited by the Nyquist criterion. This is how rhoReactingFoam works, for example.

2. Point-implicit: i) solve the flow, ii) the transport and react the species. The second step is your point-implicit solver. It combines reactions and transport, but it requires a static flow field. The timestep is not limited by the Nyquist criterion, but the question is: how much will the reactions affect the flow field? How safe is the larger timestep? For combustion, I'd think it wouldn't differ too much from option 1.

3. Fully-coupled. Solve the flow, reactions, and species transport all together. This would have a huge memory footprint, which probably would scale exponentially with the number of species involved. But this would be totally independent of the Nyquist criterion.

I hope that helps!

marupio February 6, 2012 21:21

Not Nyquist. I mean Courant number. Writing my thesis now and I realized I've been using the wrong term all along.

All times are GMT -4. The time now is 20:35.