Download - JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 1
Thermalhydraulic coupling usingICoCo : an Interface for Code Coupling
and SALOME
Fabien Perdu
November 15, 2011
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 3
Some coupling examplesComplex timestep management => need for a flexible API
1 2 4 5 7 8 10
3 6 9Cathare
Trio_U
Explicite, pas de temps non coïncidents
Implicite, pas de temps coïncidents
Cathare
Trio_U
…
Implicite, avec points de RDV (pour plus tard)
Cathare
Trio_U
…
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 8
Some coupling examples
Many data exchanges !!!
Assemblages
ParaMEDMem
Inter-Assemblage
CollecteurDAC
Flux
hconv hconv
T T
Flux Flux
Vsortie
Tsortie
Fluxhconv
hconv T
Flux
T
V
P
Text
Text
Vsortie
Tsortie
hconv T
ICoCo
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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,…)
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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.
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 13
ICoCo : Interface for Code Coupling
• Overview of the architecture
• 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.
Code 1(any language)
ICoCo (C++)
Supervisor(C++, python,
SALOME)
Method call
ICoCo (C++)
Code 2(any language)
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 14
• 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.
ICoCo : Interface for Code Coupling
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 15
• Implementation
– Already implemented inTrio_UCathare
– Work ongoing forNeptune_CFD
– Interest expressed forStar_CD
– Fields usedMEDCouplingFieldDouble Simpler TrioField also compatible with
ParaMEDMEM
ICoCo : Interface for Code Coupling
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 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
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 17
• 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
ICoCo and SALOME
November 15, 2011CEA Grenoble / DEN/DANS/DM2S/STMF 18
• SALOME use
– CAO
– Maillage
– ParaMEDMEM interpolators
• ICoCo use
– Trio_U
– Cathare
• Coupling algorithm
– C++ program ( ~ 1000 lines )
• Many many data exchanged…
Latest use : ASTRID coupled CFD/system