My thesis is on developing numerical methods for model reduction in combustion. I run my methods purely on the chemistry part of combustion simulations, and I have plenty of case studies for 0-D simulations (no flow). What I would like is to run simulations that do have flow in them, preferably 2-D or 3-D simulations.
These simulations would need to be in parallel, due to the high computational requirements. I'd also need something that can interface with chemistry solvers like Chemkin or Cantera, for which I have the source code. (Chemkin is in Fortran 77, and Cantera is in C++.)
In the ideal case, I could specify a flow pattern using the basic knowledge of fluid mechanics I have from my grad program and some CFD package, add the chemistry, and run it. If I have to, I can set up the equations governing the fluid motion and chemistry for a simple case study based on an experimental setup used by a former collaborator, but I'd very much prefer not to roll my own CFD code unless there were a package or packages that made it extremely easy to do it. I'd be willing to spend 2-3 weeks on it; I don't know if this requirement rules out PETSc or Trilinos. If I have to spend any longer on it, I'd rather put it off until later, because I have a collaborator supplying a CFD code for case studies as well.
Does anyone have any experience using a CFD package or writing CFD code, and if so, can you recommend one? One thing I know I'd like to use is Strang splitting, but I'm not a CFD or PDE expert; I study the chemistry and the numerical methods for the model reduction. Also, please comment on how long it took you to get up to speed using the software you recommend.
@FrenchKheldar makes a good point that I should mention the characteristics of problems I'd like to solve:
- Ideal (perfect) gas, single-phase
- Compressible
- Laminar flow is essential; turbulent flow is a plus. (I know a little bit about turbulence from previous work in numerical methods in CFD, but I haven't worked on CFD solvers; I just know a little about physics.)
- Zero-Mach-number formulation is okay (I don't care about shocks or supersonic flow)
- Combustion chemistry, ignoring Soret and Dufour fluxes, and treating diffusion as Fickian
- Geometry can be something simple
I can write interfacing code, though the less I have to write, the better; @FrenchKheldar also points out that Cantera has Fortran and Python bindings. I use the Cantera Python bindings right now for rapid prototyping, so I'm comfortable with those also.