Conjugate heat transfert - 2D - Flow past cylinder

Questions and remarks about code_saturne usage
Forum rules
Please read the forum usage recommendations before posting.
jgd23
Posts: 141
Joined: Mon Jun 06, 2016 10:00 am

Conjugate heat transfert - 2D - Flow past cylinder

Post by jgd23 »

Hello,

In order to find the right parameters for a 3D case, first I debug a more simple and well know 2D case "Flow past a cylinder".
I use Code Saturne internal coupling for the conjugate heat transfert.

My problem is that the simulation doesn't converge, the pressure diverges. See the error message log.

The Mesh is 100% ok. MED file done with Salome. The see log file

I switch for laminar with very low velocity, transient or steady, each time the same error occurs.
Could you advise me what is the issue with this case?

Bets regards
Attachments
run_solver.log
(23.82 KiB) Downloaded 50 times
preprocessor.log
(6 KiB) Downloaded 47 times
Screenshot from 2022-12-04 14-15-08.png
Antech
Posts: 197
Joined: Wed Jun 10, 2015 10:02 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by Antech »

Sorry, cannot help you with this particular error (looks like something's wrong in default Saturne settings with 2D mesh). But, as a workaround, you can use 3D "flat" case, just slice your geometry and create 3D mesh.

Common way (not in this situation) to solve divergence problems is:
1. Upwind scheme for all (then switch to SOLU with blending 0.65...1 for what you need, for example, for velocity and temperature, but not for turbulence).
2. Adaptive CFL=1...5 for steady-state cases (local timestep).
3. Gradient reconstruction: Least squares + Non-orthogonal faces threshold (legacy). Other option is "Full (all vertex adjacent)" but it's slow. Green-Gauss is fast but not stable. BTW, Least squares is default in Fluent.
4. Variable limiting in cs_user_extra_operations. Usually velocity and pressure limiting is needed. Set limits according to your case. You only need to catch too high/low values in simple code and limit variables (loop/test/limit).
5. Relaxation in cs_user_parameters. Relaxation coefficients are 0.1...0.3 for velocity and pressure, 0.8 for turbulence and enthalpy, 1.0 for chemical species. Example for velocity:

Code: Select all

cs_field_t* field;
cs_equation_param_t* eqnPar;
field=CS_F_(vel); /* Field structure */
if (field!=NULL) /* Field present */
{
 eqnPar=cs_field_get_equation_param(field); /* Field options structure */
 eqnPar->relaxv=0.8; /* Relaxation factor */
};
vlado285
Posts: 16
Joined: Fri Feb 12, 2021 9:52 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by vlado285 »

Hello,

1. I found in your run_solver that you have the one group"42" that is not found in your mesh.

"Code_Saturne: /home/julien/Code_Saturne/code_saturne-7.2.0/src/mesh/cs_mesh_location.c:595: Warning
The group "42" in the selection criteria: "42"
does not correspond to any boundary face."

2. The internal coupling shows that you have 0 coupled boudary faces.

" Locator: n dist points (total coupled boundary faces) = 0"
Antech
Posts: 197
Joined: Wed Jun 10, 2015 10:02 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by Antech »

Yes, as mentioned above you have some named selections problems, please check that your selection criteria corresponds to mesh named selections. I just want to point out that you also have no faces in your interface BC.

Code: Select all

  Boundary zone "interface"
    id              = 8
    Number of faces = 0
    Surface         = 0
If you want some automation, create AWK scripts to parse Saturne output. It's very useful in engineering practice, You can monitor solver iterations, min/max/ave of fields in a convenient way with colored-output scripts. Add "error", "warning" and other word/phrase conditions to print errors, warnings and other messages of the solver. You will see them without need to check the entire listing. Quick workaround is something like tailf ./listing | grep warning.
jgd23
Posts: 141
Joined: Mon Jun 06, 2016 10:00 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by jgd23 »

Hello,

Thank you for your answers.

I have seen before post that the face 42 was not recognize but I don't pay attention to this because in my 3D case it was the same. I was thinking that the coupling between fluid-solid works anyway.
I triple check the name of the interface on Salome + paraview and I see that it is correct face 42 is the name of the interface.

This face is shared with the solid and fluid volumes. There is only one face.

I add the coupling scalar in CS. See the new run.solver.log file

Still the same problem.

Julien
Attachments
run_solver.log
(24.75 KiB) Downloaded 51 times
Screenshot from 2022-12-05 12-52-18.png
Screenshot from 2022-12-05 12-48-21.png
Antech
Posts: 197
Joined: Wed Jun 10, 2015 10:02 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by Antech »

In the new log file there is also no internal coupling boundary was found but, if you sure that it's not a problem (I didn't find log of the working case in your previous topic so cannot compare) the only thing we can do is wait for developers do answer because it's 100% not usual divergence for aerodynamic cases (something like this may appear with built-in gas combustion model but not in pure aerodynamics, as I can say from my experience). Maybe there is a bug in 2D solver because it's almost not used in real life, or there is still some problem with internal coupling. Hope Ivan will clear this question...
jgd23
Posts: 141
Joined: Mon Jun 06, 2016 10:00 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by jgd23 »

I re-run the same 2D case without the solid domain part, only the fluid domain.
The simulation runs without problem.

My problem comes from the coupling definition in CS. The interface fluid/ solid is internal and after exporting the mesh in MED format I loose the group name of the interface. When I add manually the internal boundary in CS it is not recognized as shows the log files of the previous mail.
I need to try CGNS format maybe to see if it's different. I like use MED because of the preprocessing list of group which could be directly imported in CS.

Best regards
Yvan Fournier
Posts: 4080
Joined: Mon Feb 20, 2012 3:25 pm

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by Yvan Fournier »

Hello,

If you do not merge mesh nodes under SALOME, (keeping the interface as a boundary), you might be able to keep the boundary groups in the MED file. In this case, apply joining with that group's name as a selector in code_saturne to finish the joining.

An alternative (if the joining surface shape is simple) is to select the fluid/solid interface using geometric criteria (see -https://www.code-saturne.org/documentat ... ect_c.html). If this is sufficient, it is OK if you do not have a group name.

Best regards,

Yvan
jgd23
Posts: 141
Joined: Mon Jun 06, 2016 10:00 am

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by jgd23 »

Hello,

I have add manually the interface fluid/solid with a group name that CS is able to preprocess during mesh calculation, I add the BC directly with its name, not with the face number = 42. This group is not imported with the rest of the BC when importing preprocessor.log of CS.
It seems to detect the boundary but the coupling is not effective. See the solver.log below

Code: Select all

Boundary zone "interface"
    id              = 8
    Number of faces = 126
    Surface         = 0.0031403
    Center of gravity = (4.3157e-18, -0.0025, 0)
    Perimeter       = -1 (not computed)

 Internal coupling
   coupling_id = 0
   Face group selection criterion: auto:internal_coupling_0
   Assign interior faces group name: auto:internal_coupling_0_fluid
   Assign interior faces group name: auto:internal_coupling_0_solid
   Volume zones:
      solid
I can try with 2 separate meshes... and join them.

Best regards
Attachments
run_solver.log
(33.42 KiB) Downloaded 49 times
Yvan Fournier
Posts: 4080
Joined: Mon Feb 20, 2012 3:25 pm

Re: Conjugate heat transfert - 2D - Flow past cylinder

Post by Yvan Fournier »

Hello,

What group name did you use ? Are fluid/solid interface faces boundary faces or internal faces in the original mesh ? Could you post your setup.xml and user-defined source files ?

Regards,

Yvan
Post Reply