GEOS-DEV / GEOS

GEOS Simulation Framework
GNU Lesser General Public License v2.1
210 stars 84 forks source link

feat: Transmissibility output #3091

Closed MelReyCG closed 2 months ago

MelReyCG commented 5 months ago

This PR is after the #3247.


This PR aims to add a new component: the StencilOutput, that allow to add a CellToCellOutput task node in the xml to output ConnectionData (global id pairs, transmissibilities).

For now, by using the writeCSV="1" attribute, the CellToCellOutput will output this data in a CSV. Here is an exemple:

      <CellToCellOutput       name="stencilOutput"       flowSolverName="singlePhaseFlowSolver"       writeCSV="1"       logLevel="1" />  

      <SoloEvent       name="stencilOutputEvent"       targetCycle="1"       target="/Tasks/stencilOutput" />  


- First 10 lines of the generated HDF5
```csv
time [s] , A global id , B global id , AB transmissibility , BA transmissibility
       4 ,           0 ,        2715 , 7.55463e-18                          , -7.55463e-18                        
       4 ,           0 ,       47546 , 8.06167e-18                          , -8.06167e-18                        
       4 ,           0 ,      134459 , 6.63826e-18                          , -6.63826e-18                        
       4 ,           0 ,      165202 , 7.78139e-18                          , -7.78139e-18                        
       4 ,           1 ,        4642 , 1.83325e-17                          , -1.83325e-17                        
       4 ,           1 ,       53907 , 1.76737e-17                          , -1.76737e-17                        
       4 ,           1 ,      184341 , 1.81705e-17                          , -1.81705e-17                        
       4 ,           2 ,        5459 , 1.7414e-17                           , -1.7414e-17                         
       4 ,           2 ,       63907 , 1.86145e-17                          , -1.86145e-17                        
       4 ,           2 ,      177257 , 1.86145e-17                          , -1.86145e-17                        

(aligned here for readability)

codecov[bot] commented 3 months ago

Codecov Report

Attention: Patch coverage is 76.37795% with 60 lines in your changes missing coverage. Please review.

Project coverage is 56.00%. Comparing base (0cbc589) to head (9c93b4d).

Files Patch % Lines
src/coreComponents/common/Units.hpp 14.58% 41 Missing :warning:
...physicsSolvers/fluidFlow/StencilDataCollection.cpp 87.27% 14 Missing :warning:
src/coreComponents/common/logger/Logger.hpp 0.00% 3 Missing :warning:
...vers/multiphysics/CoupledReservoirAndWellsBase.hpp 0.00% 1 Missing :warning:
.../unitTests/fluidFlowTests/testTransmissibility.cpp 98.48% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #3091 +/- ## =========================================== + Coverage 55.91% 56.00% +0.09% =========================================== Files 1043 1046 +3 Lines 88934 89122 +188 =========================================== + Hits 49729 49915 +186 - Misses 39205 39207 +2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

MelReyCG commented 3 months ago

@CusiniM

It seems that we are trying to only write a file for rank 0 but I don't see when you gather all stencil data there? This would only work for small cases.... In any case, why not using the timehistory and writing in a parallel format instead? @wrtobin opinions?

Besides debugging I don't really see why someone would want to write out transmissibilities.

This proposal is not completely finished, but it now takes into account all connections within all ranks. The CellToCellDataCollection now can be used for bigger cases.

To explain why we want to output this data, the goal is to compare the transmissibility data from other simulator(s), in order to understand the differences between the simulations.

rrsettgast commented 2 months ago

@MelReyCG Can you resolve conflicts?

rrsettgast commented 2 months ago

@MelReyCG Can you merge develop into this?

MelReyCG commented 2 months ago

Just leaving a note here, no CI step is legitimately failing here. The CUDA builds were working but crash now because of a CI bug since I updated my branch.

CusiniM commented 2 months ago

This PR needs one more review.