From 1a60c10b4c213e97bb04b4f7d31795ee0b4366c8 Mon Sep 17 00:00:00 2001
From: acrovato <a.crovato@uliege.be>
Date: Thu, 28 Mar 2024 17:33:45 +0100
Subject: [PATCH] Allow to pass empty parameters dict in API. Use snake case
 for Python methods.

---
 dart/api/core.py           |  5 +++--
 dart/api/cupydo.py         |  4 ++--
 dart/api/internal/polar.py | 11 +++--------
 dart/api/internal/trim.py  | 11 +++--------
 dart/api/mphys.py          |  4 ++--
 dart/validation/crm.py     |  8 +++-----
 vii/api/core.py            |  4 ++--
 7 files changed, 18 insertions(+), 29 deletions(-)

diff --git a/dart/api/core.py b/dart/api/core.py
index 4bd4eba..332baa1 100644
--- a/dart/api/core.py
+++ b/dart/api/core.py
@@ -19,7 +19,7 @@
 ## Initialize DART
 # Adrien Crovato
 
-def initDart(cfg, scenario='aerodynamic', task='analysis', viscous=False):
+def init_dart(cfg, scenario='aerodynamic', task='analysis', viscous=False):
     """Initlialize DART for various API
 
     Parameters
@@ -124,7 +124,8 @@ def initDart(cfg, scenario='aerodynamic', task='analysis', viscous=False):
         _qinf = None
 
     # Mesh creation
-    _msh = gmsh.MeshLoader(cfg['File']).execute(**cfg['Pars'])
+    pars = {} if 'Pars' not in cfg else cfg['Pars']
+    _msh = gmsh.MeshLoader(cfg['File']).execute(**pars)
     # add the wake
     if _dim == 2:
         mshCrck = tbox.MshCrack(_msh, _dim)
diff --git a/dart/api/cupydo.py b/dart/api/cupydo.py
index 9a7bc6a..07646e9 100644
--- a/dart/api/cupydo.py
+++ b/dart/api/cupydo.py
@@ -29,8 +29,8 @@ class Dart(FluidSolver):
         module = __import__(_module)
         params = module.getParams()
         params['Threads'] = _nthreads
-        from dart.api.core import initDart
-        _dart = initDart(params, scenario='aerostructural', task='analysis')
+        from .core import init_dart
+        _dart = init_dart(params, scenario='aerostructural', task='analysis')
         self.qinf, self.msh, self.writer, self.morpher, self.boundary, self.solver = (_dart.get(key) for key in ['qinf', 'msh', 'wrt', 'mrf', 'bnd', 'sol'])
 
         # count fsi nodes and get their positions
diff --git a/dart/api/internal/polar.py b/dart/api/internal/polar.py
index a780f31..1922425 100644
--- a/dart/api/internal/polar.py
+++ b/dart/api/internal/polar.py
@@ -26,7 +26,7 @@ import dart.utils as dU
 import tbox.utils as tU
 import fwk
 from fwk.coloring import ccolors
-from ..core import initDart
+from ..core import init_dart
 
 class Polar:
     """Utility to compute the polar of a lifting surface
@@ -65,13 +65,8 @@ class Polar:
         # basic init
         self.tms = fwk.Timers()
         self.tms["total"].start()
-        _dart = initDart(p, scenario='aerodynamic', task='analysis')
-        self.dim = _dart['dim']
-        self.msh = _dart['msh']
-        self.wrt = _dart['wrt']
-        self.pbl = _dart['pbl']
-        self.bnd = _dart['bnd']
-        self.sol = _dart['sol']
+        _dart = init_dart(p, scenario='aerodynamic', task='analysis')
+        self.dim, self.msh, self.wrt, self.pbl, self.bnd, self.sol = (_dart.get(key) for key in ['dim', 'msh', 'wrt', 'pbl', 'bnd', 'sol'])
         # save some parameters for later use
         self.format = p['Format']
         try:
diff --git a/dart/api/internal/trim.py b/dart/api/internal/trim.py
index 976e882..6fbe7e7 100644
--- a/dart/api/internal/trim.py
+++ b/dart/api/internal/trim.py
@@ -26,7 +26,7 @@ import dart.utils as dU
 import tbox.utils as tU
 import fwk
 from fwk.coloring import ccolors
-from ..core import initDart
+from ..core import init_dart
 
 class Trim:
     """Utility to perform the trim analysis of a given lifting configuration
@@ -64,13 +64,8 @@ class Trim:
         # basic init
         self.tms = fwk.Timers()
         self.tms["total"].start()
-        _dart = initDart(p, scenario='aerodynamic', task='analysis')
-        self.dim = _dart['dim']
-        self.msh = _dart['msh']
-        self.wrt = _dart['wrt']
-        self.pbl = _dart['pbl']
-        self.bnd = _dart['bnd']
-        self.sol = _dart['sol']
+        _dart = init_dart(p, scenario='aerodynamic', task='analysis')
+        self.dim, self.msh, self.wrt, self.pbl, self.bnd, self.sol = (_dart.get(key) for key in ['dim', 'msh', 'wrt', 'pbl', 'bnd', 'sol'])
         # save some parameters for later use
         self.format = p['Format']
         try:
diff --git a/dart/api/mphys.py b/dart/api/mphys.py
index d61d932..4641472 100644
--- a/dart/api/mphys.py
+++ b/dart/api/mphys.py
@@ -528,9 +528,9 @@ class DartBuilder(Builder):
         comm: mpi4py.MPI.Comm object
             MPI communicator
         """
-        from .core import initDart
+        from .core import init_dart
         def _init():
-            self.__dart = initDart(self.__cfg, scenario=self.__scn, task=self.__tsk)
+            self.__dart = init_dart(self.__cfg, scenario=self.__scn, task=self.__tsk)
         # If n MPI processes, init DART on rank=0,...,n-1 sequentially to avoid issues with mesh IO
         # If mpi4py is not available or only 1 MPI process, init DART as usual
         try:
diff --git a/dart/validation/crm.py b/dart/validation/crm.py
index dbc5234..27ebf2b 100644
--- a/dart/validation/crm.py
+++ b/dart/validation/crm.py
@@ -84,7 +84,7 @@ def cfg():
     }
 
 def main():
-    from dart.api.core import initDart
+    from dart.api.core import init_dart
     from dart import utils
     from fwk import Timers
     from fwk.testing import CTest, CTests
@@ -93,10 +93,8 @@ def main():
     # pre
     tms = Timers()
     tms['pre'].start()
-    _dart = initDart(cfg(), scenario='aerodynamic', task='analysis')
-    msh = _dart['msh']
-    sol = _dart['sol']
-    wrt = _dart['wrt']
+    _dart = init_dart(cfg(), scenario='aerodynamic', task='analysis')
+    msh, wrt, sol = (_dart.get(key) for key in ['msh', 'wrt', 'sol'])
     tms['pre'].stop()
     # solve
     tms['sol'].start()
diff --git a/vii/api/core.py b/vii/api/core.py
index 31bda72..ff23fe5 100644
--- a/vii/api/core.py
+++ b/vii/api/core.py
@@ -57,8 +57,8 @@ def initVII(cfg, icfg, iSolverName='DART'):
 
     if iSolverName == 'DART':
         from vii.interfaces.dart.DartInterface import DartInterface as interface
-        from dart.api.core import initDart
-        iSolverObjects = initDart(icfg, scenario=icfg['scenario'], task=icfg['task'], viscous = 1)
+        from dart.api.core import init_dart
+        iSolverObjects = init_dart(icfg, scenario=icfg['scenario'], task=icfg['task'], viscous = 1)
 
     # Check viscous solver parameters.
     if 'Re' in cfg and cfg['Re'] > 0:
-- 
GitLab