From 50f0e0d2d0292a8cfa27c2bc90fff0fd451a8257 Mon Sep 17 00:00:00 2001 From: Paul Dechamps <paul.dechamps@uliege.be> Date: Fri, 22 Nov 2024 10:21:01 +0100 Subject: [PATCH] (feat) Add the ability to perform 3D VII computations and (feat) Added sparseLu solver in the API The error raised at runtime is removed to allow the creation of blowing elements in 3D computations. SparseLu is another direct solver that does not require IntelMKL --- dart/api/core.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dart/api/core.py b/dart/api/core.py index 63af776..6476b4a 100644 --- a/dart/api/core.py +++ b/dart/api/core.py @@ -204,8 +204,6 @@ def init_dart(cfg, scenario='aerodynamic', task='analysis', viscous=False): _pbl.add(dart.Kutta(_msh, [cfg['Tes'][i], cfg['Wakes'][i]+'_', cfg['Wings'][i], cfg['Fluid']])) # add transpiration (blowing) boundary conditions if viscous: - if _dim != 2 or task != 'analysis': - raise RuntimeError('Viscous-inviscid interaction calculations are currently supported only for 2D analysis!\n') _blwb = dart.Blowing(_msh, cfg['Wing']) _blww = dart.Blowing(_msh, cfg['Wake']) _pbl.add(_blwb) @@ -223,6 +221,8 @@ def init_dart(cfg, scenario='aerodynamic', task='analysis', viscous=False): linsol = tbox.Mumps() elif cfg['LSolver'] == 'GMRES': linsol = tbox.Gmres(cfg.get('G_fill', 2), 1e-6, cfg.get('G_restart', 50), cfg.get('G_tol', 1e-5), 200) + elif cfg['LSolver'] == 'SparseLu': + linsol = tbox.SparseLu() else: raise RuntimeError('Available linear solvers: PARDISO, MUMPS or GMRES, but ' + cfg['LSolver'] + ' was given!\n') # initialize the nonlinear (outer) solver -- GitLab