Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME
1. Thermalhydraulic coupling using
ICoCo : an Interface for Code Coupling
and SALOME
Fabien Perdu
November 15, 2011
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 1
2. Some coupling examples
• 2008 : Gas cooled fast reactor
– Blackout transient
– Cathare simulates the whole circuit
– Trio_U simulates the upper plenum
– 1D / 3D
– Stratification in upper plenum for onset of natural
convection
– Independent time steps
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 2
3. Some coupling examples
Complex timestep management => need for a flexible API
Explicite, pas de temps non coïncidents
3 6 9
Cathare
Trio_U
1 2 4 5 7 8 10
Implicite, pas de temps coïncidents
Cathare
…
Trio_U
Implicite, avec points de RDV (pour plus tard)
Cathare
…
Trio_U
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 3
4. Some coupling examples
• 2009 : validation of coupling methodology
– Simple analytic test cases (closed loops)
– Monophasic liquid or gas flows
– 2-loop system with flow reversal
– Still 1D-2D => values exchanged are doubles
Many possible algorithms (values to transfer)
=> need for a flexible API
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 4
5. Some coupling examples
• 2010 : MC2 (modèle cœur
collecteur)
– Three 3D domains
assemblies
inter-assemblies
hot collector
– Interpolations
2D-2D
On 3D surfaces
Between non conforming
meshes
Distributed on several
processors
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 5
6. Some coupling examples
• 2010 : MC2 (modèle cœur
collecteur)
– Three 3D domains
assemblies
inter-assemblies
hot collector
– Interpolations
2D-2D
On 3D surfaces
Between non conforming
meshes
Distributed on several
processors
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 6
7. Some coupling examples
• 2010 : MC2 (modèle cœur
collecteur)
– Three 3D domains
assemblies
inter-assemblies
hot collector
– Interpolations
2D-2D
On 3D surfaces
Between non conforming
meshes
Distributed on several
processors
Need for powerful interpolators
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 7
8. Some coupling examples
ParaMEDMem
ICoCo
hconv hconv
T T
Text
Flux Flux
Flux
Assemblages Inter-Assemblage
Vsortie
Tsortie
Flux Text
hconv
Vsortie
T Flux
Tsortie
hconv T hconv T
DAC P Collecteur
V
Many data exchanges !!!
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 8
9. Some coupling examples
• 2010 : Phenix end-of-life calculation
(still ongoing)
– Complex geometry
– Many coupled physical phenomena
Even further coupling needs (thermal 1D-3D, neutronic power,…)
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 9
10. Coupling methodology
• Domain overlapping method
– Cathare simulates the whole reactor
– Cathare datafile nearly untouched
– Trio_U simulates the CFD part
– Cathare and Trio_U overlap of the CFD domain
• Benefits
– Stability easier to obtain
– Trio_U->Cathare retroaction or not possible term by
term
– Easier comparison with Cathare alone, as the datafile
is unchanged
• Challenges
– Take advantage of Catahre pressure solver on the
whole domain but stay insensitive to Cathare solution
on the CFD part.
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 10
11. Coupling methodology
• Zoom (no feedback)
– Mass equation
Cathare provides mass flowrates on the boundaries
In case of incompressible fluid in Trio_U, a small
correction is added to ensure div(u)=0
– Energy equation
Cathare provides enthalpies on the boundaries
• Feedbacks
– Momentum equation
Momentum source term in Cathare regulated to reach
dP(Trio_U)=dP(Cathare)
– Energy equation
Trio_U provides enthalpies on the boundaries, to be
convected by Cathare
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 11
12. ICoCo : Interface for Code Coupling
• Needs identified
– Flexible timestep management algorithms
– Flexible field exchange algorithms
– Parallel calculations and interpolation
– Algorithms
Easy to read
Easy to modify
Easy to reuse
• Solution chosen
– Coupling algorithm outside the codes
– Interpolation and data manipulation outside the codes
– Codes accessibles through method calls
– A common API to enable
Replacing a code by another one
Faster learning (common language)
Better specification and stability of the API
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 12
13. ICoCo : Interface for Code Coupling
• Overview of the architecture
Supervisor
(C++, python,
SALOME)
Method call
ICoCo (C++) ICoCo (C++)
Code 1 Code 2
(any language) (any language)
• Impact on the codes
– They must be modular : the main loop must get out of
the code and be flexible.
– Hardly compatible with Fortran-style linear
programming.
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 13
14. ICoCo : Interface for Code Coupling
• Scope
– Each code is controllable through a C++ class,
deriving from a common mother class named
« Problem ».
– Specifications for the codes :
ICoCo specifies the methods of the Problem
class and what they are supposed to do.
– Specifications for the supervisor :
ICoCo specifies when it is legal to call each
method.
– Scope :
ICoCo methods allow time advance,
saving/restoring and field exchange.
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 14
15. ICoCo : Interface for Code Coupling
• Implementation
– Already implemented in
Trio_U
Cathare
– Work ongoing for
Neptune_CFD
– Interest expressed for
Star_CD
– Fields used
MEDCouplingFieldDouble
Simpler TrioField also compatible with
ParaMEDMEM
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 15
16. ICoCo : Interface for Code Coupling
• Today’s feedback
– Supervisor + API paradigm seems a good choice
– Some methods may still lack in the API
– Writing the supervisor is often a repetitive task
(if many fields exchanged)
=> possibility to make it more automatic
• Foreseeable additions
– Add helper methods wrapping existing ones
– Describe several stages inside a timestep
– Impose a new mesh to the code
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 16
17. ICoCo and SALOME
• Generic ICoCo SALOME component
– Possible for every ICoCo-compliant code
– Even less burden for code developer
• Specific Cathare SALOME component
– Developed in the HEMERA frame
– Adds convenient functions (e.g. getDouble)
– No new functionnality (getField could do the job)
• Parallel SALOME component
– Feasibility demonstration in the NURISP frame
– One master process dispatches the API calls
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 17
18. Latest use : ASTRID coupled CFD/system
• SALOME use
– CAO
– Maillage
– ParaMEDMEM interpolators
• ICoCo use
– Trio_U
– Cathare
• Coupling algorithm
– C++ program ( ~ 1000 lines )
• Many many data exchanged…
CEA Grenoble / DEN/DANS/DM2S/STMF November 15, 2011 18