Skip to content

Conversation

@raghava-davuluri
Copy link

Summary
This PR adds temperature-dependent Jacobians for chemical source terms and density- and temperature-dependent Jacobians for vibrational energy source terms. With this addition, Mutation++ provides analytical Jacobians for both chemical and vibrational source terms, along with the corresponding source terms, enabling implicit time integration in coupled CFD solvers.

Scope of changes

  • Extension of chemical source-term Jacobians to include temperature dependence.
  • Analytical Jacobians added for vibrational energy source terms for all vibrational energy transfer models.
  • Jacobians are added alongside existing source-term implementations, without changing how Mutation++ is used.
  • C++ implementation only; no new physical models introduced.

Motivation
Previously, Mutation++ provided only density-dependent Jacobians for chemical source terms, while analytical Jacobians for vibrational energy source terms were not available. As a result, CFD solvers coupled with Mutation++ were typically run in explicit mode, which can be computationally expensive for thermochemical nonequilibrium flows.

By introducing temperature-dependent Jacobians for chemical source terms and density- and temperature-dependent Jacobians for vibrational energy source terms, this work enables the use of Mutation++ in fully implicit CFD simulations. This allows solvers such as SU2 and other external CFD solvers coupled to Mutation++ to model thermochemical nonequilibrium effects efficiently.

Technical details
Analytical Jacobians are provided for finite-rate chemical source terms with respect to the translational–rotational and vibrational–electronic temperatures. Jacobians for the vibrational energy source term are provided with respect to species partial densities, translational–rotational temperature, and vibrational–electronic temperature.

The vibrational energy source-term Jacobians are implemented for all existing vibrational energy transfer models. The implementation primarily targets the two-temperature thermochemical nonequilibrium framework in Mutation++, with an internal flag that enables temperature-dependent chemistry Jacobians within the one-temperature model.

Verification and testing
Unit tests were added to Mutation++ to verify the temperature-dependent Jacobians of the chemical source terms, and they passed.

Dedicated unit tests for the vibrational energy source-term Jacobians were not added at this stage, as defining a simple and sufficiently general unit-test framework for these terms proved nontrivial. The author is open to suggestions from the maintainers about the best approaches for testing these Jacobians and would be happy to incorporate them in a follow-up update.

In the meantime, the vibrational energy-source term Jacobians were verified through coupled SU2 simulations. Heat-bath simulations were performed using both explicit and implicit time integration for Air-5 and Air-11 mixtures, demonstrating consistent behavior and stable convergence in implicit mode. Additional verification and validation cases were also carried out using SU2 with implicit settings. The corresponding heat-bath results are attached to this pull request.

Impact and compatibility
The changes are backward compatible and do not alter existing behavior unless the calling CFD solver explicitly requests them. No changes are introduced to default workflows.

Notes for Reviewers
Feedback on the formulation and implementation of the vibrational energy source-term Jacobians would be especially welcome.

Report_HeatBath_SU2_Davuluri.pdf

Kyle Hanquist and others added 24 commits January 20, 2025 14:01
…alculating temperature-related chemistry jacobians.
…source term jacobians and also made changes to earlier version to minimize the memory leak.
… species. Allows to run SU2 to run for single species. Also, added nitrogen (N2, N) mixture and N2 dissociation mechanism in data.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants