From 78c9e3ade7e2f1bcd21715b693662f20ee81288d Mon Sep 17 00:00:00 2001
From: Paul Dechamps <paulzer@sentinelle.local>
Date: Sat, 11 Jun 2022 16:50:36 +0200
Subject: [PATCH] Cleaner test

---
 dart/pyVII/vCoupler.py      |  62 ++++-------
 dart/pyVII/vInterpolator.py | 217 +++++++++++++++++++++++++++++++++---
 dart/pyVII/vUtils.py        |  47 +++++---
 dart/src/wBLRegion.cpp      |   3 +-
 dart/tests/bli.py           | 172 ++++++++++++++++++++++++++++
 dart/tests/bli2.py          |  24 ++--
 dart/tests/bli3.py          |   3 +-
 dart/tests/bli_Polar.py     |  19 +++-
 dart/tests/bli_Trans.py     |  62 ++++++-----
 dart/tests/bli_lowLift.py   |   2 +-
 dart/tests/blipython.py     |  10 +-
 dart/tests/ref/cpa12.dat    | 161 ++++++++++++++++++++++++++
 dart/tests/ref/cpa5.dat     | 161 ++++++++++++++++++++++++++
 dart/tests/ref/dumpa12.dat  | 184 ++++++++++++++++++++++++++++++
 dart/tests/ref/dumpa5.dat   | 184 ++++++++++++++++++++++++++++++
 15 files changed, 1187 insertions(+), 124 deletions(-)
 create mode 100644 dart/tests/bli.py
 create mode 100644 dart/tests/ref/cpa12.dat
 create mode 100644 dart/tests/ref/cpa5.dat
 create mode 100644 dart/tests/ref/dumpa12.dat
 create mode 100644 dart/tests/ref/dumpa5.dat

diff --git a/dart/pyVII/vCoupler.py b/dart/pyVII/vCoupler.py
index f74cd4c..494b9a0 100644
--- a/dart/pyVII/vCoupler.py
+++ b/dart/pyVII/vCoupler.py
@@ -35,43 +35,38 @@ import numpy as np
 from matplotlib import pyplot as plt
 
 class Coupler:
-  def __init__(self, iSolver, vSolver) -> None:
+  def __init__(self, iSolver, vSolver, _boundary) -> None:
+
     self.iSolver=iSolver
     self.vSolver=vSolver
 
-    self.vSolver.verbose = self.iSolver.verbose
-    #self.vSolver.verbose = 0
-
-    self.maxCouplIter = 150
+    self.maxCouplIter = 300
     self.couplTol = 1e-4
 
-    self.tms=fwk.Timers()
     self.resetInv = False
-    pass
 
-  def CreateProblem(self, _boundaryAirfoil, _boundaryWake):
+    # Create data sturctures
 
-    self.group = [Airfoil(_boundaryAirfoil), Wake(_boundaryWake)] # airfoil and wake python objects
+    self.group = [Airfoil(_boundary[0]), Wake(_boundary[1])] # Airfoil and wake python objects
     self.blwVel = [None, None, None]
     self.deltaStar = [None, None, None]
     self.xx = [None, None, None]
+
+    self.tms=fwk.Timers()
     pass
 
   def Run(self):
 
-    # Initilize meshes in c++ objects
-
-    #self.iSolver.printOn = False
-    #self.vSolver.printOn = False
-
-    dragIter = np.zeros((0,2))
+    # Aerodynamic coefficient of the airfoil to monitor convergence
+    aeroCoeff = np.zeros((0,2))
+    cdPrev = 0.0
 
     self.nElmUpperPrev = 0
     couplIter = 0
-    cdPrev = 0.0
-    """print('- AoA: {:<2.2f} Mach: {:<1.1f} Re: {:<2.1f}e6'
-    .format(self.iSolver.pbl.alpha*180/math.pi, self.iSolver.pbl.M_inf, self.vSolver.Re/1e6))
-    print('{:>5s}| {:>10s} {:>10s} | {:>8s} {:>6s} {:>8s}'.format('It', 'Cl', 'Cd', 'xtrT', 'xtrB', 'Error'))"""
+
+    print('- AoA: {:<2.2f} Mach: {:<1.1f} Re: {:<2.1f}e6'
+    .format(self.iSolver.pbl.alpha*180/math.pi, self.iSolver.pbl.M_inf, self.vSolver.GetRe()/1e6))
+    print('{:>5s}| {:>10s} {:>10s} | {:>8s} {:>6s} {:>8s}'.format('It', 'Cl', 'Cd', 'xtrT', 'xtrB', 'Error'))
     print(' --------------------------------------------------------')
     while couplIter < self.maxCouplIter:
 
@@ -96,46 +91,35 @@ class Coupler:
       self.tms['viscous'].start()
       exitCode = self.vSolver.Run(couplIter)
       self.tms['viscous'].stop()
-      # print('Viscous ops terminated with exit code ', exitCode)
-
-      #plt.xlim([0, 2])
-      #plt.show()
 
       self.tms['processing'].start()
       self.__ImposeBlwVel(couplIter)
       self.tms['processing'].stop()
 
       error = abs((self.vSolver.Cdt - cdPrev)/self.vSolver.Cdt) if self.vSolver.Cdt != 0 else 1
+      cdPrev = self.vSolver.Cdt
 
-      dragIter = np.vstack((dragIter, [self.iSolver.Cl, self.vSolver.Cdt]))
+      aeroCoeff = np.vstack((aeroCoeff, [self.iSolver.Cl, self.vSolver.Cdt]))
       
       if error  <= self.couplTol:
         print('{:>5s}| {:>10s} {:>10s} | {:>10s} {:>8s} {:>8s}'.format('It', 'Cl', 'Cd', 'xtrT', 'xtrB', 'Error'))
         print(ccolors.ANSI_GREEN,'{:>4.0f}| {:>10.5f} {:>10.5f} | {:>10.4f} {:>8.4f} {:>8.2f}\n'.format(couplIter,
-        self.iSolver.Cl, self.vSolver.Cdt, xtr[0], xtr[1], np.log10(error)),ccolors.ANSI_RESET)
-        return dragIter
+        self.iSolver.Cl, self.vSolver.Cdt, self.vSolver.Getxtr(0,0), self.vSolver.Getxtr(0,1), np.log10(error)),ccolors.ANSI_RESET)
+        return aeroCoeff
       
-      cdPrev = self.vSolver.Cdt
 
       if couplIter%1==0:
-        xtr = [1, 1]
-        xtr[0]=self.vSolver.Getxtr(0,0)
-        xtr[1]=self.vSolver.Getxtr(0,1)
         print(' {:>4.0f}| {:>10.4f} {:>10.4f} | {:>10.4f} {:>8.4f} {:>8.3f}'.format(couplIter,
-        self.iSolver.Cl, self.vSolver.Cdt, xtr[0], xtr[1], np.log10(error)))
+        self.iSolver.Cl, self.vSolver.Cdt, self.vSolver.Getxtr(0,0), self.vSolver.Getxtr(0,1), np.log10(error)))
 
       couplIter += 1
       self.tms['processing'].stop()
 
       self.sln = np.asarray(self.vSolver.GetSolution(0))
-      """if couplIter==1:
-      
-        #plt.plot(sln[16], sln[1], 'x-')
-        #plt.plot(self.fMeshDict['globCoord'][:self.fMeshDict['bNodes'][1]], self.fMeshDict['vx'][:self.fMeshDict['bNodes'][1]], 'x-')
-        return dragIter"""
+
     else:
       print(ccolors.ANSI_RED, 'Maximum number of {:<.0f} coupling iterations reached'.format(self.maxCouplIter), ccolors.ANSI_RESET)
-      return dragIter
+      return aeroCoeff
 
 
   def RunPolar(self, alphaSeq):
@@ -210,7 +194,7 @@ class Coupler:
       print('STAG POINT MOVED')
       
       # Initialize mesh
-
+      
       self.vSolver.SetGlobMesh(0, 0, fMeshDict['globCoord'][:fMeshDict['bNodes'][1]], fMeshDict['yGlobCoord'][:fMeshDict['bNodes'][1]], fMeshDict['zGlobCoord'][:fMeshDict['bNodes'][1]])
       self.vSolver.SetGlobMesh(0, 1, fMeshDict['globCoord'][fMeshDict['bNodes'][1]:fMeshDict['bNodes'][2]], fMeshDict['yGlobCoord'][fMeshDict['bNodes'][1]:fMeshDict['bNodes'][2]], fMeshDict['zGlobCoord'][fMeshDict['bNodes'][1]:fMeshDict['bNodes'][2]])
       self.vSolver.SetGlobMesh(0, 2, fMeshDict['globCoord'][fMeshDict['bNodes'][2]:], fMeshDict['yGlobCoord'][fMeshDict['bNodes'][2]:], fMeshDict['zGlobCoord'][fMeshDict['bNodes'][2]:])
@@ -229,7 +213,7 @@ class Coupler:
     else:
 
       self.vSolver.SetxxExt(0, 0, fMeshDict['xxExt'][:fMeshDict['bNodes'][1]])
-      self.vSolver.SetxxExt(0, 1, fMeshDict['xxExt'][fMeshDict['bNodes'][1]:fMeshDict['bNodes'][2]])    
+      self.vSolver.SetxxExt(0, 1, fMeshDict['xxExt'][fMeshDict['bNodes'][1]:fMeshDict['bNodes'][2]])
       self.vSolver.SetxxExt(0, 2, fMeshDict['xxExt'][fMeshDict['bNodes'][2]:])
       
       self.vSolver.SetDeltaStarExt(0, 0, fMeshDict['deltaStarExt'][:fMeshDict['bNodes'][1]])
diff --git a/dart/pyVII/vInterpolator.py b/dart/pyVII/vInterpolator.py
index 66dee72..38eb0fc 100644
--- a/dart/pyVII/vInterpolator.py
+++ b/dart/pyVII/vInterpolator.py
@@ -28,7 +28,10 @@ class Interpolator:
         # Create data structures for interpolation
         self.tms = fwk.Timers()
         self.tms['GetWing'].start()
-        self.__GetWing(_blw, _cfg)
+        if _cfg['nDim'] == 2:
+            self.__GetAirfoil(_blw, _cfg)
+        elif _cfg['nDim'] == 3:
+            self.__GetWing(_blw, _cfg)
         self.tms['GetWing'].stop()
 
         self.cfg = _cfg
@@ -102,6 +105,8 @@ class Interpolator:
 
             plt.plot(xUp, UxUp)
             plt.plot(xLw, UxLw)
+            plt.xlabel('$x/c$')
+            plt.ylabel('$U_x$')
             plt.show()
 
             vSolver.SetVelocities(iSec, 0, UxUp, UyUp, UzUp)
@@ -146,9 +151,23 @@ class Interpolator:
                 elif iReg == 1:
                     x[iReg] = np.vstack((x[iReg], self.viscCg_tr[iSec][iReg][:,:3]))
                     blw[iReg] = np.concatenate((blw[iReg], vSolver.ExtractBlowingVel(iSec, 2)))
-
+        
+        fig = plt.figure()
+        ax = fig.add_subplot(projection='3d')
+        ax.scatter(x[0][:,0], x[0][:,2], blw[0], color = 'red')
+        """for sec in viscStruct_tr:
+            ax.scatter(sec[0][:,0], sec[0][:,2], sec[0][:,1], color = 'red')
+            #ax.scatter(sec[1][:,0], sec[1][:,2], sec[1][:,1], color = 'red')"""
+        #ax.set_zlim([-0.5, 0.5])
+        ax.set_xlabel('x')
+        ax.set_ylabel('y')
+        ax.set_zlabel('Blowing velocity')
+        #plt.axis('off')
+        plt.show()
         self.tms['Interpolation'].start()
         nD = self.cfg['nDim']
+        #wignggg = self.__RbfToSections(x[0], blw[0], self.invCg_tr[0][:,:3])
+        wakke = self.__RbfToSections(x[1][:, [0,2] if nD==3 else 0], blw[1], self.invCg_tr[1][:, [0,2] if nD==3 else 0])
         mappedBlw = [self.__RbfToSections(x[0], blw[0], self.invCg_tr[0][:,:3]), self.__RbfToSections(x[1][:, [0,2] if nD==3 else 0], blw[1], self.invCg_tr[1][:, [0,2] if nD==3 else 0])]
         
         self.tms['Interpolation'].stop()
@@ -311,19 +330,6 @@ class Interpolator:
         # Cg positions
         self.tms['iSecLoop'].stop()
 
-        """fig = plt.figure()
-        ax = fig.add_subplot(projection='3d')
-        ax.scatter(invStruct_tr[0][:,0], invStruct_tr[0][:,2], invStruct_tr[0][:,1], s=0.3)
-        ax.scatter(invStruct_tr[1][:,0], invStruct_tr[1][:,2], invStruct_tr[1][:,1], s=0.3)
-        for sec in viscStruct_tr:
-            ax.scatter(sec[0][:,0], sec[0][:,2], sec[0][:,1], color = 'red')
-            ax.scatter(sec[1][:,0], sec[1][:,2], sec[1][:,1], color = 'red')
-        ax.set_zlim([-0.5, 0.5])
-        ax.set_xlabel('x')
-        ax.set_ylabel('y')
-        ax.set_zlabel('z')
-        plt.show()"""
-
         viscCg_tr = [[np.zeros((len(viscStruct[iSec][iReg][:,0]) - 1, 3)) for iReg in range(2)] for iSec in range(len(viscStruct))]
         invCg_tr = [np.zeros((len(blw[iReg].tag.elems), 3)) for iReg in range(2)]
         self.tms['CgLoop'].start()
@@ -360,8 +366,185 @@ class Interpolator:
 
         self.invCg_tr = invCg_tr
         self.viscCg_tr = viscCg_tr
