JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

18
November 15, 2011 CEA Grenoble / DEN/DANS/DM2S/STMF 1 Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME Fabien Perdu November 15, 2011

description

 

Transcript of JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

Page 1: 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

Page 2: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 3: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 4: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 5: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 6: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 7: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 8: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 9: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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,…)

Page 10: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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.

Page 11: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 12: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 13: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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)

Page 14: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 15: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 16: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 17: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling and SALOME

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

Page 18: JUS 2011 - Thermalhydraulic coupling using ICoCo : an Interface for Code Coupling 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