Management of the synchronisation between Code_Saturne and Syrthes for conjugate heat transfer.
Hi everybody!
In our category Tips & Tricks for CFD, I propose in this little post to provide some useful informations about the coupling between Code_Saturne and Syrthes for conjugate heat transfer. Let’s go! 🙂
Conjugate heat transfer, what is it?
Conjugate heat transfer is an approach describing thermal exchanges between a solid body and a fluid flowing around or inside it. Physical processes and governing equations are considered separately, and there is a coupling to take into account the fluid-solid interaction. Solution of the system provide the distributions of temperature and heat flux at the body–flow interface, eliminating the need for a heat transfer coefficient.
This is a very common strategy to correctly model thermal fluid-solid interactions. It can concerns a large set of applications, as designing of a heat exchanger, or studying indoor ventilation.
About Code_Saturne & Syrthes software
Code_Saturne is a CFD software developped by EDF R&D[1], based on a finite-volume approach. It proposes a lot of modeling possibilities, including (among other things) turbulence, combustion, atmospheric flow, rotor/stator interaction, compressible flow… and the possibility to couple the software with Syrthes for conjugate heat transfer.
Syrthes is a general thermal software, developped by EDF R&D[2], dedicated to transient thermal simulations in complex solid geometries. It manages conduction and radiation, and offers the possibility to be coupled with Code_Saturne for heat conjugate transfer.
To have more information, it’s possible to visit Code_Saturne and Syrthes websites. There is also a forum for support of both software.
Useful synchronisation commands
Making a conjugate heat transfer simulation with Code_Saturne and Syrthes is quite simple : with latest versions, coupling can be set via the GUI of both codes. However, for some requirements, or the development of users settings, use source files directly may be necessary.
This is particularly the case for personalising the synchronisation between the two software : by default, there is no time synchronisation, only a synchronisation based on iterations. In any case, coupling is done at each iteration. So there are two options :
- Fix identical time steps on each side, which is mandatory for transient simulations.
- Set independent time steps on each side, in order to accelerate convergence for a steady approach, for example.
But using user source file named cs_user_coupling.c, other possibilities are available thanks to cs_coupling_set_sync_flag() and cs_coupling_set_ts_multiplier() functions. Here are the most useful in my opinion :
cs_coupling_set_sync_flag(PLE_COUPLING_TS_LEADER);
With this option, Code_Saturne will impose its time step to Syrthes. It’s very useful in the case of a transient simulation with time varying adaptive time steps.
cs_coupling_set_sync_flag(PLE_COUPLING_TS_MIN);
Using that, all coupled codes will use the smallest time step proposed by each of them.
cs_coupling_set_ts_multiplier(double m);
With this function, we define a time step multiplier for external couplings (including Syrthes, of course). This may have an interest in a case with very different time scales between fluid and solid.
With these commands, I think it’s possible to manage most of encountered situations. That’s all for this little post, I hope you find this information useful, see you soon for another post!
Thank you for reading this article, and for visiting our website! 🙂
References
[1] Frédéric Archambeau, Namane Méchitoua and Marc Sakiz, ‘Code_Saturne: a Finite Volume Code for the Computation of Turbulent Incompressible Flows’, International Journal on Finite Volumes, volume 1, 2004.
[2] Syrthes website : https://www.syrthes-software.org/
[3] Code_Saturne website : https://www.code-saturne.org/cms/web/