Hi @yiyuchen,
I recently was helping a customer with a similar application and built a demo project. Check out the share file here. Keep in mind I chose to use complicated geometry because it looks good; scaling this up a ton is not realistic. I would use solid blocks.
Copy/Pasting some information I wrote up a while back:
Recommended Path Forward:
A pure CO inlet represents 1,000,000 parts per million, while the area of interest is 60-100 parts per million CO. The analysis should be set up different to focus in on a smaller range. Because we are not concerned with the combustion (chemical reaction) inside the engine, the tailpipe exhaust CO concentration (mass fraction, PPM) should be calculated. This will be the upper limit of CO concentration in our CFD domain, and will be assigned a scalar of 1. By doing this we are reducing the CO concentration from “Pure CO” to “ambient air”, to “Tailpipe exhaust” to “ambient air”.
There are many online calculators/resources to find volumetric flow rate of air. Doing a quick hand calc based on a 2 L engine idling at 1000 RPM, I get a volume flow rate of 16.67 L/s. At the same time, your supporting document shows the average car emitting about 13 g/min of CO. With some conversions, it appears 1 car tailpipe exhausts 20.42075 g/s of air and 0.2166 g/s of CO. This means the exhaust CO will be 10,500 PPM. We will consider this Scalar = 1. By doing this we drop our range of potential CO concentration from 0 – 1,000,000, to 0 – 10,500. This is much more attainable, and will resolve most of the problems.
How to model car exhaust in CFD:
A couple of approaches are possible for modeling the car exhaust, and depending on the size of your domain/required accuracy, one may work better than another. It is important to remember that an idling car is not adding mass to the system; the car intake sucks air in at the front of the car and exhaust through the tailpipe at the back.
My approach: Using an internal fan with suppressed housing around it and internal boundary conditions
This is considered a “closed system” and will probably be the most accurate approach. It will also be more resource intensive. It will consider of a cylindrical tube which is assigned as an internal fan, along with a suppressed solid housing around the tube.
Outlet boundary conditions: scalar = 1, temperature
Internal fan: use material editor to assign the flow rate

Comments on material properties:
While looking at the material properties of pure air and pure CO, a few things are noted. The material properties (namely density, viscosity) are within 5% of each other. Furthermore, after realizing the highest concentrations of CO in our system will be about 10,500 PPM, it is clear the dominant material characteristics will be that of air. A new material could be defined with scalar 1 having material properties of 98.95% air 1.05% CO (mass averaged), but this seems unnecessary and an overcomplication. Furthermore, due to the hot exhaust temperatures in the domain, natural convection should be modeled. This means the material properties would have to be calculated and mapped out in CFD for a range of temperatures. Considering CFD already has this data for air, I personally would just use the default material air and set it to Variable.
Check out this cool image. Notice the custom result quantity. The isovolume represents areas that have a CO concentration of 60 PPM or higher.

Thanks,
Matt Bemis
Technical Support Specialist