CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Announcements from Other Sources (
-   -   Hypersonic and Supersonic Flow Solvers (

hyFoam March 7, 2017 13:03

Hypersonic and Supersonic Flow Solvers
Dear Foamers,

This post is to let you know about the open-source release of the hyStrath GitHub repository that contains
two new solvers to deal with hypersonic reacting flows and supersonic combusting flows.

You will find more information here:
- source code:
- Wiki page:

March 2017: Open-source release version 1.0
  • source code
  • tutorials
  • hy2Foam
* generic case
* 2D axisymmetric blunted cone
* 2D planar cylinder

  • hyFoam
* coming soon (April 2017)
  • manuals
  • latest conference presentation (03 Nov. 2016, Final Stardust Conference at ESA-ESTEC)

Available for OpenFOAM versions

Pre-requirements: Good knowledge of OpenFOAM and the rhoCentralFoam solver
Installation: ./

Related articles to be found at:
Latest conference papers:
  • Available soon: J.-J. Hoste et al. 'Numerical Modeling and Simulation of Supersonic Flows in Propulsion Systems by Open-Source Solvers' (AIAA Hypersonics, Xiamen, China, 6-9 March 2017)
hy2Foam is an open-source two-temperature computational fluid dynamics (CFD) solver that has been developed
to tackle the highly complex flow physics of the hypersonic planetary atmospheric entry. Implemented within
the OpenFOAM framework, the code has the capability to model physical phenomena relative to the high-speed
chemically-reacting environment surrounding a spacecraft. The core of the solver initially relied on OpenFOAM
solvers rhoCentralFoam and reactingFoam and it has been complemented with many new features, some of which
are listed below

* non-equilibrium Navier-Stokes-Fourier equations: Park's two-temperature CFD model is implemented
and the choice of having a single vibrational energy pool and multiple vibrational energy pools is left to the user.
Energy transfers between the different energy pools are
+ Vibrational-Translational (V-T)
+ Vibrational-Vibrational (V-V)
+ Heavy particle-electron (H-e)
+ Electron-Vibration energy transfer (e-V) --> available soon
* addition of the electronic and electron energy modes
* finite-rate chemistry
* chemistry-vibration coupling: Park TTv model, coupled vibration-dissociation-vibration (CVDV) model
* customizable chemistry databases (Park 1993, Park 1994, Dunn & Kang 1973, quantum-kinetics: Scanlon 2015)
including dissociation, electron impact dissociation, electron impact ionization, associative ionization,
exchange and charge exchange reactions
* capability to handle species with several characteric vibrational temperatures (e.g., CO2) for the Mars atmospheric entry
* transport models: Blottner and Eucken, power law and Eucken, Sutherland and Eucken, constant
* species diffusion models: Lewis number, generalised Fick's law
* mixing rules: Wilke, Armaly & Sutton
* turbulence models (no change made to OF 2.3.0): laminar, k-omega SST, k-Epsilon, Spalart Allmaras
* computation of the convective wall heat flux
* computation of the mean-free-path and the breakdown parameter
* boundary conditions: Smoluchowski temperature jump and Maxwell velocity slip BCs were adapted.
Possibility to gradually increase the inlet flow velocity (rampInlet).
* all dictionaries can be re-read on-the-fly: handy on a high-performance computer.
hyFoam is an open-source computational fluid dynamics (CFD) solver that is derived from hy2Foam. In the latter
code, the trans-rotational and vibro-electronic energy modes are considered to be in thermal equilibrium at all times,
thus producing a single-temperature CFD solver. hyFoam has the capability to model the high-speed chemically-reacting
environment inside a scramjet. Most of hy2Foam features remain accessible and hyFoam further receives the addition of

* customizable chemistry databases (Evans & Shexnayder 1980, Jachimoski 1992)
* hydrogen compounds added to the thermochemical database
* transport model: CEA2 (Chemical Equilibrium with Applications, NASA)

> While we did our best to eliminate bugs, please do not hesitate to contact us should you find anything.

hyStrath has been developed under the license GNU GPL-3.0 at the University of Strathclyde, Glasgow, UK.
This work is funded by the Engineering and Physical Sciences Research Council (EPSRC).



glypo August 18, 2017 10:24


This is very interesting work. Thank you. I am curious - do you have any plan to move away from the Kurganov scheme that rhoCentralFoam is based? Perhaps to something a little less thermally diffusive? Or, are you happy/satisfied with the Kurganov scheme?

From (brief) prior conversations I believe the OpenFOAM developers have considered other schemes previously but didn't see any obvious benefit. However, I have always thought that AUSMDV, AUSM+ or HLLC, etc are supposed to be less diffusive, if a little less computationally robust.

Many thanks,

hyFoam August 22, 2017 04:01

Hi Jason,

Thanks for your comment.

For the reasons you mentioned, I am not satisfied in having KNP as the only scheme to choose from. Ideally, I would have wanted at least one of these three to perform comparisons with KNP in some specific areas of the flow-field.

Time did not permit it so far unfortunately and funding for this project ended beginning of this year. But I believe that the implementation of AUSM+ -up in particular has already been attempted by OF users – a simple google search returns results – and this could be integrated should they want to release their code open-source.



PS: I am reposting the link to the source code, the one above is not working

navierstokes August 23, 2017 03:53

Dear Vincent,

I've been running the test cases that are provided in hyStrath for hy2Foam solver. One issue we faced is regarding the test case "cylinderReactingMach20". The application runs fine in serial, but when I try to run it in parallel with


$ decomposePar
$ mpirun -np 4 hy2Foam -parallel

I get the following error:


Selecting chemistry2Reader foam2ChemistryReader
chemistry2Model: Number of species = 2 and reactions = 2
    using integrated reaction rate

Reading thermophysical properties

Reading field U

Creating turbulence model

Selecting turbulence model type laminar

Loading the transport mixing rule:    Wilke

Loading the rarefaction parameters library

Loading the multispecies transport model:    Fick

[1] #0  Foam::error::printStack(Foam::Ostream&) at ??:?
[1] #1  Foam::sigSegv::sigHandler(int)No finite volume options present

fluxScheme: Kurganov
 at ??:?
[1] #2  ? in "/lib64/"
[1] #3  Foam::PtrList<Foam::fvPatchField<double> >::operator[](int) const at ??:?
[1] #4  Foam::binaryDiffusivityModels::GuptaD::D() const at ??:?
[1] #5  Foam::diffusivityModel::diffusivityModel(Foam::word, Foam::word, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::List<Foam::word> const&) at ??:?
[1] #6  Foam::multiSpeciesTransportModel::multiSpeciesTransportModel(Foam::rho2ReactionThermo&, Foam::compressible::turbulenceModel2 const&) at ??:?
[1] #7  Foam::Fick<Foam::BlottnerEuckenTransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2Gas<Foam::advancedSpecie> >, Foam::sensible2InternalEnergy> > >::Fick(Foam::rho2ReactionThermo&, Foam::compressible::turbulenceModel2 const&) at ??:?
[1] #8  Foam::multiSpeciesTransportModel::addfvMeshConstructorToTable<Foam::Fick<Foam::BlottnerEuckenTransport<Foam::species::multiThermo<Foam::decoupledEnergyModesThermo<Foam::perfect2Gas<Foam::advancedSpecie> >, Foam::sensible2InternalEnergy> > > >::New(Foam::rho2ReactionThermo&, Foam::compressible::turbulenceModel2 const&) at ??:?
[1] #9  Foam::multiSpeciesTransportModel::New(Foam::rho2ReactionThermo&, Foam::compressible::turbulenceModel2 const&) at ??:?
[1] #10  ? at ??:?
[1] #11  ? at ??:?
[1] #12  __libc_start_main in "/lib64/"
[1] #13  ? at ??:?
[brego:14798] *** Process received signal ***
[brego:14798] Signal: Segmentation fault (11)
[brego:14798] Signal code:  (-6)
[brego:14798] Failing at address: 0x1f4000039ce
[brego:14798] [ 0] /lib64/[0x378f432510]
[brego:14798] [ 1] /lib64/[0x378f432495]
[brego:14798] [ 2] /lib64/[0x378f432510]
[brego:14798] [ 3] hy2Foam(_ZNK4Foam7PtrListINS_12fvPatchFieldIdEEEixEi+0x15)[0x45b0b5]
[brego:14798] [ 4] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f0654f00140]
[brego:14798] [ 5] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f0654f02f61]
[brego:14798] [ 6] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f065517ae1b]
[brego:14798] [ 7] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f06551bd769]
[brego:14798] [ 8] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f06551bdb7e]
[brego:14798] [ 9] /home/opaca/OpenFOAM/opaca-2.4.0/platforms/linux64GccDPOpt/lib/[0x7f065519d6a5]
[brego:14798] [10] hy2Foam[0x4350f1]
[brego:14798] [11] hy2Foam[0x42e88a]
[brego:14798] [12] /lib64/[0x378f41ed1d]
[brego:14798] [13] hy2Foam[0x42ea29]
[brego:14798] *** End of error message ***
mpirun noticed that process rank 1 with PID 14798 on node brego exited on signal 11 (Segmentation fault).