-        np.set_printoptions(threshold=sys.maxsize)
+        """np.set_printoptions(threshold=sys.maxsize)
         for sec in self.viscStruct:
             print('next')
             sec[0][:,[1,2]] = sec[0][:,[2,1]]
-            print(sec[0])
+            print(sec[0])"""
+
+        fig = plt.figure()
+        ax = fig.add_subplot(projection='3d')
+        ax.scatter(invStruct_tr[0][:,0], invStruct_tr[0][:,2], invStruct_tr[0][:,1], s=0.3)
+        ax.scatter(invStruct_tr[0][:,0], -invStruct_tr[0][:,2], invStruct_tr[0][:,1], s=0.3, color='grey')
+        #ax.scatter(invStruct[1][:,0], invStruct[1][:,2], invStruct[1][:,1], s=0.3)
+        for sec in viscStruct_tr:
+            ax.scatter(sec[0][:,0], sec[0][:,2], sec[0][:,1], color = 'red')
+            ax.scatter(sec[1][:,0], sec[1][:,2], sec[1][:,1], color = 'red')
+        ax.set_zlim([-0.5, 0.5])
+        ax.set_xlabel('x')
+        ax.set_ylabel('y')
+        ax.set_zlabel('z')
+        #plt.gca().invert_yaxis()
+        plt.axis('off')
+        plt.show()
+
+
+    def __GetAirfoil(self, blw, config):
+
+        if config['nSections'] != 1:
+            raise RuntimeError('Cannot create more than 1 section on 2D geometry. Specified:', config['nSections'])
+
+        viscStruct = [[np.zeros((config['nPoints'][1] if i==1 else 2*config['nPoints'][0]-1, 3)) for i in range(2)] for _ in range(config['nSections'])]
+        viscStruct_tr = [[np.zeros((config['nPoints'][1] if i==1 else 2*config['nPoints'][0]-1, 3)) for i in range(1)] for _ in range(config['nSections'])]
+
+        # Create node list
+        nodesCoord = np.zeros((0, 4))
+        for n in blw[0].nodes:
+            nodesCoord = np.vstack((nodesCoord, [n.pos[0], n.pos[1], n.pos[2], n.row]))
+
+        spanDistri = np.zeros(1)
+        spanDistri[0] = nodesCoord[0,2] # Span direction is the z direction
+
+        wingSpan = max(nodesCoord[:,2]) - min(nodesCoord[:,2])
+
+        #upperNodes = nodesCoord[nodesCoord[:,2]>0]
+
+        """nVec = [np.zeros(0) for _ in range(blw[1].tag.elems[0].nodes.size())]
+        nVec = blw[1].tag.elems[0]
+        normalRef = np.cross(nVec[1] - nVec[0], nVec[2] - nVec[0])
+        normalRef/=np.linalg.norm(normalRef)
+
+        upperNodes = np.zeros((0,4))
+        lowerNodes = np.zeros((0,4))
+        for e in blw[0].tag.elems:
+            # Compute normal
+            cVec = [e.nodes[1].pos[0] - e.nodes[0].pos[0], -(e.nodes[1].pos[1] - e.nodes[0].pos[1]), 0]
+            print(cVec)
+            if np.dot(cVec, normalRef) >=0:
+                for n in e.nodes:
+                    if n.row not in upperNodes[:,3] and n.row not in lowerNodes[:,3]:
+                       upperNodes = np.vstack((upperNodes, [n.pos[0], n.pos[1], n.pos[2], n.row]))
+
+            else:
+                for n in e.nodes:
+                    if n.row not in upperNodes[:,3] and n.row not in lowerNodes[:,3]:
+                       upperNodes = np.vstack((upperNodes, [n.pos[0], n.pos[1], n.pos[2], n.row]))
+
+        plt.plot(upperNodes[:,0], upperNodes[:,1])
+        plt.plot(lowerNodes[:,0], lowerNodes[:,1])
+        plt.show()"""
+        for iSec, z in enumerate(spanDistri):
+            
+            portion = nodesCoord[abs(nodesCoord[:,2] - z) <= 0.01 * wingSpan,:]
+
+            le_coord = portion[portion[:,0] == np.min((portion[:,0])), :][0]
+            te_coord = portion[portion[:,0] == np.max((portion[:,0])), :][0]
+
+            # Find te elements
+            te_elems = []
+            for e in blw[0].tag.elems:
+                for n in e.nodes:
+                    if n.pos[0] == te_coord[0]:
+                        te_elems.append(e)
+                        break
+            
+            # Cg of te elements
+            cg_teElems = np.zeros((len(te_elems), 3))
+            for iElm, eTe in enumerate(te_elems):
+                for n in eTe.nodes:
+                    cg_teElems[iElm, 0] += n.pos[0]
+                    cg_teElems[iElm, 1] += n.pos[1]
+                    cg_teElems[iElm, 2] += n.pos[2]
+            
+            # Sort upper side in 0 and lower side in 1
+            if cg_teElems[0, 1] < cg_teElems[1, 1]:
+                save = te_elems[0].copy()
+                te_elems[0] = te_elems[1]
+                te_elems[1] = save
+            
+            # Find te_nodes (sorted [upper, lower])
+            te_nodes = [None, None]
+            for i in range(len(te_elems)):
+                for n in te_elems[i].nodes:
+                    if n.pos[0] == te_coord[0]:
+                        te_nodes[i] = n
+                        break
+            
+            # Find le_node
+            for n in blw[0].nodes:
+                if n.pos[0] == le_coord[0]:
+                    le_node = n
+                    break
+                
+
+            meany = (le_coord[1] + te_coord[1]) / 2
+
+            transformedCoord = np.zeros((0, 4))
+            nodesList = []
+
+            for iNode, n in enumerate(blw[0].nodes):
+                if n.pos[0] != le_coord[0] and n.pos[0] != te_coord[0]:
+                    if n.pos[1] > meany:
+                        transformedCoord = np.vstack((transformedCoord, [n.pos[0], n.pos[1], n.pos[2], n.row]))
+                        nodesList.append(n)
+
+                    elif n.pos[1] < meany:
+                        transformedCoord = np.vstack((transformedCoord, [-n.pos[0], n.pos[1], n.pos[2], n.row]))
+                        nodesList.append(n)
+
+            transformedCoord = np.vstack((transformedCoord, le_coord))
+            nodesList.append(le_node)
+            transformedCoord = np.vstack((transformedCoord, [te_nodes[0].pos[0], te_nodes[0].pos[1], te_nodes[0].pos[2], te_nodes[0].row]))
+            nodesList.append(te_nodes[0])
+            transformedCoord = np.vstack((transformedCoord, [-te_nodes[1].pos[0], te_nodes[1].pos[1], te_nodes[1].pos[2], te_nodes[1].row]))
+            nodesList.append(te_nodes[1])
+
+            wakeCoord = np.zeros((len(blw[1].nodes), 4))
+            for iNode, n in enumerate(blw[1].nodes):
+                wakeCoord[iNode, 0] = n.pos[0]
+                wakeCoord[iNode, 1] = n.pos[1]
+                wakeCoord[iNode, 2] = n.pos[2]
+                wakeCoord[iNode, 3] = n.row
+            
+            chordLength = max(portion[:, 0]) - min(portion[:, 0])
+            xDistri = le_coord[0] + 1/2*(1 + np.cos(np.linspace(0, np.pi, config['nPoints'][0])))*chordLength
+
+            viscStruct[iSec][0][:,0] = np.concatenate((xDistri[:-1], xDistri[::-1]), axis=None)
+            viscStruct[iSec][0][:,2] = z*np.ones(len(viscStruct[iSec][0][:,0]))
+
+            viscStruct_tr[iSec][0][:,0] = np.concatenate((xDistri[:-1], -xDistri[::-1]), axis=None).copy()
+            viscStruct_tr[iSec][0][:,2] = z*np.ones(len(viscStruct[iSec][0][:,0]))
+
+            # Interpolation in the transformed space.
+            splineTr = transformedCoord.copy()
+            splineTr = splineTr[splineTr[:, 0].argsort()]
+            spl = splrep(splineTr[:,0], splineTr[:,1], k=5)
+            viscStruct_tr[iSec][0][:,1] = splev(viscStruct_tr[iSec][0][:,0], spl)
+            #viscStruct_tr[iSec][0][:,1] = interp1d(transformedCoord[:,0], transformedCoord[:,1])(viscStruct_tr[iSec][0][:,0])
+            viscStruct[iSec][0][:,1] = viscStruct_tr[iSec][0][:,1].copy()
+
+            # Wake
+            wakeLength = np.max(wakeCoord[:,0]) - np.max(viscStruct[iSec][0][:,0])
+            viscStruct[iSec][1][:,0] = np.max(viscStruct[iSec][0][:,0]) + (np.max(viscStruct[iSec][0][:,0]) + np.cos(np.linspace(np.pi, np.pi/2, config['nPoints'][1]))) * wakeLength
+            viscStruct[iSec][1][:,2] = z*np.ones(len(viscStruct[iSec][1][:,0]))
+            viscStruct[iSec][1][:,1] = interp1d(wakeCoord[:,0], wakeCoord[:,1])(viscStruct[iSec][1][:,0])
+
+            self.invStruct = [np.zeros((0, 4)) for _ in range(2)]
+            self.invStruct_tr = [np.zeros((0, 4)) for _ in range(2)]
+            self.invStruct[0] = abs(transformedCoord.copy())
+            self.invStruct_tr[0] = transformedCoord.copy()
+            self.invStruct[1] = abs(wakeCoord.copy())
+            self.invStruct_tr[1] = wakeCoord.copy()
+
+            print(np.shape(self.invStruct[0]))
+
+
+            self.viscStruct = viscStruct
+            self.viscStruct_tr = viscStruct_tr
+            #plt.plot(nodesCoord[:,0], nodesCoord[:,1], 'o', markersize=8, color='green')
+            plt.plot(viscStruct[0][0][:,0], viscStruct[0][0][:,1], 'x', color='blue')
+            plt.axis('off')
+            plt.show()
+            return nodesList, transformedCoord, wakeCoord, viscStruct, viscStruct_tr
+
+
diff --git a/dart/pyVII/vUtils.py b/dart/pyVII/vUtils.py
index 7009f8d..1cd9109 100644
--- a/dart/pyVII/vUtils.py
+++ b/dart/pyVII/vUtils.py
@@ -80,27 +80,27 @@ def WriteFile(wData, Re, toW=['deltaStar', 'H', 'Cf', 'Ct', 'delta']):
   print('done.')
 
 
-def PlotVars(wData, var='H'):
+def PlotVars(wData, var='H', cs = -1):
   from matplotlib import pyplot as plt
 
-  nUpper = len(wData['x/c'])
-  for i in range(len(wData['x/c'])):
-    if wData['x/c'][i] == 1.0:
-      nUpper = i+1
-      break
+  if cs != -1:
+    xfDict = ExtractXfoil('/Users/paulzer/lab/dartflo/dart/tests/ref/dumpa5.dat')
 
-  # [0   1          2      3  4  5   6   7      8       9  10  11  12     13     14  15    16]  
-  # [xx, x, deltaStar, theta, H, N, Ue, Hk, Hstar, Hstar2, Cf, Cd, Ct, delta, VtExt, Me, Rhoe]
+  for v in var:
   
-  plt.plot(wData['x/c'][:nUpper], wData[var][:nUpper], color='#0072BD', linewidth=3)
-  plt.plot(wData['x/c'][nUpper:], wData[var][nUpper:], color='#D95319', linewidth=3)
-  plt.axvline(x=wData['xtrTop'], linestyle="--", color='#0072BD')
-  plt.axvline(x=wData['xtrBot'], linestyle="--", color='#D95319')
-  plt.xlabel('$x/c$')
-  plt.ylabel(var)
-  plt.xlim([0,2])
-  plt.legend(['Upper side', 'Lower side'], frameon=False)
-  plt.show()
+    plt.plot(wData['x/c'], wData[v], color='#191cd9', linewidth=3)
+    if xfDict is not None:
+      plt.plot(xfDict['x/c'], xfDict[v], '--', color='#D95319')
+    plt.axvline(x=wData['xtrT'], linestyle="--", color='#0072BD')
+    plt.axvline(x=wData['xtrB'], linestyle="--", color='#D95319')
+    plt.xlabel('$x/c$')
+    plt.ylabel(v)
+    plt.xlim([0,2])
+    if xfDict is not None:
+      plt.legend(['DART', 'XFOIL', 'Upper xtr {:.2f}'.format(wData['xtrT']), 'Lower xtr {:.2f}'.format(wData['xtrB'])], frameon=False)
+    else:
+      plt.legend(['DART', 'Upper xtr {:.2f}'.format(wData['xtrT']), 'Lower xtr {:.2f}'.format(wData['xtrB'])], frameon=False)
+    plt.show()
 
 def PlotPolar(coeffTable):
   from matplotlib import pyplot as plt
@@ -112,4 +112,15 @@ def PlotPolar(coeffTable):
   plt.plot(coeffTable[1,:], coeffTable[2,:], 'x-')
   plt.xlabel('$c_l$ (-)')
   plt.ylabel('$c_d$ (-)')
-  plt.show()
\ No newline at end of file
+  plt.show()
+
+def ExtractXfoil(file):
+  import numpy as np
+
+  with open(file, encoding = 'utf-8') as f:
+    lines = f.readlines()
+  
+  data = np.asanyarray(lines)
+  print(np.shape(data))
+  
+
diff --git a/dart/src/wBLRegion.cpp b/dart/src/wBLRegion.cpp
index f87aadb..9d5c31e 100644
--- a/dart/src/wBLRegion.cpp
+++ b/dart/src/wBLRegion.cpp
@@ -32,6 +32,7 @@ BLRegion::~BLRegion()
 {
     delete closSolver;
     delete mesh;
+    delete invBnd;
     // std::cout << "~BLRegion()\n";
 } // end ~BLRegion
 
@@ -174,4 +175,4 @@ void BLRegion::PrintSolution(size_t iPoint) const
                 << std::setw(10) << "Me " << invBnd->GetMe(iPoint)   << "\n"
                 << std::setw(10) << "Rhoe " <<invBnd->GetRhoe(iPoint)   << "\n"
                 << "\n";
