Conjugate heat transfert - 2D - Flow past cylinder
Forum rules
Please read the forum usage recommendations before posting.
Please read the forum usage recommendations before posting.
Conjugate heat transfert - 2D - Flow past cylinder
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
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 396 times
-
- preprocessor.log
- (6 KiB) Downloaded 368 times
Re: Conjugate heat transfert - 2D - Flow past cylinder
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:
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 */
};
Re: Conjugate heat transfert - 2D - Flow past cylinder
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"
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"
Re: Conjugate heat transfert - 2D - Flow past cylinder
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.
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.
Code: Select all
Boundary zone "interface"
id = 8
Number of faces = 0
Surface = 0
Re: Conjugate heat transfert - 2D - Flow past cylinder
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
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 370 times
Re: Conjugate heat transfert - 2D - Flow past cylinder
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...
Re: Conjugate heat transfert - 2D - Flow past cylinder
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
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
-
- Posts: 4207
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Conjugate heat transfert - 2D - Flow past cylinder
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
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
Re: Conjugate heat transfert - 2D - Flow past cylinder
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
I can try with 2 separate meshes... and join them.
Best regards
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
Best regards
- Attachments
-
- run_solver.log
- (33.42 KiB) Downloaded 379 times
-
- Posts: 4207
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Conjugate heat transfert - 2D - Flow past cylinder
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
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