When I make the following changes in constant/transportProperties file -inspired by another test case-
  • multiSpeciesTransport noSpeciesDiffusion; //Fick;
  • binaryDiffusivityModel noBinaryDiffusivityModel //GuptaD;
the case appears to run in parallel. So, it seems to me that there is problem regarding the parallel implementation for these models.

Could you please help me out on this issue?


hyFoam August 23, 2017 06:05

Hi Onur,

Thanks for reporting a potential issue.

I have run this tutorial myself just now and it would seem to work fine in serial and in parallel. Could you please send a zip of your working folder to the gmail address provided in my GitHub page.



PS: is your constant/transportProperties dictionary up-to-date? Here's the one to be used for that case:

navierstokes August 23, 2017 08:05

Hi Vincent,

Yes, my constant/transportProperties dictionary is up-to-date. It is the one that I cloned it from hyStrath git repo. I also just checked it now and saw that they are identical.


hyFoam August 23, 2017 09:04


The issue is fixed (this version of GuptaD.C was pushed by mistake and was not supposed to belong to the current commit). Thanks Onur for noticing it. Please git pull the latest commit if necessary.

Do not hesitate to Create an Issue directly on GitHub next time.



skumar112 February 10, 2018 12:17

Hello Vincent

I am unable to find the hyFoam solver under the solver list could you please direct me to the solver. I was also wondering if you had updated hyFoam for OF 5.0.


