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