-}
\ No newline at end of file
+}
diff --git a/dart/tests/bli.py b/dart/tests/bli.py
new file mode 100644
index 0000000..cf3980d
--- /dev/null
+++ b/dart/tests/bli.py
@@ -0,0 +1,172 @@
+#!/usr/bin/env python3 
+# -*- coding: utf-8 -*-
+
+# Copyright 2020 University of Liège
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+## Compute lifting (linear or nonlinear) viscous flow around a NACA 0012
+# Amaury Bilocq
+#
+# Test the viscous-inviscid interaction scheme
+# Reference to the master's thesis: http://hdl.handle.net/2268/252195
+# Reference test cases with Naca0012 (different from master's thesis):
+# 1) Incompressible: Re = 1e7, M_inf = 0, alpha = 5°, msTE = 0.01, msLE = 0.01
+#    -> nIt = 27, Cl = 0.55, Cd = 0.0058, xtrTop = 0.087, xtrBot = 0.741
+#    -> msLe = 0.001, xtrTop = 0.061
+# 2) Compressible: Re = 1e7, M_inf = 5, alpha = 5°, msTE = 0.01, msLE = 0.01
+#    -> nIt = 33, Cl = 0.65, Cd = 0.0063, xtrTop = 0.057, xtrBot = 0.740
+# 3) Separated: Re = 1e7, M_inf = 0, alpha = 12°, msTE = 0.01, msLE = 0.001
+#    -> nIt = 43, Cl = 1.30 , Cd = 0.0108, xtrTop = 0.010, xtrBot = 1
+#
+# CAUTION
+# This test is provided to ensure that the solver works properly.
+# Mesh refinement may have to be performed to obtain physical results.
+
+import dart.utils as floU
+import dart.default as floD
+
+import dart.pyVII.vCoupler as floVC
+import dart.pyVII.vUtils as viscU
+
+import tbox.utils as tboxU
+import fwk
+from fwk.testing import *
+from fwk.coloring import ccolors
+
+import math
+
+def Case(cs = 0):
+
+    if cs == 0:
+        Re = 1e7
+        alpha = 5.*math.pi/180
+        M = 0.
+        arf = 'models/n0012.geo'
+    elif cs == 1:
+        Re = 1e7
+        alpha = 12.*math.pi/180
+        M = 0.
+        arf = 'models/n0012.geo'
+    elif cs == 2:
+        Re = 1e7
+        alpha = 2.*math.pi/180
+        M = .715
+        arf = 'models/rae2822.geo'
+    else:
+        Re = 1e7
+        alpha = 0.
+        M = 0.
+        arf = 'models/n0012.geo'
+
+    return Re, alpha, M, arf
+
+
+
+def main():
+    print('Start')
+    # timer
+    tms = fwk.Timers()
+    tms['total'].start()
+
+    cs = 0
+    CFL0 = 1
+    dim = 2
+    nSections = 1
+    c_ref = 1
+    plotVars = ['H']
+
+    ms = [.001, .01] # [LE, TE]
+
+    # ========================================================================================
+
+    # define flow variables
+    Re, alpha, M_inf, arf = Case(cs)
+
+
+    # mesh the geometry
+    print(ccolors.ANSI_BLUE + 'PyMeshing...' + ccolors.ANSI_RESET)
+    tms['msh'].start()
+
+    pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : ms[1], 'msLe' : ms[0]}
+    msh, writer = floD.mesh(dim, arf, pars, ['field', 'airfoil', 'downstream'])
+    tms['msh'].stop()
+
+    # set the problem and add medium, initial/boundary conditions
+    tms['pre'].start()
+    pbl, _, _, bnd, blw = floD.problem(msh, dim, alpha, 0., M_inf, c_ref, c_ref, 0.25, 0., 0., 'airfoil', te = 'te', vsc = True, dbc=True)
+    tms['pre'].stop()
+
+    # solve viscous problem
+    print(ccolors.ANSI_BLUE + 'PySolving...' + ccolors.ANSI_RESET)
+    tms['solver'].start()
+
+    # Initialize solvers and coupler
+    
+    iSolver = floD.newton(pbl)
+    vSolver = viscU.initBL(Re, M_inf, CFL0, nSections)
+
+    coupler = floVC.Coupler(iSolver, vSolver, blw)
+    coupler.Run()
+
+    # extract Cp
+    Cp = floU.extract(bnd.groups[0].tag.elems, iSolver.Cp)
+    # Extract BL variables
+    vSln = viscU.GetSolution(0, vSolver)
+
+    # display results
+    print(ccolors.ANSI_BLUE + 'PyRes...' + ccolors.ANSI_RESET)
+    print('      Re        M    alpha       Cl       Cd      Cdp      Cdf       Cm')
+    print('{0:6.1f}e6 {1:8.2f} {2:8.1f} {3:8.4f} {4:8.4f} {5:8.4f} {6:8.4f} {7:8.4f}\n'.format(Re/1e6, M_inf, alpha*180/math.pi, iSolver.Cl, vSolver.Cdt, vSolver.Cdp, vSolver.Cdf, iSolver.Cm))
+
+    print(ccolors.ANSI_BLUE + 'PyWriting...' + ccolors.ANSI_RESET)
+    tboxU.write(Cp, 'Cp_Corrected.dat', '%1.5e', ', ', 'x, y, z, Cp', '')
+    viscU.WriteFile(vSln, vSolver.GetRe())
+    print(' ')
+
+    # display timers
+    tms['total'].stop()
+    print(ccolors.ANSI_BLUE + 'PyTiming...' + ccolors.ANSI_RESET)
+    print('CPU statistics')
+    print(tms)
+    print('SOLVERS statistics')
+    print(coupler.tms)
+
+    # check results
+    print(ccolors.ANSI_BLUE + 'PyTesting...' + ccolors.ANSI_RESET)
+    tests = CTests()
+    if Re == 1e7 and M_inf == 0. and alpha == 2.*math.pi/180:
+        tests.add(CTest('Cl', iSolver.Cl, 0.2208, 5e-3))
+        tests.add(CTest('Cd', vSln['Cdt'], 0.00531, 1e-3, forceabs=True))
+        tests.add(CTest('Cdp', vSln['Cdp'], 0.0009, 1e-3, forceabs=True))
+        tests.add(CTest('xtr_top', vSln['xtrT'], 0.20, 0.03, forceabs=True))
+        tests.add(CTest('xtr_bot', vSln['xtrB'], 0.50, 0.03, forceabs=True))
+    if Re == 1e7 and M_inf == 0. and alpha == 5.*math.pi/180:
+        tests.add(CTest('Cl', iSolver.Cl, 0.553, 5e-3))
+        tests.add(CTest('Cd', vSln['Cdt'], 0.0062, 1e-3, forceabs=True))
+        tests.add(CTest('Cdp', vSln['Cdp'],0.0018, 1e-3, forceabs=True))
+        tests.add(CTest('xtr_top', vSln['xtrT'], 0.06, 0.03, forceabs=True))
+        tests.add(CTest('xtr_bot', vSln['xtrB'], 0.74, 0.03, forceabs=True))
+    else:
+        print(ccolors.ANSI_RED + 'Test not defined for this flow' + ccolors.ANSI_RESET)
+
+    tests.run()
+
+    viscU.PlotVars(vSln, plotVars, cs)
+
+    # eof
+    print('')
+
+if __name__ == "__main__":
+    main()
diff --git a/dart/tests/bli2.py b/dart/tests/bli2.py
index e16ea38..45d28c4 100644
--- a/dart/tests/bli2.py
+++ b/dart/tests/bli2.py
@@ -36,8 +36,10 @@
 
 import dart.utils as floU
 import dart.default as floD
+import dart.pyVII.vInterpolator as vInterpol
 #import dart.viscUtils as viscU
 
+#import dart.pyVII.vCoupler as floVC
 import dart.pyVII.vCoupler as floVC
 import dart.pyVII.vUtils as viscU
 import numpy as np
@@ -60,12 +62,12 @@ def main():
     # define flow variables
     Re = 1e7
     alpha = 2*math.pi/180
-    M_inf = 0.73
+    M_inf = 0.
 
     CFL0 = 1
 
-    nSections = 1
-    
+    nSections = 1 # The simulation is two-dimensional
+
     # ========================================================================================
 
     c_ref = 1
@@ -75,8 +77,8 @@ def main():
     print(ccolors.ANSI_BLUE + 'PyMeshing...' + ccolors.ANSI_RESET)
     tms['msh'].start()
 
-    pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.01, 'msLe' : 0.005}
-    msh, gmshWriter = floD.mesh(dim, 'models/rae2822.geo', pars, ['field', 'airfoil', 'downstream'])
+    pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.01, 'msLe' : 0.001}
+    msh, gmshWriter = floD.mesh(dim, 'models/n0012.geo', pars, ['field', 'airfoil', 'downstream'])
     tms['msh'].stop()
 
     # set the problem and add medium, initial/boundary conditions
@@ -91,10 +93,12 @@ def main():
     
     isolver = floD.newton(pbl)
     vsolver = viscU.initBL(Re, M_inf, CFL0, nSections)
-    config = {'nDim': dim, 'nSections':nSections, 'nPoints':[600, 50], 'eps':0.02, 'rbftype': 'cubic', 'smoothing': 0.0, 'degree': 1, 'neighbors': 10}
+    config = {'nDim': dim, 'nSections':nSections, 'nPoints':[200, 25], 'eps':0.02, 'rbftype': 'linear', 'smoothing': 1e-6, 'degree': 0, 'neighbors': 1}
+
+    iSolverAPI = vInterpol.Interpolator(floD.newton(pbl), blw, config)
 
-    coupler = floVC.Coupler(isolver, vsolver)
-    coupler.CreateProblem(blw[0], blw[1])
+    coupler = floVC.Coupler(iSolverAPI, vsolver)
+    #coupler.CreateProblem(blw[0], blw[1])
     coupler.Run()
 
     # extract Cp
@@ -107,8 +111,8 @@ def main():
 
     # Write results to file
     vSol = viscU.GetSolution(0, vsolver)
-    plt.plot(vSol['x/c'], vSol['Cf'])
-    plt.show()
+    """plt.plot(vSol['x/c'], vSol['Cf'])
+    plt.show()"""
     viscU.WriteFile(vSol, vsolver.GetRe())
 
     # display timers
diff --git a/dart/tests/bli3.py b/dart/tests/bli3.py
index 718ba48..6e6f19a 100644
--- a/dart/tests/bli3.py
+++ b/dart/tests/bli3.py
@@ -52,7 +52,7 @@ def main():
     dim = 3
     CFL0 = 1
 
-    nSections = 5
+    nSections = 50
 
     # define dimension and mesh size
     spn = 1.0 # wing span
@@ -73,6 +73,7 @@ def main():
 
     # set the problem and add fluid, initial/boundary conditions
     tms['pre'].start()
+    # Replce tp = 'teTip' by tp = 'wakeTip' for oneraM6.geo
     pbl, _, wk, bnd, blw = floD.problem(msh, dim, alpha, 0., M_inf, S_ref, c_ref, 0., 0., 0., 'wing', tp = 'teTip', vsc=True)
     tms['pre'].stop()
 
diff --git a/dart/tests/bli_Polar.py b/dart/tests/bli_Polar.py
index 3e08f13..6bb6128 100644
--- a/dart/tests/bli_Polar.py
+++ b/dart/tests/bli_Polar.py
@@ -34,11 +34,9 @@
 # This test is provided to ensure that the solver works properly.
 # Mesh refinement may have to be performed to obtain physical results.
 
-import dart.utils as floU
+
 import dart.default as floD
-import dart.VII.viscUtils as viscU
 
-import dart.VII.vCoupler as floVC
 import numpy as np
 
 import tbox
@@ -87,11 +85,20 @@ def main():
     tms['solver'].start()
     
     isolver = floD.newton(pbl)
-    vsolver = floD.initBL(Re, M_inf, CFL0, meshFactor)
+    #vsolver = floD.initBL(Re, M_inf, CFL0, meshFactor)
+
+    #coupler = floVC.Coupler(isolver, vsolver)
 
-    coupler = floVC.Coupler(isolver, vsolver)
+    #coupler.CreateProblem(blw[0], blw[1])
 
-    coupler.CreateProblem(blw[0], blw[1])
+    alphaVec = [-4.04, -3.0, -2.14, -1.0, -0.05, 1.0, 2.05, 3.0, 4.04, 5.0, 6.09, 7.0, 8.3, 9.0, 10.119999999999997, 11.13, 12.12, 13.08, 14.22, 15, 15.260000000000002, 16.3, 17, 17.130000000000003, 17.5, 18.02]
+    cl = []
+    for alpha in alphaVec:
+        isolver.pbl.update(alpha*np.pi/180)
+        isolver.run()
+        cl.append(isolver.Cl)
+        isolver.reset()
+    print(alphaVec, 'ddfvf', cl)
 
     polar = coupler.RunPolar(alphaSeq)
     #coupler.Run()
diff --git a/dart/tests/bli_Trans.py b/dart/tests/bli_Trans.py
index 9e27a0a..82e1d65 100644
--- a/dart/tests/bli_Trans.py
+++ b/dart/tests/bli_Trans.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python3 
 # -*- coding: utf-8 -*-
 
 # Copyright 2020 University of Liège
@@ -36,9 +36,10 @@
 
 import dart.utils as floU
 import dart.default as floD
-import dart.VII.viscUtils as viscU
+#import dart.viscUtils as viscU
 
-import dart.VII.vCoupler as floVC
+import dart.pyVII.vCoupler as floVC
+import dart.pyVII.vUtils as viscU
 import numpy as np
 
 import tbox
@@ -46,6 +47,7 @@ import tbox.utils as tboxU
 import fwk
 from fwk.testing import *
 from fwk.coloring import ccolors
+from matplotlib import pyplot as plt
 
 import math
 
@@ -57,15 +59,13 @@ def main():
 
     # define flow variables
     Re = 1e7
-    alpha = 2.*math.pi/180
-    #alphaSeq = np.arange(-5, 5.5, 0.5)
-    M_inf = 0.715
+    alpha = 2*math.pi/180
+    M_inf = 0.
 
-    meshFactor = 2
     CFL0 = 1
 
-    plotVar = 'H'
-
+    nSections = 1
+    
     # ========================================================================================
 
     c_ref = 1
@@ -74,7 +74,8 @@ def main():
     # mesh the geometry
     print(ccolors.ANSI_BLUE + 'PyMeshing...' + ccolors.ANSI_RESET)
     tms['msh'].start()
-    pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.01, 'msLe' : 0.005}
+
+    pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.01, 'msLe' : 0.001}
     msh, gmshWriter = floD.mesh(dim, 'models/rae2822.geo', pars, ['field', 'airfoil', 'downstream'])
     tms['msh'].stop()
 
@@ -89,39 +90,42 @@ def main():
     tms['solver'].start()
     
     isolver = floD.newton(pbl)
-    vsolver = floD.initBL(Re, M_inf, CFL0, meshFactor)
+    vsolver = viscU.initBL(Re, M_inf, CFL0, nSections)
+    #config = {'nDim': dim, 'nSections':nSections, 'nPoints':[200, 50], 'eps':0.02, 'rbftype': 'cubic', 'smoothing': 0.0, 'degree': 1, 'neighbors': 10}
 
     coupler = floVC.Coupler(isolver, vsolver)
