From 8abc697061f99e9ad193c01276d091867af7ba9a Mon Sep 17 00:00:00 2001
From: Paul Dechamps <paul.dechamps@uliege.be>
Date: Thu, 20 Feb 2025 02:23:43 +0100
Subject: [PATCH] (feat) Change blowing data structure from list to dict in the
 core api

---
 dart/api/core.py | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/dart/api/core.py b/dart/api/core.py
index 53b9aae..8781a93 100644
--- a/dart/api/core.py
+++ b/dart/api/core.py
@@ -203,21 +203,30 @@ def init_dart(cfg, scenario='aerodynamic', task='analysis', viscous=False):
                 _pbl.add(dart.Wake(_msh, [cfg['Wakes'][i], cfg['Wakes'][i]+'_', cfg['Fluid']])) # 2.5D
             _pbl.add(dart.Kutta(_msh, [cfg['Tes'][i], cfg['Wakes'][i]+'_', cfg['Wings'][i], cfg['Fluid']]))
     # add transpiration (blowing) boundary conditions
+    _blw = {}
     if viscous:
         if _dim == 2:
-            _blwb = dart.Blowing(_msh, cfg['Wing'])
-            _blww = dart.Blowing(_msh, cfg['Wake'])
+            _blwb = dart.Blowing(_msh, cfg["Wing"])
+            _blww = dart.Blowing(_msh, cfg["Wake"])
             _pbl.add(_blwb)
             _pbl.add(_blww)
-            _blw = [[_blwb, _blww]]
+            print(f'Adding blowing boundary {cfg["Wing"]}')
+            _blw[cfg['Wing']] = {'wing':_blwb,
+                                 'wake':_blww}
         else:
-            _blw = []
             for ibody in range(len(cfg['Wings'])):
-                _blwb = dart.Blowing(_msh, cfg['Wings'][ibody])
-                _blww = dart.Blowing(_msh, cfg['Wakes'][ibody])
+                print(f'Adding blowing boundary {cfg["Wings"][ibody]}')
+                _blwb = dart.Blowing(_msh, cfg["Wings"][ibody])
+                _blww = dart.Blowing(_msh, cfg["Wakes"][ibody])
                 _pbl.add(_blwb)
                 _pbl.add(_blww)
-                _blw.append([_blwb, _blww])
+                _blw[cfg["Wings"][ibody]] = {'wing':_blwb,
+                                    'wake':_blww}
+            if 'Fuselage' in cfg:
+                print(f'Adding blowing boundary {cfg["Fuselage"]}')
+                _blwf = dart.Blowing(_msh, cfg["Fuselage"])
+                _pbl.add(_blwf)
+                _blw[cfg["Fuselage"]] = {'fuselage':_blwf}
     else:
         _blw = None
 
-- 
GitLab