hyFoam February 17, 2018 15:46

Hi Sunil,

I released the upgraded version of the CFD libraries and solvers for use in OF-v1612+ today. The webpage is unchanged:



spkumar July 25, 2019 10:33


I am a PhD student, working on supersonic combustion.I am using OF 7.0. I wanted to use hyfoam solver. But, I am unable to find the hyfoam solver in this link: Could you please tell me where can I find those files?

hyFoam July 26, 2019 22:24


OF-7.0 is not supported, the latest version is v1706.
Please see the Wiki for the naming convention of hyFoam:


spkumar July 27, 2019 19:33

Thank You for the information. I will go through that link.

Originally Posted by hyFoam (Post 740163)

OF-7.0 is not supported, the latest version is v1706.
Please see the Wiki for the naming convention of hyFoam:


spkumar October 24, 2019 02:36

HI vincent,

I could able to run the hy2Foam and hyFoam tutorials in OpenFOAM 1706. I read the instructions as you said for the conversion of hy2Foam to hyFoam to model the supersonic combustion. I did not find the information related to turbulence chemistry interaction. Does it include turbulence chemistry interaction ? :)

Thanks & Regards
Pranay kumar

hyFoam October 26, 2019 11:19

Hi Pranay,

The only turbulence-chemistry interaction model available is laminar. I didn't restore the other models that can be found in src/combustionModels/ to date.
Feel free to transpose the implementation to the model of your choice and submit a pull request. I'll be double-checking your implementation.


spkumar October 27, 2019 06:09

Thank you vincent. What I understood was that this solver calculates the reaction rates using arrhenius kinetic expression and turbulence chemistry coupling is ignored.I will be working on this turbulence chemistry coupling as a part of my phd work.

Currently, I am simulating supersonic combustion with your hyfoam solver. To know the boundary conditions, I read createFields header file.I have few doubts.

I could not able find the terminology of "kappatr" and "kappave" and how to ignite the mixture ? Do I need to patch the region with high temperature as similar to the reactingFoam cases ? Do I have to give energy released per unit time (dQ) as B.C's/I.C' condition or what exactly this dQ means here?

Thanks & Regards

hyFoam October 27, 2019 08:22

Hi Pranay,

Could you please open an Issue on my Github and copy-paste your post.
I will answer there.


spkumar October 28, 2019 06:48


Originally Posted by hyFoam (Post 748170)
Hi Pranay,

Could you please open an Issue on my Github and copy-paste your post.
I will answer there.


Okay. I was not familiar with Github actually. I just understood how to use it. I have created an account there.I will discuss about my problem on your Github.

Thanks & Regards

Jiangc November 22, 2019 07:25

Hi, I am very interested in hyfoam.
Can i use hyfoam to simulate detonation problem? Thanks

hyFoam November 23, 2019 12:15

We've never used hyFoam for detonations but you may have come across a journal article from Marcantoni ( on that topic.His solver and mine rely on the same foundations: the rhoCentralFoam and reactingFoam solvers. You should be able to match his results with hyFoam.


LeOverseer May 29, 2020 10:48

Validity for v1912
Dear Sir,

On your git page, (the compatibility section specifically) says that the current version is valid upto v1706.

I was wondering if your solver is supported on v1912 as well.

Thanks and Regards

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