-
     coupler.CreateProblem(blw[0], blw[1])
-
-    #coupler.RunPolar(alphaSeq)
-    coupler.resetInv = True
     coupler.Run()
-    tms['solver'].stop()
 
     # extract Cp
     Cp = floU.extract(bnd.groups[0].tag.elems, isolver.Cp)
-    tboxU.write(Cp, 'Cp_airfoil.dat', '%1.5e', ', ', 'x, y, z, Cp', '')
+    tboxU.write(Cp, 'Cp.dat', '%1.5e', ', ', 'x, y, z, Cp', '')
     # display results
     print(ccolors.ANSI_BLUE + 'PyRes...' + ccolors.ANSI_RESET)
     print('      Re        M    alpha       Cl       Cd      Cdp      Cdf       Cm')
     print('{0:6.1f}e6 {1:8.2f} {2:8.1f} {3:8.4f} {4:8.4f} {5:8.4f} {6:8.4f} {7:8.4f}'.format(Re/1e6, M_inf, alpha*180/math.pi, isolver.Cl, vsolver.Cdt, vsolver.Cdp, vsolver.Cdf, isolver.Cm))
 
+    # Write results to file
+    vSol = viscU.GetSolution(0, vsolver)
+    plt.plot(vSol['x/c'], vSol['Cf'])
+    plt.show()
+    viscU.WriteFile(vSol, vsolver.GetRe())
+
     # display timers
     tms['total'].stop()
     print(ccolors.ANSI_BLUE + 'PyTiming...' + ccolors.ANSI_RESET)
     print('CPU statistics')
     print(tms)
-    
-    
+    print('SOLVERS statistics')
+    print(coupler.tms)
+
+    xtr=vsolver.Getxtr()
     
     """# visualize solution and plot results
     #floD.initViewer(pbl)
     tboxU.plot(Cp[:,0], Cp[:,3], 'x', 'Cp', 'Cl = {0:.{3}f}, Cd = {1:.{3}f}, Cm = {2:.{3}f}'.format(isolver.Cl, vsolver.Cdt, isolver.Cm, 4), True)
 
     blScalars, blVectors = viscU.ExtractVars(vsolver)
-    xtr=vsolver.Getxtr()
     wData = viscU.Dictionary(blScalars, blVectors, xtr)
     viscU.PlotVars(wData, plotVar)"""
 
@@ -129,12 +133,18 @@ def main():
     # check results
     print(ccolors.ANSI_BLUE + 'PyTesting...' + ccolors.ANSI_RESET)
     tests = CTests()
-    if Re == 1e7 and M_inf == 0.2 and alpha == 5*math.pi/180:
-        tests.add(CTest('Cl', isolver.Cl, 0.56, 5e-2)) # XFOIL 0.58
-        tests.add(CTest('Cd', vsolver.Cdt, 0.0063, 1e-3, forceabs=True)) # XFOIL 0.00617
-        tests.add(CTest('Cdp', vsolver.Cdp, 0.0019, 1e-3, forceabs=True)) # XFOIL 0.00176
-        tests.add(CTest('xtr_top', vsolver.xtr[0], 0.059, 0.03, forceabs=True)) # XFOIL 0.0510
-        tests.add(CTest('xtr_bot', vsolver.xtr[1], 0.738, 0.03, forceabs=True)) # XFOIL 0.7473
+    if Re == 1e7 and M_inf == 0. and alpha == 2.*math.pi/180:
+        tests.add(CTest('Cl', isolver.Cl, 0.2208, 5e-3))
+        tests.add(CTest('Cd', vsolver.Cdt, 0.00531, 1e-3, forceabs=True))
+        tests.add(CTest('Cdp', vsolver.Cdp, 0.0009, 1e-3, forceabs=True))
+        tests.add(CTest('xtr_top', xtr[0], 0.20, 0.03, forceabs=True))
+        tests.add(CTest('xtr_bot', xtr[1], 0.50, 0.03, forceabs=True))
+    if Re == 1e7 and M_inf == 0. and alpha == 5.*math.pi/180:
+        tests.add(CTest('Cl', isolver.Cl, 0.5488, 5e-3))
+        tests.add(CTest('Cd', vsolver.Cdt, 0.0062, 1e-3, forceabs=True))
+        tests.add(CTest('Cdp', vsolver.Cdp,0.0018, 1e-3, forceabs=True))
+        tests.add(CTest('xtr_top', xtr[0], 0.06, 0.03, forceabs=True))
+        tests.add(CTest('xtr_bot', xtr[1], 0.74, 0.03, forceabs=True))
     else:
         raise Exception('Test not defined for this flow')
 
diff --git a/dart/tests/bli_lowLift.py b/dart/tests/bli_lowLift.py
index 10c1ae6..71de20f 100644
--- a/dart/tests/bli_lowLift.py
+++ b/dart/tests/bli_lowLift.py
@@ -82,7 +82,7 @@ def main():
         print(ccolors.ANSI_BLUE + 'PyMeshing...' + ccolors.ANSI_RESET)
         tms['msh'].start()
 
-        pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.01, 'msLe' : 0.001}
+        pars = {'xLgt' : 5, 'yLgt' : 5, 'msF' : 1, 'msTe' : 0.05, 'msLe' : 0.05}
         msh, gmshWriter = floD.mesh(dim, 'models/n0012.geo', pars, ['field', 'airfoil', 'downstream'])
         tms['msh'].stop()
 
diff --git a/dart/tests/blipython.py b/dart/tests/blipython.py
index 8f40e54..cedec37 100755
--- a/dart/tests/blipython.py
+++ b/dart/tests/blipython.py
@@ -60,19 +60,19 @@ def main():
 
     # define flow variables
     Re = 1e7
-    alpha = 12.*math.pi/180
-    M_inf = 0.
+    alpha = 2.*math.pi/180
+    M_inf = 0.715
 
     #user_xtr=[0.41,0.41]
     #user_xtr=[0,None]
-    user_xtr=[None,None]
+    user_xtr=[0.35,None]
     user_Ti=None
 
-    mapMesh = 0
+    mapMesh = 1
     nFactor = 2
 
     # Time solver parameters
-    Time_Domain = False # True for unsteady solver, False for steady solver
+    Time_Domain = True # True for unsteady solver, False for steady solver
     CFL0 = 1
 
     # ========================================================================================
