Mesh mapping for different meshes in the two solvers

Problem: Fire solver now runs in parallel computing. Up until now, both solvers had the same mesh (in the mapping: read-consistent and write-conservative was used). I tried to change the meshes of the solver differently. It was still working but the values that I receive in fire solver is not distributed (meaning when 4 cells of fire solver equals 1 cell of structural solver, I receive only the input on only one cell of the fire solver).

Solution tried: So, I have a question regarding precice-config file. I am trying to use ‘read-consitent’ in both the directions of the mesh (because Fire sovler sends temperature and structural solver sends depth(unit: m) in return - both are scalar quantities). I have found this from some discussion thread of precice.

So step 1, I coupled a dummy solver with the fire solver and checked ‘read-consistent’ both directions. It works perfectly fine. The values are received from 1 structural cell to all 4 fire cells.

In step 2, when I replace the dummy solver with an actual structural solver, the program is running. However, the depth from structure to fire is not transferred (on the direction, temperature is transferred).

Thanks & Regards,
Arul
bidirectional_precice-config.xml (2.6 KB)
bidirectional_precice-config_different_mesh.xml (3.0 KB)

Hi @Arul,

I am visualizing your configs using the config visualizer. The first one looks fine (at least at this level):

The information is flowing in the same direction (all arrows carrying the same field point to the same direction).

In contrast, the second one looks wrong:

You could also check your config for basic issues with precice-tools check precice-config.xml. We are also developing a smarter configuration checker, but using it would probably require that you upgrade to preCICE v3.

Hi @Makis,
Thank you for the response. Could you help me correct the second config? The idea behind that approach is that, I wanted ‘read-consistent’ for both the directions.

The first config works fine with the communication and mapping when the mesh on both solvers are conforming, but when the fire solver has a fine grid, the adjacent cells (neighbours) in the structural solver (dummy) are not the same in fire solver (see below image).


The image is from the fire solver and it shows the location (purple color) received from structural solver. In structural solver, the location are next to each other. On the other hand, in fire solver with finer mesh the locations are not next to each other.

For this reason, I looked into the discussion forum and found a solution (Data mapping not allowed for parallel computation), where both directions are ‘read-consistent’. I tried this in the above setup and it worked (see image below).


This image has same settings as before and even the locations from structural solver are all same. And the second config file gives me this result (which is what I expected).
So, i replaced the structural solver with actual structural solver without disturbing the precice. Here, when read the results of structural solver in the fire solver, I am not getting the location values that I send from structural solver.

This is why I was wondering what could have happened and I hit a dead end. So could you help me sort this out?

Thanks & Regards,
Arul

P.S: The end goal is to have a config-file that works well with the mapping and communication even when the meshes are not conforming.