So I'm working again on overset grids (coupled) domains. I found some information on how to use cs_user_coupling.c (in cs_sat_coupling.h for instance) but the arguments of this function are still unclear.
* The local "support" cells and boundary faces are used to localize
* the values in the distant "coupled" cells and faces.
* Depending on the role of sender and/or receiver of the current process
* in the coupling, some of these sets can be empty or not.
*
* The cell values are always localized and interpolated on the distant
* "cells" support. The face values are localized and interpolated on
* the distant "face" support if present, or on the distant "cell" support
* if not.
The first paragraph here seems to explain that the "support" is the equivalent of domain1 and "coupled" the equivalent of domain2. But the second paragraph upsets me because it seems to say the opposite.
Can somebody help me to clarify this please ?
Coupling is usually symmetric, so "support" is not the equivalent of domain1 and "distant" of domain 2. Seen from domain1, "support" is domain1, and "distant" domain2. Seen from domain2, it is the opposite.
This often confuses users, so I guess we would need a god diagram in the PLE documentation to better explain this...
You can make the coupling non-symmetric by only sending data from domain1 to domain2 for example, in which case domain1 has "support" cells but no "coupled" cells, and domain2 has "coupled" cells but no "support" cells.
Which version of the code are you using ? Vocabulary may have changed slightly.
I'm using the 5.0.4 version. To be sure, we're talking about the same thing, I found a image from a Code_saturne presentation.
For domain1 (blue):
- boundary_sup_criteria = boundary face 1 (not functional according to the user guide 5.0.0)
- volume_sup_criteria = all[]
- boundary_cpl_criteria = boundary face 2
- volume_cpl_criteria = all[]
So,I don't have any tranfer of information between both domains yet. I think it comes from my troubles to define the coupling boundary conditions (cf listing 1 and 2) . Where can I defined properly the coupling boundary faces ? I thought cs_user_coupling.c was enough.
Another thing, about the csc*.f90 functions:
The boundary condition coupling functions are at the C/Fortran interface, and utility functions defined mostly in src/base/cs_sat_coupling.c (with the location aspects in libple, but you should not need to change those). Most of the coupling logic (the part you may need to adapt) is in the src/base/csc*.f90 functions.
--> I didn't find these functions (csc*.f90) yet . Where can I ?
So, I looked everywhere (with grep) for the src/base/csc*.f90 and I definitively can't find them, whether in the source code or in a code_saturne case. But I found them on the internet source code.
Yet, in prod/share/doc/code_saturne/doxygen/src, i have some csc*_8f90.html functions.
How did you install the code ? When you install from source, the source tree is not modified (except possibly for updates in the po subdirectory and Makefile.am and Makefile.in files).
So you should find the code in the sources you used for installation. If you installed through a package manager, you will need to download the sources separately.