diff --git a/dart/tests/ref/cpa12.dat b/dart/tests/ref/cpa12.dat
new file mode 100644
index 0000000..4907b6f
--- /dev/null
+++ b/dart/tests/ref/cpa12.dat
@@ -0,0 +1,161 @@
+#      x          Cp  
+     1.00000    0.18840
+     0.99168    0.17418
+     0.98037    0.15346
+     0.96727    0.12872
+     0.95272    0.10086
+     0.93720    0.07122
+     0.92112    0.04097
+     0.90474    0.01091
+     0.88821   -0.01854
+     0.87160   -0.04720
+     0.85494   -0.07505
+     0.83827   -0.10214
+     0.82158   -0.12855
+     0.80488   -0.15439
+     0.78817   -0.17978
+     0.77146   -0.20481
+     0.75475   -0.22959
+     0.73803   -0.25422
+     0.72132   -0.27879
+     0.70460   -0.30338
+     0.68789   -0.32807
+     0.67118   -0.35294
+     0.65447   -0.37805
+     0.63777   -0.40349
+     0.62108   -0.42930
+     0.60440   -0.45558
+     0.58772   -0.48237
+     0.57106   -0.50975
+     0.55441   -0.53778
+     0.53778   -0.56653
+     0.52116   -0.59608
+     0.50456   -0.62649
+     0.48798   -0.65786
+     0.47143   -0.69026
+     0.45489   -0.72378
+     0.43839   -0.75853
+     0.42191   -0.79461
+     0.40546   -0.83213
+     0.38905   -0.87123
+     0.37268   -0.91206
+     0.35635   -0.95478
+     0.34007   -0.99958
+     0.32383   -1.04668
+     0.30766   -1.09633
+     0.29154   -1.14881
+     0.27550   -1.20448
+     0.25953   -1.26372
+     0.24366   -1.32703
+     0.22788   -1.39499
+     0.21222   -1.46828
+     0.19670   -1.54776
+     0.18135   -1.63446
+     0.16619   -1.72963
+     0.15127   -1.83479
+     0.13666   -1.95173
+     0.12246   -2.08249
+     0.10877   -2.22926
+     0.09575   -2.39410
+     0.08358   -2.57858
+     0.07242   -2.78339
+     0.06239   -3.00822
+     0.05354   -3.25208
+     0.04581   -3.51383
+     0.03910   -3.79258
+     0.03329   -4.08803
+     0.02826   -4.39989
+     0.02387   -4.72736
+     0.02003   -5.06760
+     0.01666   -5.41568
+     0.01369   -5.77910
+     0.01108   -6.32950
+     0.00879   -6.84263
+     0.00678   -7.12831
+     0.00505   -7.46547
+     0.00358   -7.76237
+     0.00236   -7.94349
+     0.00140   -7.94666
+     0.00070   -7.72285
+     0.00024   -7.25627
+     0.00003   -6.58627
+     0.00003   -5.80608
+     0.00024   -4.92182
+     0.00070   -3.95996
+     0.00140   -3.00388
+     0.00236   -2.12510
+     0.00358   -1.36843
+     0.00505   -0.74804
+     0.00678   -0.25734
+     0.00879    0.12081
+     0.01108    0.40590
+     0.01369    0.61662
+     0.01666    0.76829
+     0.02003    0.87372
+     0.02387    0.94248
+     0.02826    0.98229
+     0.03329    0.99883
+     0.03910    0.99667
+     0.04581    0.97942
+     0.05354    0.95029
+     0.06239    0.91209
+     0.07242    0.86782
+     0.08358    0.82008
+     0.09575    0.77150
+     0.10877    0.72383
+     0.12246    0.67843
+     0.13666    0.63591
+     0.15127    0.59658
+     0.16619    0.56041
+     0.18135    0.52726
+     0.19670    0.49693
+     0.21222    0.46918
+     0.22788    0.44378
+     0.24366    0.42051
+     0.25953    0.39917
+     0.27550    0.37958
+     0.29154    0.36156
+     0.30766    0.34497
+     0.32383    0.32968
+     0.34007    0.31556
+     0.35635    0.30251
+     0.37268    0.29043
+     0.38905    0.27923
+     0.40546    0.26884
+     0.42191    0.25917
+     0.43839    0.25017
+     0.45489    0.24178
+     0.47143    0.23395
+     0.48798    0.22662
+     0.50456    0.21976
+     0.52116    0.21333
+     0.53778    0.20729
+     0.55441    0.20161
+     0.57106    0.19627
+     0.58772    0.19124
+     0.60440    0.18650
+     0.62108    0.18203
+     0.63777    0.17782
+     0.65447    0.17386
+     0.67118    0.17013
+     0.68789    0.16663
+     0.70460    0.16336
+     0.72132    0.16031
+     0.73803    0.15750
+     0.75475    0.15493
+     0.77146    0.15262
+     0.78817    0.15058
+     0.80488    0.14885
+     0.82158    0.14745
+     0.83827    0.14643
+     0.85494    0.14587
+     0.87160    0.14583
+     0.88821    0.14644
+     0.90474    0.14786
+     0.92112    0.15031
+     0.93720    0.15412
+     0.95272    0.15966
+     0.96727    0.16735
+     0.98037    0.17650
+     0.99168    0.18551
+     1.00000    0.18840
diff --git a/dart/tests/ref/cpa5.dat b/dart/tests/ref/cpa5.dat
new file mode 100644
index 0000000..9cf08bb
--- /dev/null
+++ b/dart/tests/ref/cpa5.dat
@@ -0,0 +1,161 @@
+#      x          Cp  
+     1.00000    0.21661
+     0.99168    0.19273
+     0.98037    0.16031
+     0.96727    0.12732
+     0.95272    0.09520
+     0.93720    0.06518
+     0.92112    0.03762
+     0.90474    0.01240
+     0.88821   -0.01082
+     0.87160   -0.03237
+     0.85494   -0.05257
+     0.83827   -0.07169
+     0.82158   -0.08993
+     0.80488   -0.10748
+     0.78817   -0.12447
+     0.77146   -0.14102
+     0.75475   -0.15723
+     0.73803   -0.17319
+     0.72132   -0.18898
+     0.70460   -0.20465
+     0.68789   -0.22027
+     0.67118   -0.23588
+     0.65447   -0.25153
+     0.63777   -0.26727
+     0.62108   -0.28313
+     0.60440   -0.29915
+     0.58772   -0.31537
+     0.57106   -0.33181
+     0.55441   -0.34851
+     0.53778   -0.36550
+     0.52116   -0.38281
+     0.50456   -0.40047
+     0.48798   -0.41850
+     0.47143   -0.43694
+     0.45489   -0.45582
+     0.43839   -0.47516
+     0.42191   -0.49500
+     0.40546   -0.51538
+     0.38905   -0.53633
+     0.37268   -0.55789
+     0.35635   -0.58010
+     0.34007   -0.60303
+     0.32383   -0.62671
+     0.30766   -0.65121
+     0.29154   -0.67662
+     0.27550   -0.70300
+     0.25953   -0.73047
+     0.24366   -0.75913
+     0.22788   -0.78913
+     0.21222   -0.82063
+     0.19670   -0.85383
+     0.18135   -0.88897
+     0.16619   -0.92632
+     0.15127   -0.96620
+     0.13666   -1.00897
+     0.12246   -1.05496
+     0.10877   -1.10437
+     0.09575   -1.15699
+     0.08358   -1.21158
+     0.07242   -1.26623
+     0.06239   -1.32309
+     0.05354   -1.42550
+     0.04581   -1.48884
+     0.03910   -1.55252
+     0.03329   -1.61805
+     0.02826   -1.68300
+     0.02387   -1.74599
+     0.02003   -1.80560
+     0.01666   -1.85984
+     0.01369   -1.90591
+     0.01108   -1.93977
+     0.00879   -1.95571
+     0.00678   -1.94588
+     0.00505   -1.90008
+     0.00358   -1.80622
+     0.00236   -1.65226
+     0.00140   -1.43032
+     0.00070   -1.14286
+     0.00024   -0.80663
+     0.00003   -0.45294
+     0.00003   -0.11648
+     0.00024    0.20039
+     0.00070    0.47959
+     0.00140    0.70102
+     0.00236    0.85647
+     0.00358    0.95035
+     0.00505    0.99327
+     0.00678    0.99812
+     0.00879    0.97624
+     0.01108    0.93669
+     0.01369    0.88577
+     0.01666    0.82823
+     0.02003    0.76681
+     0.02387    0.70373
+     0.02826    0.64008
+     0.03329    0.57687
+     0.03910    0.51466
+     0.04581    0.45407
+     0.05354    0.39570
+     0.06239    0.34029
+     0.07242    0.28860
+     0.08358    0.24136
+     0.09575    0.19904
+     0.10877    0.16177
+     0.12246    0.12936
+     0.13666    0.10142
+     0.15127    0.07747
+     0.16619    0.05698
+     0.18135    0.03951
+     0.19670    0.02464
+     0.21222    0.01202
+     0.22788    0.00134
+     0.24366   -0.00764
+     0.25953   -0.01516
+     0.27550   -0.02138
+     0.29154   -0.02648
+     0.30766   -0.03059
+     0.32383   -0.03382
+     0.34007   -0.03629
+     0.35635   -0.03807
+     0.37268   -0.03925
+     0.38905   -0.03990
+     0.40546   -0.04008
+     0.42191   -0.03983
+     0.43839   -0.03922
+     0.45489   -0.03827
+     0.47143   -0.03703
+     0.48798   -0.03552
+     0.50456   -0.03378
+     0.52116   -0.03182
+     0.53778   -0.02966
+     0.55441   -0.02733
+     0.57106   -0.02483
+     0.58772   -0.02218
+     0.60440   -0.01939
+     0.62108   -0.01647
+     0.63777   -0.01342
+     0.65447   -0.01025
+     0.67118   -0.00699
+     0.68789   -0.00366
+     0.70460   -0.00037
+     0.72132    0.00261
+     0.73803    0.00428
+     0.75475    0.01006
+     0.77146    0.02825
+     0.78817    0.03238
+     0.80488    0.03537
+     0.82158    0.03937
+     0.83827    0.04458
+     0.85494    0.05086
+     0.87160    0.05821
+     0.88821    0.06672
+     0.90474    0.07658
+     0.92112    0.08809
+     0.93720    0.10168
+     0.95272    0.11792
+     0.96727    0.13760
+     0.98037    0.16136
+     0.99168    0.19380
+     1.00000    0.21661
diff --git a/dart/tests/ref/dumpa12.dat b/dart/tests/ref/dumpa12.dat
new file mode 100644
index 0000000..c659211
--- /dev/null
+++ b/dart/tests/ref/dumpa12.dat
@@ -0,0 +1,184 @@
+#    s        x        y     Ue/Vinf    Dstar     Theta      Cf       H       H*        P         m          K          tau         Di
+   0.00000  1.00000  0.00126  0.90089  0.014842  0.007386  0.000403    2.0096    1.5738  0.00599  0.01337  0.00850
+   0.00840  0.99168  0.00242  0.90875  0.013953  0.007132  0.000455    1.9562    1.5837  0.00589  0.01268  0.00848
+   0.01982  0.98037  0.00398  0.92007  0.012836  0.006791  0.000532    1.8903    1.5972  0.00575  0.01181  0.00845
+   0.03304  0.96727  0.00576  0.93342  0.011722  0.006419  0.000621    1.8260    1.6117  0.00559  0.01094  0.00841
+   0.04772  0.95272  0.00771  0.94823  0.010677  0.006042  0.000721    1.7673    1.6263  0.00543  0.01012  0.00838
+   0.06337  0.93720  0.00974  0.96373  0.009748  0.005680  0.000826    1.7163    1.6400  0.00528  0.00939  0.00834
+   0.07959  0.92112  0.01182  0.97930  0.008946  0.005346  0.000931    1.6735    1.6524  0.00513  0.00876  0.00830
+   0.09610  0.90474  0.01389  0.99453  0.008262  0.005044  0.001033    1.6379    1.6634  0.00499  0.00822  0.00825
+   0.11275  0.88821  0.01594  1.00923  0.007680  0.004775  0.001132    1.6085    1.6728  0.00486  0.00775  0.00821
+   0.12949  0.87160  0.01796  1.02333  0.007180  0.004533  0.001226    1.5841    1.6811  0.00475  0.00735  0.00817
+   0.14626  0.85494  0.01994  1.03685  0.006748  0.004315  0.001316    1.5636    1.6882  0.00464  0.00700  0.00812
+   0.16305  0.83827  0.02189  1.04983  0.006368  0.004118  0.001403    1.5464    1.6943  0.00454  0.00669  0.00807
+   0.17984  0.82158  0.02381  1.06233  0.006033  0.003939  0.001485    1.5316    1.6997  0.00444  0.00641  0.00803
+   0.19665  0.80488  0.02569  1.07443  0.005732  0.003774  0.001565    1.5190    1.7044  0.00436  0.00616  0.00798
+   0.21346  0.78817  0.02753  1.08618  0.005460  0.003621  0.001641    1.5081    1.7086  0.00427  0.00593  0.00793
+   0.23027  0.77146  0.02934  1.09764  0.005212  0.003478  0.001716    1.4985    1.7123  0.00419  0.00572  0.00788
+   0.24707  0.75475  0.03111  1.10887  0.004984  0.003345  0.001789    1.4901    1.7156  0.00411  0.00553  0.00782
+   0.26388  0.73803  0.03284  1.11992  0.004773  0.003219  0.001861    1.4826    1.7186  0.00404  0.00535  0.00777
+   0.28068  0.72132  0.03453  1.13084  0.004576  0.003100  0.001931    1.4760    1.7212  0.00396  0.00517  0.00772
+   0.29748  0.70460  0.03619  1.14166  0.004390  0.002987  0.002001    1.4701    1.7236  0.00389  0.00501  0.00766
+   0.31427  0.68789  0.03781  1.15242  0.004216  0.002878  0.002071    1.4647    1.7258  0.00382  0.00486  0.00760
+   0.33105  0.67118  0.03938  1.16316  0.004050  0.002774  0.002141    1.4599    1.7278  0.00375  0.00471  0.00754
+   0.34783  0.65447  0.04092  1.17390  0.003892  0.002674  0.002210    1.4555    1.7296  0.00369  0.00457  0.00748
+   0.36460  0.63777  0.04241  1.18469  0.003742  0.002578  0.002281    1.4515    1.7313  0.00362  0.00443  0.00742
+   0.38135  0.62108  0.04387  1.19554  0.003597  0.002485  0.002352    1.4478    1.7329  0.00355  0.00430  0.00736
+   0.39809  0.60440  0.04527  1.20647  0.003458  0.002394  0.002424    1.4444    1.7343  0.00348  0.00417  0.00729
+   0.41482  0.58772  0.04663  1.21753  0.003324  0.002306  0.002498    1.4413    1.7357  0.00342  0.00405  0.00722
+   0.43154  0.57106  0.04794  1.22872  0.003195  0.002221  0.002573    1.4384    1.7369  0.00335  0.00393  0.00716
+   0.44823  0.55441  0.04920  1.24007  0.003069  0.002138  0.002650    1.4357    1.7381  0.00329  0.00381  0.00709
+   0.46491  0.53778  0.05041  1.25161  0.002948  0.002057  0.002729    1.4333    1.7392  0.00322  0.00369  0.00701
+   0.48157  0.52116  0.05156  1.26336  0.002829  0.001977  0.002810    1.4310    1.7402  0.00316  0.00357  0.00694
+   0.49820  0.50456  0.05265  1.27534  0.002715  0.001900  0.002893    1.4288    1.7411  0.00309  0.00346  0.00686
+   0.51481  0.48798  0.05368  1.28758  0.002603  0.001824  0.002980    1.4268    1.7420  0.00302  0.00335  0.00678
+   0.53140  0.47143  0.05465  1.30010  0.002494  0.001750  0.003069    1.4250    1.7428  0.00296  0.00324  0.00670
+   0.54796  0.45489  0.05555  1.31293  0.002387  0.001677  0.003162    1.4233    1.7436  0.00289  0.00313  0.00662
+   0.56448  0.43839  0.05639  1.32610  0.002283  0.001606  0.003258    1.4217    1.7443  0.00282  0.00303  0.00653
+   0.58098  0.42191  0.05714  1.33963  0.002181  0.001536  0.003359    1.4203    1.7450  0.00276  0.00292  0.00644
+   0.59744  0.40546  0.05782  1.35356  0.002082  0.001467  0.003464    1.4190    1.7456  0.00269  0.00282  0.00635
+   0.61386  0.38905  0.05842  1.36793  0.001985  0.001400  0.003574    1.4178    1.7462  0.00262  0.00272  0.00626
+   0.63024  0.37268  0.05893  1.38277  0.001890  0.001334  0.003690    1.4167    1.7467  0.00255  0.00261  0.00616
+   0.64657  0.35635  0.05935  1.39813  0.001797  0.001269  0.003811    1.4158    1.7472  0.00248  0.00251  0.00606
+   0.66286  0.34007  0.05967  1.41407  0.001705  0.001205  0.003939    1.4150    1.7476  0.00241  0.00241  0.00595
+   0.67910  0.32383  0.05989  1.43062  0.001616  0.001142  0.004074    1.4144    1.7479  0.00234  0.00231  0.00585
+   0.69527  0.30766  0.06000  1.44787  0.001528  0.001081  0.004218    1.4139    1.7482  0.00227  0.00221  0.00573
+   0.71139  0.29154  0.06000  1.46588  0.001442  0.001020  0.004371    1.4136    1.7484  0.00219  0.00211  0.00562
+   0.72743  0.27550  0.05988  1.48475  0.001358  0.000960  0.004534    1.4134    1.7486  0.00212  0.00202  0.00550
+   0.74340  0.25953  0.05963  1.50457  0.001275  0.000902  0.004709    1.4134    1.7487  0.00204  0.00192  0.00537
+   0.75928  0.24366  0.05924  1.52546  0.001193  0.000844  0.004897    1.4137    1.7487  0.00196  0.00182  0.00524
+   0.77506  0.22788  0.05871  1.54758  0.001113  0.000787  0.005101    1.4141    1.7486  0.00189  0.00172  0.00510
+   0.79074  0.21222  0.05803  1.57108  0.001035  0.000732  0.005323    1.4148    1.7484  0.00181  0.00163  0.00496
+   0.80628  0.19670  0.05718  1.59617  0.000958  0.000677  0.005566    1.4157    1.7482  0.00172  0.00153  0.00481
+   0.82167  0.18135  0.05616  1.62310  0.000882  0.000623  0.005834    1.4169    1.7478  0.00164  0.00143  0.00465
+   0.83688  0.16619  0.05497  1.65216  0.000808  0.000569  0.006131    1.4184    1.7474  0.00155  0.00133  0.00449
+   0.85186  0.15127  0.05358  1.68368  0.000735  0.000517  0.006465    1.4203    1.7468  0.00147  0.00124  0.00431
+   0.86655  0.13666  0.05200  1.71806  0.000664  0.000467  0.006842    1.4225    1.7461  0.00138  0.00114  0.00413
+   0.88087  0.12246  0.05022  1.75570  0.000594  0.000417  0.007272    1.4250    1.7453  0.00129  0.00104  0.00394
+   0.89470  0.10877  0.04824  1.79701  0.000527  0.000369  0.007764    1.4280    1.7444  0.00119  0.00095  0.00374
+   0.90789  0.09575  0.04609  1.84231  0.000463  0.000324  0.008332    1.4314    1.7435  0.00110  0.00085  0.00353
+   0.92028  0.08358  0.04381  1.89171  0.000403  0.000281  0.008987    1.4351    1.7425  0.00101  0.00076  0.00331
+   0.93169  0.07242  0.04142  1.94509  0.000347  0.000241  0.009740    1.4391    1.7415  0.00091  0.00068  0.00309
+   0.94200  0.06239  0.03900  2.00205  0.000297  0.000206  0.010603    1.4431    1.7406  0.00083  0.00059  0.00288
+   0.95118  0.05354  0.03659  2.06206  0.000252  0.000174  0.011589    1.4468    1.7400  0.00074  0.00052  0.00266
+   0.95926  0.04581  0.03424  2.12458  0.000212  0.000147  0.012719    1.4500    1.7398  0.00066  0.00045  0.00245
+   0.96635  0.03910  0.03196  2.18920  0.000178  0.000123  0.014028    1.4517    1.7405  0.00059  0.00039  0.00224
+   0.97255  0.03329  0.02976  2.25567  0.000148  0.000102  0.015581    1.4510    1.7424  0.00052  0.00033  0.00203
+   0.97802  0.02826  0.02764  2.32377  0.000121  0.000084  0.017479    1.4463    1.7462  0.00045  0.00028  0.00183
+   0.98286  0.02387  0.02560  2.39319  0.000097  0.000068  0.019854    1.4369    1.7525  0.00039  0.00023  0.00163
+   0.98718  0.02003  0.02361  2.46325  0.000077  0.000054  0.022688    1.4273    1.7594  0.00033  0.00019  0.00142
+   0.99107  0.01666  0.02167  2.53292  0.000061  0.000042  0.024423    1.4574    1.7516  0.00027  0.00016  0.00120
+   0.99460  0.01369  0.01977  2.60367  0.000056  0.000033  0.018286    1.7067    1.6761  0.00022  0.00015  0.00097
+   0.99781  0.01108  0.01789  2.70731  0.000078  0.000026  0.002218    3.0028    1.5159  0.00019  0.00021  0.00078
+   1.00078  0.00879  0.01602  2.80047  0.000086  0.000021 -0.000333    4.0432    1.5281  0.00017  0.00024  0.00072
+   1.00352  0.00678  0.01415  2.85102  0.000066  0.000019  0.001214    3.4042    1.5335  0.00016  0.00019  0.00068
+   1.00607  0.00505  0.01227  2.90955  0.000051  0.000017  0.003812    2.9799    1.5479  0.00014  0.00015  0.00065
+   1.00847  0.00358  0.01038  2.96013  0.000041  0.000015  0.006780    2.7348    1.5632  0.00013  0.00012  0.00060
+   1.01072  0.00236  0.00848  2.99057  0.000034  0.000013  0.009966    2.5743    1.5772  0.00012  0.00010  0.00056
+   1.01286  0.00140  0.00657  2.99110  0.000029  0.000012  0.013204    2.4597    1.5894  0.00011  0.00009  0.00050
+   1.01490  0.00070  0.00466  2.95345  0.000025  0.000011  0.016155    2.3755    1.5998  0.00009  0.00008  0.00044
+   1.01685  0.00024  0.00276  2.87337  0.000023  0.000010  0.018443    2.3128    1.6084  0.00008  0.00007  0.00038
+   1.01872  0.00003  0.00091  2.75432  0.000022  0.000010  0.019442    2.2784    1.6135  0.00007  0.00006  0.00032
+   1.02053  0.00003 -0.00091  2.60885  0.000021  0.000009  0.019599    2.2556    1.6169  0.00006  0.00005  0.00026
+   1.02240  0.00024 -0.00276  2.43348  0.000020  0.000009  0.019300    2.2288    1.6212  0.00005  0.00005  0.00021
+   1.02434  0.00070 -0.00466  2.22710  0.000020  0.000009  0.018107    2.2080    1.6246  0.00005  0.00004  0.00016
+   1.02638  0.00140 -0.00657  2.00097  0.000020  0.000009  0.016184    2.1935    1.6270  0.00004  0.00004  0.00012
+   1.02852  0.00236 -0.00848  1.76780  0.000021  0.000010  0.013859    2.1844    1.6285  0.00003  0.00004  0.00009
+   1.03078  0.00358 -0.01038  1.53897  0.000022  0.000010  0.011450    2.1802    1.6293  0.00002  0.00003  0.00006
+   1.03317  0.00505 -0.01227  1.32213  0.000024  0.000011  0.009211    2.1786    1.6295  0.00002  0.00003  0.00004
+   1.03573  0.00678 -0.01415  1.12131  0.000026  0.000012  0.007225    2.1810    1.6291  0.00001  0.00003  0.00003
+   1.03847  0.00879 -0.01602  0.93765  0.000028  0.000013  0.005581    2.1819    1.6290  0.00001  0.00003  0.00002
+   1.04143  0.01108 -0.01789  0.77078  0.000031  0.000014  0.004182    2.1903    1.6275  0.00001  0.00002  0.00001
+   1.04465  0.01369 -0.01977  0.61918  0.000033  0.000015  0.003105    2.1887    1.6278  0.00001  0.00002  0.00001
+   1.04817  0.01666 -0.02167  0.48137  0.000036  0.000016  0.002169    2.2058    1.6249  0.00000  0.00002  0.00000
+   1.05206  0.02003 -0.02361  0.35535  0.000039  0.000018  0.001498    2.1957    1.6266  0.00000  0.00001  0.00000
+   1.05638  0.02387 -0.02560  0.23983  0.000043  0.000019  0.000890    2.2256    1.6217  0.00000  0.00001  0.00000
+   1.06122  0.02826 -0.02764  0.13308  0.000046  0.000021  0.000472    2.2126    1.6238  0.00000  0.00001  0.00000
+   1.06669  0.03329 -0.02976  0.03425  0.000053  0.000024  0.000103    2.2295    1.6211  0.00000  0.00000  0.00000
+   1.07290  0.03910 -0.03196 -0.05772  0.000053  0.000024  0.000173    2.2295    1.6211  0.00000 -0.00000 -0.00000
+   1.07998  0.04581 -0.03424 -0.14345  0.000062  0.000027  0.000361    2.2596    1.6163  0.00000 -0.00001 -0.00000
+   1.08806  0.05354 -0.03659 -0.22296  0.000066  0.000029  0.000541    2.2321    1.6206  0.00000 -0.00001 -0.00000
+   1.09724  0.06239 -0.03900 -0.29650  0.000073  0.000032  0.000622    2.2748    1.6140  0.00000 -0.00002 -0.00000
+   1.10756  0.07242 -0.04142 -0.36357  0.000079  0.000035  0.000720    2.2571    1.6167  0.00000 -0.00003 -0.00000
+   1.11897  0.08358 -0.04381 -0.42417  0.000087  0.000038  0.000744    2.2842    1.6126  0.00001 -0.00004 -0.00000
+   1.13135  0.09575 -0.04609 -0.47802  0.000094  0.000041  0.000780    2.2805    1.6131  0.00001 -0.00004 -0.00001
+   1.14454  0.10877 -0.04824 -0.52552  0.000101  0.000044  0.000780    2.2951    1.6110  0.00001 -0.00005 -0.00001
+   1.15837  0.12246 -0.05022 -0.56708  0.000109  0.000047  0.000782    2.2994    1.6104  0.00002 -0.00006 -0.00001
+   1.17269  0.13666 -0.05200 -0.60340  0.000117  0.000051  0.000770    2.3079    1.6091  0.00002 -0.00007 -0.00002
+   1.18738  0.15127 -0.05358 -0.63516  0.000124  0.000054  0.000757    2.3142    1.6082  0.00002 -0.00008 -0.00002
+   1.20236  0.16619 -0.05497 -0.66302  0.000132  0.000057  0.000740    2.3209    1.6073  0.00002 -0.00009 -0.00003
+   1.21757  0.18135 -0.05616 -0.68756  0.000139  0.000060  0.000722    2.3271    1.6064  0.00003 -0.00010 -0.00003
+   1.23296  0.19670 -0.05718 -0.70927  0.000146  0.000063  0.000704    2.3331    1.6055  0.00003 -0.00010 -0.00004
+   1.24851  0.21222 -0.05803 -0.72857  0.000154  0.000066  0.000685    2.3389    1.6047  0.00003 -0.00011 -0.00004
+   1.26418  0.22788 -0.05871 -0.74580  0.000161  0.000069  0.000666    2.3445    1.6040  0.00004 -0.00012 -0.00005
+   1.27996  0.24366 -0.05924 -0.76124  0.000168  0.000072  0.000647    2.3500    1.6032  0.00004 -0.00013 -0.00005
+   1.29584  0.25953 -0.05963 -0.77513  0.000175  0.000074  0.000629    2.3553    1.6025  0.00004 -0.00014 -0.00006
+   1.31181  0.27550 -0.05988 -0.78767  0.000182  0.000077  0.000612    2.3605    1.6018  0.00005 -0.00014 -0.00006
+   1.32785  0.29154 -0.06000 -0.79902  0.000189  0.000080  0.000595    2.3655    1.6011  0.00005 -0.00015 -0.00007
+   1.34397  0.30766 -0.06000 -0.80934  0.000196  0.000083  0.000578    2.3705    1.6005  0.00005 -0.00016 -0.00007
+   1.36015  0.32383 -0.05989 -0.81873  0.000203  0.000085  0.000563    2.3753    1.5998  0.00006 -0.00017 -0.00008
+   1.37638  0.34007 -0.05967 -0.82731  0.000210  0.000088  0.000548    2.3799    1.5992  0.00006 -0.00017 -0.00008
+   1.39267  0.35635 -0.05935 -0.83516  0.000217  0.000091  0.000533    2.3845    1.5986  0.00006 -0.00018 -0.00008
+   1.40900  0.37268 -0.05893 -0.84236  0.000223  0.000093  0.000519    2.3889    1.5981  0.00007 -0.00019 -0.00009
+   1.42538  0.38905 -0.05842 -0.84898  0.000230  0.000096  0.000506    2.3932    1.5975  0.00007 -0.00020 -0.00009
+   1.44181  0.40546 -0.05782 -0.85508  0.000236  0.000099  0.000493    2.3974    1.5970  0.00007 -0.00020 -0.00010
+   1.45826  0.42191 -0.05714 -0.86072  0.000243  0.000101  0.000481    2.4015    1.5965  0.00007 -0.00021 -0.00010
+   1.47476  0.43839 -0.05639 -0.86593  0.000250  0.000104  0.000470    2.4054    1.5960  0.00008 -0.00022 -0.00011
+   1.49129  0.45489 -0.05555 -0.87076  0.000256  0.000106  0.000459    2.4092    1.5955  0.00008 -0.00022 -0.00011
+   1.50784  0.47143 -0.05465 -0.87524  0.000262  0.000109  0.000448    2.4129    1.5950  0.00008 -0.00023 -0.00012
+   1.52443  0.48798 -0.05368 -0.87942  0.000269  0.000111  0.000438    2.4164    1.5946  0.00009 -0.00024 -0.00012
+   1.54104  0.50456 -0.05265 -0.88331  0.000275  0.000114  0.000428    2.4198    1.5942  0.00009 -0.00024 -0.00012
+   1.55768  0.52116 -0.05156 -0.88694  0.000281  0.000116  0.000419    2.4231    1.5938  0.00009 -0.00025 -0.00013
+   1.57433  0.53778 -0.05041 -0.89034  0.000287  0.000118  0.000411    2.4263    1.5934  0.00009 -0.00026 -0.00013
+   1.59101  0.55441 -0.04920 -0.89352  0.000294  0.000121  0.000402    2.4294    1.5930  0.00010 -0.00026 -0.00014
+   1.60771  0.57106 -0.04794 -0.89651  0.000300  0.000123  0.000394    2.4324    1.5927  0.00010 -0.00027 -0.00014
+   1.62442  0.58772 -0.04663 -0.89931  0.000306  0.000125  0.000386    2.4353    1.5923  0.00010 -0.00027 -0.00015
+   1.64115  0.60440 -0.04527 -0.90194  0.000312  0.000128  0.000379    2.4381    1.5920  0.00010 -0.00028 -0.00015
+   1.65789  0.62108 -0.04387 -0.90442  0.000318  0.000130  0.000372    2.4409    1.5916  0.00011 -0.00029 -0.00015
+   1.67465  0.63777 -0.04241 -0.90674  0.000323  0.000132  0.000365    2.4437    1.5913  0.00011 -0.00029 -0.00016
+   1.69141  0.65447 -0.04092 -0.90893  0.000329  0.000135  0.000358    2.4466    1.5910  0.00011 -0.00030 -0.00016
+   1.70819  0.67118 -0.03938 -0.91097  0.000335  0.000137  0.000352    2.4494    1.5906  0.00011 -0.00031 -0.00016
+   1.72497  0.68789 -0.03781 -0.91289  0.000341  0.000139  0.000345    2.4524    1.5903  0.00012 -0.00031 -0.00017
+   1.74177  0.70460 -0.03619 -0.91468  0.000347  0.000141  0.000339    2.4555    1.5899  0.00012 -0.00032 -0.00017
+   1.75856  0.72132 -0.03453 -0.91634  0.000353  0.000143  0.000333    2.4589    1.5895  0.00012 -0.00032 -0.00018
+   1.77536  0.73803 -0.03284 -0.91788  0.000359  0.000146  0.000327    2.4626    1.5891  0.00012 -0.00033 -0.00018
+   1.79217  0.75475 -0.03111 -0.91927  0.000365  0.000148  0.000320    2.4667    1.5886  0.00013 -0.00034 -0.00018
+   1.80898  0.77146 -0.02934 -0.92053  0.000371  0.000150  0.000314    2.4713    1.5881  0.00013 -0.00034 -0.00019
+   1.82579  0.78817 -0.02753 -0.92164  0.000377  0.000152  0.000307    2.4766    1.5875  0.00013 -0.00035 -0.00019
+   1.84259  0.80488 -0.02569 -0.92258  0.000384  0.000155  0.000300    2.4828    1.5868  0.00013 -0.00035 -0.00019
+   1.85940  0.82158 -0.02381 -0.92334  0.000391  0.000157  0.000293    2.4903    1.5859  0.00013 -0.00036 -0.00020
+   1.87620  0.83827 -0.02189 -0.92389  0.000399  0.000159  0.000285    2.4993    1.5849  0.00014 -0.00037 -0.00020
+   1.89299  0.85494 -0.01994 -0.92419  0.000407  0.000162  0.000276    2.5104    1.5837  0.00014 -0.00038 -0.00020
+   1.90976  0.87160 -0.01796 -0.92421  0.000416  0.000165  0.000266    2.5244    1.5822  0.00014 -0.00038 -0.00021
+   1.92649  0.88821 -0.01594 -0.92388  0.000426  0.000167  0.000254    2.5424    1.5804  0.00014 -0.00039 -0.00021
+   1.94315  0.90474 -0.01389 -0.92311  0.000438  0.000171  0.000241    2.5664    1.5779  0.00015 -0.00040 -0.00021
+   1.95966  0.92112 -0.01182 -0.92178  0.000452  0.000174  0.000224    2.5996    1.5747  0.00015 -0.00042 -0.00021
+   1.97587  0.93720 -0.00974 -0.91972  0.000471  0.000178  0.000203    2.6478    1.5703  0.00015 -0.00043 -0.00022
+   1.99152  0.95272 -0.00771 -0.91670  0.000496  0.000182  0.000175    2.7219    1.5642  0.00015 -0.00045 -0.00022
+   2.00620  0.96727 -0.00576 -0.91250  0.000534  0.000188  0.000138    2.8461    1.5554  0.00016 -0.00049 -0.00022
+   2.01942  0.98037 -0.00398 -0.90747  0.000592  0.000194  0.000090    3.0548    1.5443  0.00016 -0.00054 -0.00022
+   2.03084  0.99168 -0.00242 -0.90249  0.000693  0.000200  0.000031    3.4652    1.5323  0.00016 -0.00063 -0.00023
+   2.03924  1.00000 -0.00126 -0.90089  0.000707  0.000202  0.000027    3.4990    1.5085  0.00016 -0.00064 -0.00022
+   2.03924  1.00010 -0.00000  0.90089  0.018045  0.007588  0.000000    2.3782
+   2.04764  1.00850  0.00004  0.89078  0.017063  0.007961  0.000000    2.1432
+   2.05721  1.01807  0.00020  0.89508  0.015878  0.007806  0.000000    2.0340
+   2.06811  1.02897  0.00046  0.90013  0.014758  0.007633  0.000000    1.9334
+   2.08053  1.04138  0.00084  0.90583  0.013713  0.007448  0.000000    1.8411
+   2.09468  1.05551  0.00135  0.91197  0.012752  0.007259  0.000000    1.7566
+   2.11079  1.07161  0.00204  0.91837  0.011880  0.007073  0.000000    1.6795
+   2.12915  1.08995  0.00293  0.92482  0.011095  0.006895  0.000000    1.6092
+   2.15005  1.11082  0.00406  0.93114  0.010395  0.006729  0.000000    1.5448
+   2.17387  1.13460  0.00549  0.93722  0.009772  0.006577  0.000000    1.4858
+   2.20100  1.16167  0.00727  0.94298  0.009218  0.006439  0.000000    1.4316
+   2.23190  1.19249  0.00949  0.94840  0.008726  0.006315  0.000000    1.3818
+   2.26711  1.22759  0.01222  0.95345  0.008288  0.006203  0.000000    1.3361
+   2.30721  1.26755  0.01557  0.95814  0.007899  0.006103  0.000000    1.2943
+   2.35289  1.31305  0.01967  0.96250  0.007553  0.006013  0.000000    1.2562
+   2.40493  1.36485  0.02465  0.96652  0.007248  0.005932  0.000000    1.2218
+   2.46420  1.42381  0.03069  0.97023  0.006978  0.005860  0.000000    1.1909
+   2.53172  1.49094  0.03797  0.97364  0.006741  0.005795  0.000000    1.1634
+   2.60863  1.56735  0.04674  0.97677  0.006535  0.005736  0.000000    1.1392
+   2.69625  1.65433  0.05725  0.97962  0.006356  0.005684  0.000000    1.1182
+   2.79605  1.75334  0.06981  0.98220  0.006203  0.005638  0.000000    1.1002
+   2.90974  1.86604  0.08477  0.98451  0.006073  0.005597  0.000000    1.0850
+   3.03924  1.99432  0.10254  0.98694  0.005955  0.005555  0.000000    1.0721
diff --git a/dart/tests/ref/dumpa5.dat b/dart/tests/ref/dumpa5.dat
new file mode 100644
index 0000000..c17aff4
--- /dev/null
+++ b/dart/tests/ref/dumpa5.dat
@@ -0,0 +1,184 @@
+#    s        x        y     Ue/Vinf    Dstar     Theta      Cf       H       H*        P         m          K          tau         Di
+   0.00000  1.00000  0.00126  0.88509  0.006210  0.003804  0.000900    1.6323    1.6655  0.00298  0.00550  0.00439
+   0.00840  0.99168  0.00242  0.89848  0.005739  0.003598  0.001001    1.5949    1.6777  0.00290  0.00516  0.00438
+   0.01982  0.98037  0.00398  0.91635  0.005194  0.003347  0.001138    1.5518    1.6927  0.00281  0.00476  0.00436
+   0.03304  0.96727  0.00576  0.93418  0.004727  0.003118  0.001275    1.5162    1.7058  0.00272  0.00442  0.00434
+   0.04772  0.95272  0.00771  0.95121  0.004338  0.002916  0.001406    1.4878    1.7168  0.00264  0.00413  0.00431
+   0.06337  0.93720  0.00974  0.96686  0.004020  0.002743  0.001526    1.4658    1.7256  0.00256  0.00389  0.00428
+   0.07959  0.92112  0.01182  0.98101  0.003760  0.002595  0.001634    1.4488    1.7326  0.00250  0.00369  0.00425
+   0.09610  0.90474  0.01389  0.99378  0.003543  0.002468  0.001731    1.4356    1.7382  0.00244  0.00352  0.00421
+   0.11275  0.88821  0.01594  1.00539  0.003360  0.002357  0.001818    1.4252    1.7427  0.00238  0.00338  0.00417
+   0.12949  0.87160  0.01796  1.01606  0.003201  0.002259  0.001898    1.4169    1.7463  0.00233  0.00325  0.00414
+   0.14626  0.85494  0.01994  1.02595  0.003060  0.002170  0.001972    1.4102    1.7493  0.00228  0.00314  0.00410
+   0.16305  0.83827  0.02189  1.03522  0.002934  0.002089  0.002041    1.4046    1.7518  0.00224  0.00304  0.00406
+   0.17984  0.82158  0.02381  1.04400  0.002819  0.002014  0.002105    1.4000    1.7539  0.00219  0.00294  0.00402
+   0.19665  0.80488  0.02569  1.05237  0.002714  0.001944  0.002167    1.3961    1.7557  0.00215  0.00286  0.00398
+   0.21346  0.78817  0.02753  1.06041  0.002616  0.001878  0.002226    1.3928    1.7572  0.00211  0.00277  0.00393
+   0.23027  0.77146  0.02934  1.06818  0.002524  0.001815  0.002284    1.3901    1.7585  0.00207  0.00270  0.00389
+   0.24707  0.75475  0.03111  1.07575  0.002437  0.001756  0.002339    1.3877    1.7596  0.00203  0.00262  0.00385
+   0.26388  0.73803  0.03284  1.08314  0.002354  0.001699  0.002394    1.3857    1.7606  0.00199  0.00255  0.00380
+   0.28068  0.72132  0.03453  1.09040  0.002275  0.001644  0.002448    1.3839    1.7614  0.00195  0.00248  0.00375
+   0.29748  0.70460  0.03619  1.09757  0.002199  0.001591  0.002502    1.3824    1.7621  0.00192  0.00241  0.00371
+   0.31427  0.68789  0.03781  1.10466  0.002125  0.001539  0.002555    1.3811    1.7628  0.00188  0.00235  0.00366
+   0.33105  0.67118  0.03938  1.11170  0.002055  0.001489  0.002608    1.3800    1.7633  0.00184  0.00228  0.00361
+   0.34783  0.65447  0.04092  1.11872  0.001986  0.001440  0.002662    1.3791    1.7638  0.00180  0.00222  0.00356
+   0.36460  0.63777  0.04241  1.12573  0.001919  0.001392  0.002716    1.3783    1.7642  0.00176  0.00216  0.00350
+   0.38135  0.62108  0.04387  1.13275  0.001853  0.001345  0.002771    1.3776    1.7646  0.00173  0.00210  0.00345
+   0.39809  0.60440  0.04527  1.13980  0.001789  0.001299  0.002826    1.3770    1.7649  0.00169  0.00204  0.00340
+   0.41482  0.58772  0.04663  1.14689  0.001727  0.001254  0.002883    1.3765    1.7652  0.00165  0.00198  0.00334
+   0.43154  0.57106  0.04794  1.15404  0.001665  0.001210  0.002940    1.3762    1.7654  0.00161  0.00192  0.00328
+   0.44823  0.55441  0.04920  1.16125  0.001605  0.001167  0.002999    1.3759    1.7656  0.00157  0.00186  0.00323
+   0.46491  0.53778  0.05041  1.16855  0.001546  0.001124  0.003060    1.3757    1.7657  0.00153  0.00181  0.00317
+   0.48157  0.52116  0.05156  1.17593  0.001488  0.001082  0.003122    1.3755    1.7659  0.00150  0.00175  0.00311
+   0.49820  0.50456  0.05265  1.18341  0.001431  0.001040  0.003187    1.3754    1.7660  0.00146  0.00169  0.00304
+   0.51481  0.48798  0.05368  1.19101  0.001374  0.000999  0.003253    1.3754    1.7660  0.00142  0.00164  0.00298
+   0.53140  0.47143  0.05465  1.19872  0.001319  0.000959  0.003321    1.3755    1.7661  0.00138  0.00158  0.00292
+   0.54796  0.45489  0.05555  1.20657  0.001264  0.000919  0.003393    1.3756    1.7661  0.00134  0.00153  0.00285
+   0.56448  0.43839  0.05639  1.21456  0.001210  0.000879  0.003466    1.3758    1.7661  0.00130  0.00147  0.00278
+   0.58098  0.42191  0.05714  1.22270  0.001157  0.000841  0.003543    1.3761    1.7661  0.00126  0.00141  0.00271
+   0.59744  0.40546  0.05782  1.23101  0.001104  0.000802  0.003623    1.3765    1.7660  0.00122  0.00136  0.00264
+   0.61386  0.38905  0.05842  1.23949  0.001052  0.000764  0.003707    1.3769    1.7659  0.00117  0.00130  0.00257
+   0.63024  0.37268  0.05893  1.24815  0.001001  0.000727  0.003794    1.3774    1.7658  0.00113  0.00125  0.00250
+   0.64657  0.35635  0.05935  1.25702  0.000951  0.000690  0.003885    1.3780    1.7657  0.00109  0.00120  0.00242
+   0.66286  0.34007  0.05967  1.26611  0.000901  0.000654  0.003982    1.3787    1.7655  0.00105  0.00114  0.00234
+   0.67910  0.32383  0.05989  1.27542  0.000852  0.000618  0.004083    1.3795    1.7653  0.00100  0.00109  0.00226
+   0.69527  0.30766  0.06000  1.28500  0.000803  0.000582  0.004190    1.3805    1.7650  0.00096  0.00103  0.00218
+   0.71139  0.29154  0.06000  1.29484  0.000756  0.000547  0.004303    1.3816    1.7647  0.00092  0.00098  0.00210
+   0.72743  0.27550  0.05988  1.30499  0.000708  0.000512  0.004424    1.3828    1.7643  0.00087  0.00092  0.00201
+   0.74340  0.25953  0.05963  1.31547  0.000662  0.000478  0.004552    1.3842    1.7639  0.00083  0.00087  0.00192
+   0.75928  0.24366  0.05924  1.32632  0.000615  0.000444  0.004690    1.3858    1.7635  0.00078  0.00082  0.00183
+   0.77506  0.22788  0.05871  1.33758  0.000570  0.000411  0.004839    1.3877    1.7629  0.00073  0.00076  0.00173
+   0.79074  0.21222  0.05803  1.34931  0.000525  0.000378  0.005000    1.3898    1.7623  0.00069  0.00071  0.00164
+   0.80628  0.19670  0.05718  1.36155  0.000480  0.000345  0.005176    1.3923    1.7616  0.00064  0.00065  0.00153
+   0.82167  0.18135  0.05616  1.37440  0.000437  0.000313  0.005368    1.3952    1.7608  0.00059  0.00060  0.00143
+   0.83688  0.16619  0.05497  1.38792  0.000393  0.000281  0.005582    1.3986    1.7599  0.00054  0.00055  0.00132
+   0.85186  0.15127  0.05358  1.40221  0.000351  0.000250  0.005821    1.4026    1.7589  0.00049  0.00049  0.00121
+   0.86655  0.13666  0.05200  1.41738  0.000309  0.000219  0.006093    1.4073    1.7578  0.00044  0.00044  0.00110
+   0.88087  0.12246  0.05022  1.43351  0.000268  0.000190  0.006411    1.4124    1.7567  0.00039  0.00038  0.00098
+   0.89470  0.10877  0.04824  1.45064  0.000227  0.000161  0.006800    1.4170    1.7563  0.00034  0.00033  0.00086
+   0.90789  0.09575  0.04609  1.46867  0.000188  0.000133  0.007319    1.4182    1.7578  0.00029  0.00028  0.00074
+   0.92028  0.08358  0.04381  1.48714  0.000149  0.000106  0.008050    1.4136    1.7625  0.00023  0.00022  0.00061
+   0.93169  0.07242  0.04142  1.50540  0.000116  0.000081  0.008584    1.4363    1.7575  0.00018  0.00017  0.00048
+   0.94200  0.06239  0.03900  1.52417  0.000102  0.000061  0.006460    1.6719    1.6836  0.00014  0.00016  0.00036
+   0.95118  0.05354  0.03659  1.55740  0.000144  0.000050  0.000861    2.8802    1.5191  0.00012  0.00022  0.00029
+   0.95926  0.04581  0.03424  1.57761  0.000138  0.000046  0.000701    3.0284    1.5455  0.00011  0.00022  0.00028
+   0.96635  0.03910  0.03196  1.59766  0.000125  0.000042  0.000824    2.9963    1.5471  0.00011  0.00020  0.00026
+   0.97255  0.03329  0.02976  1.61804  0.000112  0.000038  0.001008    2.9440    1.5497  0.00010  0.00018  0.00025
+   0.97802  0.02826  0.02764  1.63799  0.000100  0.000035  0.001240    2.8874    1.5529  0.00009  0.00016  0.00024
+   0.98286  0.02387  0.02560  1.65710  0.000090  0.000032  0.001523    2.8299    1.5565  0.00009  0.00015  0.00022
+   0.98718  0.02003  0.02361  1.67499  0.000080  0.000029  0.001865    2.7725    1.5604  0.00008  0.00013  0.00021
+   0.99107  0.01666  0.02167  1.69111  0.000071  0.000026  0.002277    2.7157    1.5647  0.00007  0.00012  0.00020
+   0.99460  0.01369  0.01977  1.70467  0.000063  0.000024  0.002771    2.6598    1.5693  0.00007  0.00011  0.00018
+   0.99781  0.01108  0.01789  1.71458  0.000056  0.000021  0.003360    2.6049    1.5742  0.00006  0.00010  0.00017
+   1.00078  0.00879  0.01602  1.71922  0.000049  0.000019  0.004053    2.5513    1.5795  0.00006  0.00008  0.00015
+   1.00352  0.00678  0.01415  1.71636  0.000043  0.000017  0.004856    2.4992    1.5850  0.00005  0.00007  0.00014
+   1.00607  0.00505  0.01227  1.70296  0.000038  0.000016  0.005758    2.4493    1.5906  0.00005  0.00007  0.00012
+   1.00847  0.00358  0.01038  1.67518  0.000034  0.000014  0.006719    2.4020    1.5964  0.00004  0.00006  0.00011
+   1.01072  0.00236  0.00848  1.62857  0.000030  0.000013  0.007659    2.3584    1.6021  0.00003  0.00005  0.00009
+   1.01286  0.00140  0.00657  1.55895  0.000027  0.000012  0.008449    2.3194    1.6075  0.00003  0.00004  0.00007
+   1.01490  0.00070  0.00466  1.46385  0.000025  0.000011  0.008922    2.2864    1.6123  0.00002  0.00004  0.00006
+   1.01685  0.00024  0.00276  1.34411  0.000023  0.000010  0.008958    2.2594    1.6164  0.00002  0.00003  0.00004
+   1.01872  0.00003  0.00091  1.20538  0.000022  0.000010  0.008490    2.2412    1.6192  0.00001  0.00003  0.00003
+   1.02053  0.00003 -0.00091  1.05664  0.000022  0.000010  0.007592    2.2372    1.6198  0.00001  0.00002  0.00002
+   1.02240  0.00024 -0.00276  0.89421  0.000022  0.000010  0.006604    2.2190    1.6228  0.00001  0.00002  0.00001
+   1.02434  0.00070 -0.00466  0.72139  0.000022  0.000010  0.005187    2.2246    1.6218  0.00001  0.00002  0.00001
+   1.02638  0.00140 -0.00657  0.54679  0.000023  0.000010  0.003900    2.2044    1.6252  0.00000  0.00001  0.00000
+   1.02852  0.00236 -0.00848  0.37886  0.000025  0.000011  0.002468    2.2295    1.6211  0.00000  0.00001  0.00000
+   1.03078  0.00358 -0.01038  0.22282  0.000026  0.000012  0.001415    2.2084    1.6245  0.00000  0.00001  0.00000
+   1.03317  0.00505 -0.01227  0.08206  0.000029  0.000013  0.000448    2.2295    1.6211  0.00000  0.00000  0.00000
+   1.03573  0.00678 -0.01415 -0.04333  0.000029  0.000013  0.000236    2.2295    1.6211  0.00000 -0.00000 -0.00000
+   1.03847  0.00879 -0.01602 -0.15413  0.000034  0.000015  0.000712    2.2513    1.6176  0.00000 -0.00001 -0.00000
+   1.04143  0.01108 -0.01789 -0.25162  0.000036  0.000016  0.001111    2.2337    1.6204  0.00000 -0.00001 -0.00000
+   1.04465  0.01369 -0.01977 -0.33798  0.000040  0.000018  0.001300    2.2715    1.6145  0.00000 -0.00001 -0.00000
+   1.04817  0.01666 -0.02167 -0.41445  0.000043  0.000019  0.001493    2.2595    1.6163  0.00000 -0.00002 -0.00000
+   1.05206  0.02003 -0.02361 -0.48290  0.000048  0.000021  0.001545    2.2844    1.6126  0.00000 -0.00002 -0.00000
+   1.05638  0.02387 -0.02560 -0.54431  0.000052  0.000023  0.001602    2.2849    1.6125  0.00001 -0.00003 -0.00001
+   1.06122  0.02826 -0.02764 -0.59994  0.000057  0.000025  0.001591    2.3002    1.6102  0.00001 -0.00003 -0.00001
+   1.06669  0.03329 -0.02976 -0.65049  0.000062  0.000027  0.001571    2.3076    1.6092  0.00001 -0.00004 -0.00001
+   1.07290  0.03910 -0.03196 -0.69667  0.000067  0.000029  0.001523    2.3190    1.6075  0.00001 -0.00005 -0.00002
+   1.07998  0.04581 -0.03424 -0.73887  0.000074  0.000032  0.001464    2.3287    1.6062  0.00002 -0.00005 -0.00002
+   1.08806  0.05354 -0.03659 -0.77737  0.000080  0.000034  0.001395    2.3393    1.6047  0.00002 -0.00006 -0.00003
+   1.09724  0.06239 -0.03900 -0.81223  0.000088  0.000037  0.001321    2.3496    1.6033  0.00002 -0.00007 -0.00003
+   1.10756  0.07242 -0.04142 -0.84345  0.000096  0.000041  0.001244    2.3599    1.6019  0.00003 -0.00008 -0.00004
+   1.11897  0.08358 -0.04381 -0.87100  0.000104  0.000044  0.001169    2.3700    1.6005  0.00003 -0.00009 -0.00005
+   1.13135  0.09575 -0.04609 -0.89497  0.000113  0.000048  0.001096    2.3799    1.5992  0.00004 -0.00010 -0.00005
+   1.14454  0.10877 -0.04824 -0.91555  0.000122  0.000051  0.001028    2.3895    1.5980  0.00004 -0.00011 -0.00006
+   1.15837  0.12246 -0.05022 -0.93308  0.000132  0.000055  0.000965    2.3989    1.5968  0.00005 -0.00012 -0.00007
+   1.17269  0.13666 -0.05200 -0.94793  0.000141  0.000059  0.000908    2.4079    1.5957  0.00005 -0.00013 -0.00008
+   1.18738  0.15127 -0.05358 -0.96049  0.000150  0.000062  0.000856    2.4168    1.5946  0.00006 -0.00014 -0.00009
+   1.20236  0.16619 -0.05497 -0.97109  0.000159  0.000066  0.000808    2.4255    1.5935  0.00006 -0.00015 -0.00010
+   1.21757  0.18135 -0.05616 -0.98004  0.000169  0.000069  0.000764    2.4341    1.5925  0.00007 -0.00017 -0.00010
+   1.23296  0.19670 -0.05718 -0.98760  0.000178  0.000073  0.000724    2.4425    1.5914  0.00007 -0.00018 -0.00011
+   1.24851  0.21222 -0.05803 -0.99397  0.000187  0.000076  0.000688    2.4510    1.5904  0.00008 -0.00019 -0.00012
+   1.26418  0.22788 -0.05871 -0.99933  0.000196  0.000080  0.000654    2.4594    1.5895  0.00008 -0.00020 -0.00013
+   1.27996  0.24366 -0.05924 -1.00381  0.000205  0.000083  0.000622    2.4678    1.5885  0.00008 -0.00021 -0.00013
+   1.29584  0.25953 -0.05963 -1.00755  0.000214  0.000086  0.000593    2.4762    1.5875  0.00009 -0.00022 -0.00014
+   1.31181  0.27550 -0.05988 -1.01064  0.000223  0.000090  0.000566    2.4846    1.5866  0.00009 -0.00023 -0.00015
+   1.32785  0.29154 -0.06000 -1.01315  0.000232  0.000093  0.000540    2.4930    1.5856  0.00010 -0.00023 -0.00015
+   1.34397  0.30766 -0.06000 -1.01518  0.000241  0.000096  0.000516    2.5015    1.5847  0.00010 -0.00024 -0.00016
+   1.36015  0.32383 -0.05989 -1.01677  0.000250  0.000100  0.000494    2.5099    1.5838  0.00010 -0.00025 -0.00017
+   1.37638  0.34007 -0.05967 -1.01798  0.000259  0.000103  0.000473    2.5184    1.5829  0.00011 -0.00026 -0.00017
+   1.39267  0.35635 -0.05935 -1.01886  0.000268  0.000106  0.000453    2.5269    1.5820  0.00011 -0.00027 -0.00018
+   1.40900  0.37268 -0.05893 -1.01944  0.000277  0.000109  0.000435    2.5355    1.5811  0.00011 -0.00028 -0.00018
+   1.42538  0.38905 -0.05842 -1.01976  0.000286  0.000112  0.000417    2.5440    1.5802  0.00012 -0.00029 -0.00019
+   1.44181  0.40546 -0.05782 -1.01984  0.000295  0.000116  0.000400    2.5526    1.5793  0.00012 -0.00030 -0.00019
+   1.45826  0.42191 -0.05714 -1.01972  0.000304  0.000119  0.000385    2.5612    1.5785  0.00012 -0.00031 -0.00020
+   1.47476  0.43839 -0.05639 -1.01942  0.000313  0.000122  0.000370    2.5698    1.5776  0.00013 -0.00032 -0.00020
+   1.49129  0.45489 -0.05555 -1.01896  0.000323  0.000125  0.000356    2.5785    1.5768  0.00013 -0.00033 -0.00021
+   1.50784  0.47143 -0.05465 -1.01835  0.000332  0.000128  0.000342    2.5872    1.5759  0.00013 -0.00034 -0.00021
+   1.52443  0.48798 -0.05368 -1.01761  0.000341  0.000131  0.000329    2.5960    1.5751  0.00014 -0.00035 -0.00022
+   1.54104  0.50456 -0.05265 -1.01675  0.000350  0.000134  0.000317    2.6048    1.5742  0.00014 -0.00036 -0.00022
+   1.55768  0.52116 -0.05156 -1.01578  0.000360  0.000138  0.000305    2.6137    1.5734  0.00014 -0.00037 -0.00023
+   1.57433  0.53778 -0.05041 -1.01472  0.000369  0.000141  0.000294    2.6228    1.5726  0.00014 -0.00037 -0.00023
+   1.59101  0.55441 -0.04920 -1.01357  0.000378  0.000144  0.000284    2.6320    1.5717  0.00015 -0.00038 -0.00024
+   1.60771  0.57106 -0.04794 -1.01234  0.000388  0.000147  0.000273    2.6415    1.5709  0.00015 -0.00039 -0.00024
+   1.62442  0.58772 -0.04663 -1.01103  0.000397  0.000150  0.000263    2.6512    1.5700  0.00015 -0.00040 -0.00024
+   1.64115  0.60440 -0.04527 -1.00965  0.000407  0.000153  0.000254    2.6611    1.5692  0.00016 -0.00041 -0.00025
+   1.65789  0.62108 -0.04387 -1.00820  0.000417  0.000156  0.000244    2.6715    1.5683  0.00016 -0.00042 -0.00025
+   1.67465  0.63777 -0.04241 -1.00669  0.000427  0.000159  0.000235    2.6822    1.5674  0.00016 -0.00043 -0.00025
+   1.69141  0.65447 -0.04092 -1.00511  0.000437  0.000162  0.000226    2.6933    1.5665  0.00016 -0.00044 -0.00026
+   1.70819  0.67118 -0.03938 -1.00349  0.000447  0.000165  0.000218    2.7046    1.5656  0.00017 -0.00045 -0.00026
+   1.72497  0.68789 -0.03781 -1.00183  0.000457  0.000168  0.000210    2.7158    1.5647  0.00017 -0.00046 -0.00026
+   1.74177  0.70460 -0.03619 -1.00019  0.000467  0.000171  0.000202    2.7257    1.5639  0.00017 -0.00047 -0.00027
+   1.75856  0.72132 -0.03453 -0.99869  0.000476  0.000174  0.000197    2.7301    1.5636  0.00017 -0.00048 -0.00027
+   1.77536  0.73803 -0.03284 -0.99786  0.000480  0.000177  0.000199    2.7145    1.5648  0.00018 -0.00048 -0.00027
+   1.79217  0.75475 -0.03111 -0.99496  0.000443  0.000182  0.000594    2.4347    1.5341  0.00018 -0.00044 -0.00028
+   1.80898  0.77146 -0.02934 -0.98577  0.000342  0.000199  0.001989    1.7134    1.6564  0.00019 -0.00034 -0.00032
+   1.82579  0.78817 -0.02753 -0.98368  0.000326  0.000222  0.002905    1.4709    1.7351  0.00021 -0.00032 -0.00037
+   1.84259  0.80488 -0.02569 -0.98216  0.000349  0.000250  0.003181    1.3967    1.7645  0.00024 -0.00034 -0.00042
+   1.85940  0.82158 -0.02381 -0.98012  0.000385  0.000279  0.003168    1.3789    1.7713  0.00027 -0.00038 -0.00047
+   1.87620  0.83827 -0.02189 -0.97746  0.000426  0.000309  0.003077    1.3768    1.7715  0.00030 -0.00042 -0.00051
+   1.89299  0.85494 -0.01994 -0.97424  0.000468  0.000340  0.002974    1.3787    1.7700  0.00032 -0.00046 -0.00056
+   1.90976  0.87160 -0.01796 -0.97046  0.000511  0.000370  0.002875    1.3811    1.7683  0.00035 -0.00050 -0.00060
+   1.92649  0.88821 -0.01594 -0.96606  0.000555  0.000401  0.002782    1.3833    1.7668  0.00037 -0.00054 -0.00064
+   1.94315  0.90474 -0.01389 -0.96095  0.000600  0.000433  0.002693    1.3852    1.7655  0.00040 -0.00058 -0.00068
+   1.95966  0.92112 -0.01182 -0.95494  0.000648  0.000467  0.002603    1.3873    1.7642  0.00043 -0.00062 -0.00072
+   1.97587  0.93720 -0.00974 -0.94780  0.000698  0.000502  0.002510    1.3901    1.7626  0.00045 -0.00066 -0.00075
+   1.99152  0.95272 -0.00771 -0.93919  0.000752  0.000540  0.002408    1.3942    1.7604  0.00048 -0.00071 -0.00079
+   2.00620  0.96727 -0.00576 -0.92865  0.000814  0.000581  0.002291    1.4007    1.7572  0.00050 -0.00076 -0.00082
+   2.01942  0.98037 -0.00398 -0.91577  0.000885  0.000627  0.002154    1.4111    1.7524  0.00053 -0.00081 -0.00084
+   2.03084  0.99168 -0.00242 -0.89789  0.000981  0.000685  0.001964    1.4312    1.7434  0.00055 -0.00088 -0.00087
+   2.03924  1.00000 -0.00126 -0.88509  0.001056  0.000730  0.001840    1.4452    1.7374  0.00057 -0.00093 -0.00088
+   2.03924  1.00010 -0.00000  0.88509  0.009761  0.004535  0.000000    2.1525
+   2.04764  1.00850  0.00002  0.86302  0.008542  0.005008  0.000000    1.7059
+   2.05721  1.01807  0.00008  0.87985  0.007517  0.004666  0.000000    1.6109
+   2.06811  1.02897  0.00019  0.89480  0.006760  0.004393  0.000000    1.5386
+   2.08053  1.04139  0.00034  0.90775  0.006186  0.004177  0.000000    1.4808
+   2.09468  1.05553  0.00056  0.91892  0.005736  0.004004  0.000000    1.4324
+   2.11079  1.07164  0.00084  0.92857  0.005373  0.003864  0.000000    1.3903
+   2.12915  1.08999  0.00121  0.93695  0.005071  0.003749  0.000000    1.3526
+   2.15005  1.11090  0.00167  0.94429  0.004814  0.003653  0.000000    1.3180
+   2.17387  1.13471  0.00226  0.95078  0.004592  0.003571  0.000000    1.2860
+   2.20100  1.16183  0.00300  0.95655  0.004397  0.003501  0.000000    1.2561
+   2.23190  1.19272  0.00392  0.96171  0.004225  0.003440  0.000000    1.2282
+   2.26711  1.22790  0.00504  0.96634  0.004073  0.003388  0.000000    1.2022
+   2.30721  1.26798  0.00643  0.97050  0.003937  0.003342  0.000000    1.1781
+   2.35289  1.31363  0.00813  0.97424  0.003816  0.003301  0.000000    1.1561
+   2.40493  1.36562  0.01019  0.97760  0.003710  0.003266  0.000000    1.1361
+   2.46420  1.42484  0.01269  0.98061  0.003617  0.003234  0.000000    1.1182
+   2.53172  1.49230  0.01571  0.98329  0.003535  0.003207  0.000000    1.1023
+   2.60863  1.56913  0.01935  0.98567  0.003465  0.003183  0.000000    1.0885
+   2.69625  1.65663  0.02372  0.98778  0.003404  0.003162  0.000000    1.0765
+   2.79605  1.75630  0.02894  0.98962  0.003352  0.003144  0.000000    1.0663
+   2.90974  1.86981  0.03516  0.99123  0.003309  0.003129  0.000000    1.0576
+   3.03924  1.99911  0.04256  0.99274  0.003270  0.003114  0.000000    1.0503
-- 
GitLab