diff --git a/dart/api/core.py b/dart/api/core.py
index 63af776f8276ad5db87ce8b4cef8c6ebdd0dfd84..6476b4a5af6765695873f3d86f8ce26e17635b53 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