CFD Online Discussion Forums

CFD Online Discussion Forums (
-   STAR-CCM+ (
-   -   Using user scalar to tracking species consumption (

showerlin March 20, 2012 18:34

Using user scalar to tracking species consumption
Dear STAR-CCM+ experts,

I'm fairly new to STAR-CCM+ and seeking for best practice for a problem I'm working on. here provide background of my problem and the result I'm looking for,

- simple gas flow (laminar) from 1 inlet to 1 outlet
- the gas is passing thru split channels and then merge into one to outlet

there are complex chemistry reaction happening (surface reaction) during the process but the reaction itself didn't have strong effect on the fluid dynamics (i.e. density, viscosity, remain the same).

I'm trying to setup the model without dealing with the detail reaction chemistry reaction and like to get a general idea of how a particular species got consumed in the flow network design.

Example: at the inlet there are 100% Oxygen, and it will get consumed along the length, at 80% the flow split into 2 channels (with different length), at the end of channels, one will have 30%, and the other one have 10%, then they will merge to yield 20% toward outlet. and finally reach the outlet at 5% oxygen left. (the species consumption rate is constant per unit length)

I've been looking thru the user manual, and thinking the "user scalar" might be the good candidate. As I knew other package (CFD-ACE+) could do this using "user scalar" function. Unfortunately, without some examples or tutorial, it is really hard to figure this out from the manual.

Please kindly help me to advice the best/easiest way to setup the problem in STAR-CCM+ or pointing me into the right direction to look into.

Really appreciate for your great help. :)


abdul099 March 21, 2012 09:07

The model you're looking for is "passive scalar". You can activate it in the physics continuum like any other model and create some passive scalars there (could be an arbitrary number of scalars).
Then put a value in the initial conditions and on the boundaries you want to participate in any way and, of course, at the inlet. E.g. you say, as soon as oxygen gets to the wall, it participates to the reaction and therefore gets lost. So you put the passive scalar to 0 at the wall. Please be aware, this would model an infinite fast reaction which is limited just by diffusion.
Another option is to put a source term when the reaction doesn't happen at the wall but in the "middle" of the volume. Then you put a value for the scalar source in the region.

Regardless of where you put your source (or sink) term, you can also specify it by use of a field function. This might give you more control over what's happening. E.g. you could create a field function to put some other scalar in as soon as another one disappears to model the reaction products.

showerlin March 21, 2012 20:55

Hi abdul099,

Thanks a lot for your great help!
I'm able to get close to what I want following your suggestion.

(method-1) putting passive scalar =0 at the wall, and play with Schmidt number to get result closer to validation case (you are right that this setup is only limited by diffusion).
The only drawback with this setup is that now the oxygen won't mix well when channel merged.

(method-2) putting passive scalar source on the region with a negative number. play with the number to get the result close to validation case. This setup is better since it is not suffering the diffusion limitation for the mixing.

Just for my own learning, I also tried to setup the passive scalar source as field function. to see if I can get the mechanism closer to real reaction. However, the field function setup is not straight forward... again the manual is not helpful at all... sighh... :(

any hints again on the field function? or any closer example to this case?

Thanks again!

abdul099 April 1, 2012 16:28

That depends on what your field function should do. Can you post an example for the conditions or the equation?
When you want to restrict your field function to a small area of your whole domain, you might create a cell set (Representations -> Volume Mesh -> Right-Click...) and reference it in your field function.

All times are GMT -4. The time now is 19:56.