diff --git a/interfaces/cython/cantera/_cantera.pxd b/interfaces/cython/cantera/_cantera.pxd index 4c8cb2a09f..bec4d84c0b 100644 --- a/interfaces/cython/cantera/_cantera.pxd +++ b/interfaces/cython/cantera/_cantera.pxd @@ -999,6 +999,8 @@ cdef class Sim1D: cdef CxxSim1D* sim cdef readonly object domains cdef object _initialized + cdef object _initial_guess_args + cdef object _initial_guess_kwargs cdef Func1 interrupt cdef class ReactionPathDiagram: diff --git a/interfaces/cython/cantera/onedim.py b/interfaces/cython/cantera/onedim.py index 66ccd04e75..dd8774a7a7 100644 --- a/interfaces/cython/cantera/onedim.py +++ b/interfaces/cython/cantera/onedim.py @@ -623,6 +623,9 @@ def set_initial_guess(self, fuel=None, oxidizer=None, stoich=None): for k,spec in enumerate(self.gas.species_names): self.set_profile(spec, zrel, Y[:,k]) + def extinct(self): + return max(self.T) - max(self.fuel_inlet.T, self.oxidizer_inlet.T) < 10 + def solve(self, loglevel=1, refine_grid=True, auto=False): """ Solve the problem. @@ -644,10 +647,8 @@ def solve(self, loglevel=1, refine_grid=True, auto=False): super(CounterflowDiffusionFlame, self).solve(loglevel, refine_grid, auto) # Do some checks if loglevel is set if loglevel > 0: - # Check if flame is extinct - if max(self.T) - max(self.fuel_inlet.T, self.oxidizer_inlet.T) < 1.0: + if self.extinct(): print('WARNING: Flame is extinct.') - return # Check if the flame is very thick # crude width estimate based on temperature @@ -835,7 +836,7 @@ def set_initial_guess(self, products='inlet'): used to form the initial guess. Otherwise the inlet composition will be used. """ - super(ImpingingJet, self).set_initial_guess() + super(ImpingingJet, self).set_initial_guess(products=products) Y0 = self.inlet.Y T0 = self.inlet.T diff --git a/interfaces/cython/cantera/onedim.pyx b/interfaces/cython/cantera/onedim.pyx index 3b6e52fcc8..6fd7729bc3 100644 --- a/interfaces/cython/cantera/onedim.pyx +++ b/interfaces/cython/cantera/onedim.pyx @@ -533,6 +533,8 @@ cdef class Sim1D: self.domains = tuple(domains) self.set_interrupt(interrupts.no_op) self._initialized = False + self._initial_guess_args = () + self._initial_guess_kwargs = {} def set_interrupt(self, f): """ @@ -722,12 +724,14 @@ cdef class Sim1D: def __set__(self, nmax): self.sim.setMaxTimeStepCount(nmax) - def set_initial_guess(self): + def set_initial_guess(self, *args, **kwargs): """ Set the initial guess for the solution. Derived classes extend this function to set approximations for the temperature and composition profiles. """ + self._initial_guess_args = args + self._initial_guess_kwargs = kwargs self._get_initial_solution() self._initialized = True @@ -739,6 +743,13 @@ cdef class Sim1D: self.sim.resize() self.sim.getInitialSoln() + def extinct(self): + """ + Method overloaded for some flame types to indicate if the flame has been + extinguished. Base class method always returns 'False' + """ + return False + def solve(self, loglevel=1, refine_grid=True, auto=False): """ Solve the problem. @@ -757,10 +768,10 @@ cdef class Sim1D: transport is enabled, an additional solution using these options will be calculated. """ - if not self._initialized: - self.set_initial_guess() if not auto: + if not self._initialized: + self.set_initial_guess() self.sim.solve(loglevel, refine_grid) return @@ -784,28 +795,65 @@ cdef class Sim1D: if isinstance(dom, _FlowBase): dom.set_transport(self.gas) - def log(msg): + def log(msg, *args): if loglevel: - print('\n{:*^78s}'.format(' ' + msg + ' ')) - - try: - # Try solving with energy enabled, which usually works - log('Solving on initial grid with energy equation enabled') - self.energy_enabled = True - self.sim.solve(loglevel, False) - except Exception: - # If initial solve using energy equation fails, fall back on the - # traditional fixed temperature solve followed by solving the energy - # equation - log('Initial solve failed; Retrying with energy equation disabled') - self.energy_enabled = False - self.sim.solve(loglevel, False) - log('Solving on initial grid with energy equation re-enabled') - self.energy_enabled = True - self.sim.solve(loglevel, False) - - log('Solving with grid refinement enabled') - self.sim.solve(loglevel, True) + print('\n{:*^78s}'.format(' ' + msg.format(*args) + ' ')) + + flow_domains = [D for D in self.domains if isinstance(D, _FlowBase)] + zmin = [D.grid[0] for D in flow_domains] + zmax = [D.grid[-1] for D in flow_domains] + nPoints = [len(flow_domains[0].grid), 12, 24, 48] + + for N in nPoints: + for i,D in enumerate(flow_domains): + if N != len(D.grid): + D.grid = np.linspace(zmin[i], zmax[i], N) + + self.set_initial_guess(*self._initial_guess_args, + **self._initial_guess_kwargs) + + try: + # Try solving with energy enabled, which usually works + log('Solving on {} point grid with energy equation enabled', N) + self.energy_enabled = True + self.sim.solve(loglevel, False) + solved = True + except Exception: + solved = False + + if not solved: + # If initial solve using energy equation fails, fall back on the + # traditional fixed temperature solve followed by solving the energy + # equation + log('Initial solve failed; Retrying with energy equation disabled') + try: + self.energy_enabled = False + self.sim.solve(loglevel, False) + log('Solving on {} point grid with energy equation re-enabled', N) + self.energy_enabled = True + self.sim.solve(loglevel, False) + solved = True + except Exception: + pass + + if solved and not self.extinct(): + # Found a non-extinct solution on the fixed grid + log('Solving with grid refinement enabled') + try: + self.sim.solve(loglevel, True) + solved = True + except Exception: + solved = False + + if solved and not self.extinct(): + # Found a non-extinct solution on the refined grid + break + + if self.extinct(): + log('Flame is extinct on {} point grid', N) + + if not solved: + raise Exception('Could not find a solution for the 1D problem') if solve_multi: log('Solving with multicomponent transport') diff --git a/interfaces/cython/cantera/test/test_onedim.py b/interfaces/cython/cantera/test/test_onedim.py index 36eb8e0315..a9c68e2d1d 100644 --- a/interfaces/cython/cantera/test/test_onedim.py +++ b/interfaces/cython/cantera/test/test_onedim.py @@ -515,6 +515,28 @@ def test_mixture_averaged(self, saveReference=False): rtol=1e-2, atol=1e-8, xtol=1e-2) self.assertFalse(bad, bad) + def test_auto(self, saveReference=False): + referenceFile = '../data/DiffusionFlameTest-h2-auto.csv' + self.create_sim(p=ct.one_atm, mdot_fuel=2, mdot_ox=3) + + self.sim.set_refine_criteria(ratio=3.0, slope=0.1, curve=0.12, prune=0.0) + self.sim.solve(loglevel=0, auto=True) + + data = np.empty((self.sim.flame.n_points, self.gas.n_species + 4)) + data[:,0] = self.sim.grid + data[:,1] = self.sim.u + data[:,2] = self.sim.V + data[:,3] = self.sim.T + data[:,4:] = self.sim.Y.T + + if saveReference: + np.savetxt(referenceFile, data, '%11.6e', ', ') + else: + bad = utilities.compareProfiles(referenceFile, data, + rtol=1e-2, atol=1e-8, xtol=1e-2) + self.assertFalse(bad, bad) + + def test_mixture_averaged_rad(self, saveReference=False): referenceFile = '../data/DiffusionFlameTest-h2-mix-rad.csv' self.create_sim(p=ct.one_atm) diff --git a/test/data/DiffusionFlameTest-h2-auto.csv b/test/data/DiffusionFlameTest-h2-auto.csv new file mode 100644 index 0000000000..748c5960ad --- /dev/null +++ b/test/data/DiffusionFlameTest-h2-auto.csv @@ -0,0 +1,131 @@ +0.000000e+00, 2.346514e+00, -1.016622e-19, 3.000000e+02, 4.803846e-02, 1.106492e-15, -1.044084e-17, 3.646972e-17, -9.486255e-19, 8.829205e-19, -1.732232e-21, -1.613005e-18, 9.519615e-01 +9.090909e-04, 2.320008e+00, 2.915703e+01, 3.000000e+02, 4.803846e-02, 1.587564e-14, -1.003015e-17, 3.647355e-17, -4.548035e-20, -5.083179e-19, -1.387481e-21, -1.613170e-18, 9.519615e-01 +1.818182e-03, 2.240488e+00, 5.831406e+01, 3.000000e+02, 4.803846e-02, 2.244657e-13, -9.621839e-18, 3.647734e-17, -1.513487e-20, 1.301516e-18, -1.028654e-21, -1.612512e-18, 9.519615e-01 +2.727273e-03, 2.107956e+00, 8.747110e+01, 3.000000e+02, 4.803846e-02, 3.076615e-12, -9.206271e-18, 3.648117e-17, -1.356760e-20, 1.357178e-16, -6.185646e-22, -1.611992e-18, 9.519615e-01 +3.636364e-03, 1.922412e+00, 1.166281e+02, 3.000000e+02, 4.803846e-02, 3.993721e-11, -8.770397e-18, 3.648478e-17, -1.289792e-20, 7.563010e-15, 2.385253e-22, -1.611465e-18, 9.519615e-01 +4.545455e-03, 1.683854e+00, 1.457852e+02, 3.000000e+02, 4.803845e-02, 4.776304e-10, -8.253035e-18, 3.648465e-17, -1.213900e-20, 3.812263e-13, 6.472221e-21, -1.610916e-18, 9.519615e-01 +5.454545e-03, 1.392284e+00, 1.749422e+02, 3.000001e+02, 4.803841e-02, 5.084477e-09, -6.147613e-18, 3.648921e-17, -8.966477e-21, 1.689255e-11, 6.564647e-20, -1.609878e-18, 9.519616e-01 +5.909091e-03, 1.226619e+00, 1.895207e+02, 3.000008e+02, 4.803818e-02, 2.100198e-08, 1.103190e-17, 3.733130e-17, 1.772683e-20, 2.462511e-10, 1.856237e-19, -1.608934e-18, 9.519618e-01 +6.363636e-03, 1.047708e+00, 2.040994e+02, 3.000074e+02, 4.803646e-02, 9.223605e-08, 2.262732e-16, 5.516455e-17, 3.750898e-19, 4.083332e-09, 6.909946e-19, -1.604081e-18, 9.519634e-01 +6.590909e-03, 9.533054e-01, 2.113894e+02, 3.000278e+02, 4.803197e-02, 2.077003e-07, 1.148578e-15, 1.691033e-16, 2.132805e-18, 2.533190e-08, 2.586525e-18, -1.583046e-18, 9.519678e-01 +6.818182e-03, 8.556801e-01, 2.186823e+02, 3.001132e+02, 4.801583e-02, 4.810641e-07, 6.242559e-15, 1.080162e-15, 1.518364e-17, 1.763845e-07, 1.695742e-17, -1.427011e-18, 9.519835e-01 +7.045455e-03, 7.550768e-01, 2.259872e+02, 3.004401e+02, 4.796187e-02, 1.096771e-06, 3.218764e-14, 7.869029e-15, 1.257710e-16, 1.154231e-06, 1.232936e-16, -3.167907e-19, 9.520359e-01 +7.159091e-03, 7.039403e-01, 2.296545e+02, 3.009050e+02, 4.789304e-02, 1.673816e-06, 8.102352e-14, 2.693029e-14, 4.733658e-16, 3.409138e-06, 4.194889e-16, 2.506200e-18, 9.521019e-01 +7.272727e-03, 6.526849e-01, 2.333533e+02, 3.019041e+02, 4.775828e-02, 2.570097e-06, 2.125937e-13, 1.003296e-13, 1.991833e-15, 1.069395e-05, 1.545487e-15, 1.248983e-17, 9.522285e-01 +7.386364e-03, 6.019264e-01, 2.371195e+02, 3.039559e+02, 4.750570e-02, 3.950053e-06, 5.524984e-13, 3.800492e-13, 8.661555e-15, 3.285558e-05, 5.729947e-15, 4.583971e-17, 9.524575e-01 +7.443182e-03, 5.771169e-01, 2.390513e+02, 3.057162e+02, 4.730432e-02, 4.921955e-06, 9.127856e-13, 8.207747e-13, 1.997307e-14, 5.938965e-05, 1.213704e-14, 8.949258e-17, 9.526314e-01 +7.500000e-03, 5.530320e-01, 2.410472e+02, 3.082765e+02, 4.702877e-02, 6.147103e-06, 1.524316e-12, 1.837818e-12, 4.706623e-14, 1.091076e-04, 2.645624e-14, 1.775220e-16, 9.528560e-01 +7.556818e-03, 5.299541e-01, 2.431410e+02, 3.119319e+02, 4.665949e-02, 7.689688e-06, 2.542459e-12, 4.177351e-12, 1.113306e-13, 1.994089e-04, 5.793858e-14, 3.500930e-16, 9.531334e-01 +7.613636e-03, 5.081954e-01, 2.453803e+02, 3.170480e+02, 4.617576e-02, 9.629703e-06, 4.203187e-12, 9.558539e-12, 2.607858e-13, 3.578852e-04, 1.260652e-13, 6.785742e-16, 9.534567e-01 +7.670455e-03, 4.880730e-01, 2.478298e+02, 3.240584e+02, 4.555792e-02, 1.206542e-05, 6.851452e-12, 2.194036e-11, 5.991184e-13, 6.256955e-04, 2.708360e-13, 1.285299e-15, 9.538043e-01 +7.727273e-03, 4.698711e-01, 2.505736e+02, 3.334511e+02, 4.479008e-02, 1.511478e-05, 1.096647e-11, 5.038060e-11, 1.338188e-12, 1.059986e-03, 5.716754e-13, 2.373580e-15, 9.541348e-01 +7.784091e-03, 4.537957e-01, 2.537147e+02, 3.457433e+02, 4.386321e-02, 1.891455e-05, 1.716808e-11, 1.152933e-10, 2.879542e-12, 1.733712e-03, 1.179671e-12, 4.275366e-15, 9.543842e-01 +7.840909e-03, 4.399290e-01, 2.573713e+02, 3.614455e+02, 4.277741e-02, 2.361627e-05, 2.617802e-11, 2.615310e-10, 5.914000e-12, 2.731289e-03, 2.367664e-12, 7.536316e-15, 9.544677e-01 +7.897727e-03, 4.281946e-01, 2.616689e+02, 3.810203e+02, 4.154286e-02, 2.937860e-05, 3.870999e-11, 5.841017e-10, 1.150782e-11, 4.139665e-03, 4.599879e-12, 1.309066e-14, 9.542881e-01 +7.954545e-03, 4.183436e-01, 2.667284e+02, 4.048439e+02, 4.017864e-02, 3.635644e-05, 5.530246e-11, 1.274996e-09, 2.120558e-11, 6.036329e-03, 8.617170e-12, 2.265797e-14, 9.537487e-01 +8.011364e-03, 4.099639e-01, 2.726514e+02, 4.331766e+02, 3.871004e-02, 4.468856e-05, 7.623736e-11, 2.701172e-09, 3.768713e-11, 8.477549e-03, 1.552751e-11, 3.968852e-14, 9.527677e-01 +8.068182e-03, 4.025114e-01, 2.795063e+02, 4.661468e+02, 3.716497e-02, 5.448594e-05, 1.019548e-10, 5.522266e-09, 6.906180e-11, 1.149030e-02, 2.688766e-11, 7.168974e-14, 9.512902e-01 +8.125000e-03, 3.953546e-01, 2.873178e+02, 5.037491e+02, 3.557062e-02, 6.582275e-05, 1.348531e-10, 1.085074e-08, 1.514591e-10, 1.506987e-02, 4.476300e-11, 1.361934e-13, 9.492937e-01 +8.181818e-03, 3.878229e-01, 2.960608e+02, 5.458553e+02, 3.395118e-02, 7.873145e-05, 1.844868e-10, 2.044787e-08, 4.508717e-10, 1.918285e-02, 7.175688e-11, 2.769326e-13, 9.467872e-01 +8.238636e-03, 3.792529e-01, 3.056599e+02, 5.922338e+02, 3.232654e-02, 9.320245e-05, 2.820676e-10, 3.694000e-08, 1.662892e-09, 2.377364e-02, 1.110070e-10, 6.105165e-13, 9.438066e-01 +8.295455e-03, 3.690267e-01, 3.159950e+02, 6.425739e+02, 3.071213e-02, 1.091877e-04, 5.244051e-10, 6.403584e-08, 6.519750e-09, 2.877220e-02, 1.661180e-10, 1.469317e-12, 9.404064e-01 +8.409091e-03, 3.418774e-01, 3.383157e+02, 7.536436e+02, 2.768207e-02, 1.437418e-04, 2.231956e-09, 1.590863e-07, 7.042887e-08, 3.923180e-02, 3.149816e-10, 7.354554e-12, 9.329421e-01 +8.522727e-03, 3.024618e-01, 3.613466e+02, 8.752902e+02, 2.477749e-02, 1.827831e-04, 1.335250e-08, 3.545834e-07, 5.244761e-07, 5.028152e-02, 5.561366e-10, 4.853066e-11, 9.247573e-01 +8.636364e-03, 2.492918e-01, 3.836266e+02, 1.004727e+03, 2.201771e-02, 2.252821e-04, 7.285181e-08, 7.320831e-07, 2.753646e-06, 6.146915e-02, 9.417260e-10, 3.134054e-10, 9.162843e-01 +8.750000e-03, 1.820505e-01, 4.038325e+02, 1.139232e+03, 1.940868e-02, 2.702367e-04, 3.288939e-07, 1.488810e-06, 1.088617e-05, 7.242836e-02, 1.631533e-09, 1.658488e-09, 9.078800e-01 +8.863636e-03, 1.014207e-01, 4.209234e+02, 1.276422e+03, 1.695025e-02, 3.167148e-04, 1.237366e-06, 3.210746e-06, 3.443748e-05, 8.287933e-02, 3.146302e-09, 6.628903e-09, 8.998148e-01 +8.977273e-03, 8.796660e-03, 4.341996e+02, 1.414122e+03, 1.463959e-02, 3.638341e-04, 4.003598e-06, 7.658258e-06, 9.161439e-05, 9.261750e-02, 7.019284e-09, 1.895414e-08, 8.922758e-01 +9.090909e-03, -9.393661e-02, 4.432964e+02, 1.550299e+03, 1.247315e-02, 4.106768e-04, 1.152264e-05, 1.997234e-05, 2.131802e-04, 1.014943e-01, 1.744113e-08, 3.743718e-08, 8.853771e-01 +9.204545e-03, -2.045760e-01, 4.482735e+02, 1.682775e+03, 1.044702e-02, 4.560807e-04, 3.037121e-05, 5.452855e-05, 4.472404e-04, 1.094066e-01, 4.537060e-08, 5.493210e-08, 8.791580e-01 +9.318182e-03, -3.207256e-01, 4.493729e+02, 1.809355e+03, 8.560018e-03, 4.982275e-04, 7.515563e-05, 1.514121e-04, 8.661874e-04, 1.162381e-01, 1.181083e-07, 6.978120e-08, 8.736107e-01 +9.431818e-03, -4.398045e-01, 4.469301e+02, 1.927395e+03, 6.817207e-03, 5.338266e-04, 1.772930e-04, 4.185889e-04, 1.573397e-03, 1.217925e-01, 2.955944e-07, 8.637315e-08, 8.686868e-01 +9.488636e-03, -4.994228e-01, 4.444800e+02, 1.981915e+03, 5.994411e-03, 5.474032e-04, 2.704667e-04, 7.221946e-04, 2.080978e-03, 1.239913e-01, 4.710032e-07, 9.777094e-08, 8.663927e-01 +9.545455e-03, -5.586209e-01, 4.412675e+02, 2.032811e+03, 5.218936e-03, 5.564546e-04, 4.064382e-04, 1.218532e-03, 2.708947e-03, 1.256762e-01, 7.268900e-07, 1.115831e-07, 8.642137e-01 +9.602273e-03, -6.169219e-01, 4.373408e+02, 2.079354e+03, 4.497214e-03, 5.594173e-04, 5.995332e-04, 2.019934e-03, 3.462973e-03, 1.267422e-01, 1.088469e-06, 1.280921e-07, 8.621176e-01 +9.630682e-03, -6.455377e-01, 4.351225e+02, 2.100690e+03, 4.157485e-03, 5.580308e-04, 7.225606e-04, 2.594550e-03, 3.885463e-03, 1.270008e-01, 1.320351e-06, 1.374642e-07, 8.610796e-01 +9.659091e-03, -6.737238e-01, 4.327404e+02, 2.120628e+03, 3.834218e-03, 5.545400e-04, 8.640760e-04, 3.305775e-03, 4.332516e-03, 1.270604e-01, 1.585007e-06, 1.473418e-07, 8.600468e-01 +9.687500e-03, -7.014059e-01, 4.302001e+02, 2.139065e+03, 3.528254e-03, 5.488050e-04, 1.024335e-03, 4.176742e-03, 4.798185e-03, 1.269089e-01, 1.882429e-06, 1.575896e-07, 8.590128e-01 +9.715909e-03, -7.285084e-01, 4.275070e+02, 2.155901e+03, 3.240221e-03, 5.407522e-04, 1.202585e-03, 5.229618e-03, 5.274736e-03, 1.265379e-01, 2.211062e-06, 1.680399e-07, 8.579718e-01 +9.744318e-03, -7.549558e-01, 4.246667e+02, 2.171043e+03, 2.970473e-03, 5.303832e-04, 1.397012e-03, 6.484352e-03, 5.753014e-03, 1.259434e-01, 2.567815e-06, 1.785063e-07, 8.569186e-01 +9.772727e-03, -7.806726e-01, 4.216841e+02, 2.184405e+03, 2.719063e-03, 5.177777e-04, 1.604770e-03, 7.957458e-03, 6.222981e-03, 1.251260e-01, 2.948303e-06, 1.888008e-07, 8.558488e-01 +9.801136e-03, -8.055845e-01, 4.185644e+02, 2.195908e+03, 2.485734e-03, 5.030899e-04, 1.822128e-03, 9.661053e-03, 6.674347e-03, 1.240906e-01, 3.347248e-06, 1.987497e-07, 8.547595e-01 +9.829545e-03, -8.296181e-01, 4.153125e+02, 2.205481e+03, 2.269943e-03, 4.865361e-04, 2.044721e-03, 1.160230e-02, 7.097217e-03, 1.228464e-01, 3.758959e-06, 2.082069e-07, 8.536489e-01 +9.857955e-03, -8.527015e-01, 4.119329e+02, 2.213054e+03, 2.070915e-03, 4.683787e-04, 2.267850e-03, 1.378332e-02, 7.482632e-03, 1.214057e-01, 4.177821e-06, 2.170616e-07, 8.525168e-01 +9.886364e-03, -8.747639e-01, 4.084304e+02, 2.218565e+03, 1.887707e-03, 4.489070e-04, 2.486791e-03, 1.620160e-02, 7.822954e-03, 1.197829e-01, 4.598713e-06, 2.252422e-07, 8.513643e-01 +9.914773e-03, -8.957359e-01, 4.048092e+02, 2.221950e+03, 1.719272e-03, 4.284190e-04, 2.697052e-03, 1.885061e-02, 8.112074e-03, 1.179938e-01, 5.017330e-06, 2.327164e-07, 8.501936e-01 +9.943182e-03, -9.155494e-01, 4.010738e+02, 2.223151e+03, 1.564525e-03, 4.072064e-04, 2.894574e-03, 2.172065e-02, 8.345457e-03, 1.160543e-01, 5.430396e-06, 2.394883e-07, 8.490076e-01 +9.971591e-03, -9.341377e-01, 3.972281e+02, 2.222108e+03, 1.422393e-03, 3.855433e-04, 3.075846e-03, 2.479968e-02, 8.520075e-03, 1.139802e-01, 5.835781e-06, 2.455958e-07, 8.478102e-01 +1.000000e-02, -9.514356e-01, 3.932763e+02, 2.218766e+03, 1.291845e-03, 3.636788e-04, 3.237960e-03, 2.807410e-02, 8.634274e-03, 1.117862e-01, 6.232567e-06, 2.511071e-07, 8.466055e-01 +1.002841e-02, -9.673798e-01, 3.892222e+02, 2.213071e+03, 1.171921e-03, 3.418334e-04, 3.378616e-03, 3.152926e-02, 8.687606e-03, 1.094860e-01, 6.621074e-06, 2.561192e-07, 8.453979e-01 +1.005682e-02, -9.819090e-01, 3.850697e+02, 2.204973e+03, 1.061737e-03, 3.201977e-04, 3.496092e-03, 3.515000e-02, 8.680664e-03, 1.070919e-01, 7.002900e-06, 2.607565e-07, 8.441921e-01 +1.008523e-02, -9.949643e-01, 3.808224e+02, 2.194424e+03, 9.604883e-04, 2.989338e-04, 3.589187e-03, 3.892086e-02, 8.614934e-03, 1.046152e-01, 7.380955e-06, 2.651711e-07, 8.429928e-01 +1.011364e-02, -1.006489e+00, 3.764839e+02, 2.181381e+03, 8.674430e-04, 2.781783e-04, 3.657106e-03, 4.282635e-02, 8.492688e-03, 1.020658e-01, 7.759594e-06, 2.695455e-07, 8.418044e-01 +1.017045e-02, -1.024737e+00, 3.675461e+02, 2.147717e+03, 7.031502e-04, 2.383739e-04, 3.716480e-03, 5.101404e-02, 8.088814e-03, 9.676004e-02, 8.541836e-06, 2.789513e-07, 8.394703e-01 +1.022727e-02, -1.036309e+00, 3.582944e+02, 2.103802e+03, 5.646864e-04, 2.015860e-04, 3.676027e-03, 5.956562e-02, 7.500165e-03, 9.125107e-02, 9.408175e-06, 2.910197e-07, 8.372311e-01 +1.028409e-02, -1.040869e+00, 3.487549e+02, 2.049485e+03, 4.485595e-04, 1.681508e-04, 3.541816e-03, 6.836542e-02, 6.761975e-03, 8.558344e-02, 1.044291e-05, 3.084919e-07, 8.351199e-01 +1.034091e-02, -1.038136e+00, 3.389537e+02, 1.984705e+03, 3.518480e-04, 1.382069e-04, 3.323329e-03, 7.729955e-02, 5.914090e-03, 7.979330e-02, 1.175421e-05, 3.352372e-07, 8.331676e-01 +1.036932e-02, -1.033994e+00, 3.339654e+02, 1.948407e+03, 3.102617e-04, 1.246820e-04, 3.187844e-03, 8.174122e-02, 5.466132e-03, 7.688874e-02, 1.255620e-05, 3.540560e-07, 8.322682e-01 +1.039773e-02, -1.027924e+00, 3.289196e+02, 1.909470e+03, 2.726556e-04, 1.120184e-04, 3.036146e-03, 8.617338e-02, 5.007010e-03, 7.396510e-02, 1.348251e-05, 3.778587e-07, 8.314198e-01 +1.042614e-02, -1.019899e+00, 3.238199e+02, 1.867907e+03, 2.387829e-04, 1.001943e-04, 2.870099e-03, 9.058247e-02, 4.542830e-03, 7.102492e-02, 1.455466e-05, 4.081942e-07, 8.306257e-01 +1.045455e-02, -1.009897e+00, 3.186700e+02, 1.823737e+03, 2.084274e-04, 8.918344e-05, 2.691526e-03, 9.495604e-02, 4.079448e-03, 6.807027e-02, 1.579594e-05, 4.471972e-07, 8.298889e-01 +1.048295e-02, -9.978987e-01, 3.134737e+02, 1.776986e+03, 1.813996e-04, 7.895580e-05, 2.502229e-03, 9.928241e-02, 3.622625e-03, 6.510279e-02, 1.723125e-05, 4.978921e-07, 8.292119e-01 +1.051136e-02, -9.838867e-01, 3.082349e+02, 1.727687e+03, 1.575317e-04, 6.947819e-05, 2.303993e-03, 1.035506e-01, 3.178041e-03, 6.212381e-02, 1.888671e-05, 5.646675e-07, 8.285971e-01 +1.053977e-02, -9.678477e-01, 3.029579e+02, 1.675879e+03, 1.366712e-04, 6.071594e-05, 2.098598e-03, 1.077502e-01, 2.751259e-03, 5.913443e-02, 2.078914e-05, 6.540601e-07, 8.280467e-01 +1.056818e-02, -9.497724e-01, 2.976471e+02, 1.621613e+03, 1.186708e-04, 5.263460e-05, 1.887865e-03, 1.118710e-01, 2.347659e-03, 5.613578e-02, 2.296559e-05, 7.761142e-07, 8.275626e-01 +1.059659e-02, -9.296578e-01, 2.923071e+02, 1.564953e+03, 1.033759e-04, 4.520197e-05, 1.673738e-03, 1.159029e-01, 1.972314e-03, 5.312930e-02, 2.544366e-05, 9.469294e-07, 8.271467e-01 +1.062500e-02, -9.075095e-01, 2.869430e+02, 1.505977e+03, 9.061037e-05, 3.839016e-05, 1.458431e-03, 1.198353e-01, 1.629783e-03, 5.011717e-02, 2.825328e-05, 1.193922e-06, 8.268008e-01 +1.065341e-02, -8.833450e-01, 2.815606e+02, 1.444787e+03, 8.016301e-05, 3.217711e-05, 1.244629e-03, 1.236569e-01, 1.323766e-03, 4.710281e-02, 3.143032e-05, 1.566783e-06, 8.265266e-01 +1.068182e-02, -8.571988e-01, 2.761658e+02, 1.381514e+03, 7.177894e-05, 2.654775e-05, 1.035671e-03, 1.273554e-01, 1.056635e-03, 4.409127e-02, 3.502108e-05, 2.153428e-06, 8.263256e-01 +1.069602e-02, -8.434196e-01, 2.734669e+02, 1.349158e+03, 6.828865e-05, 2.397904e-05, 9.356593e-04, 1.291336e-01, 9.392210e-04, 4.260581e-02, 3.697828e-05, 2.570455e-06, 8.262539e-01 +1.071023e-02, -8.291634e-01, 2.707676e+02, 1.316340e+03, 6.519788e-05, 2.155214e-05, 8.385549e-04, 1.308757e-01, 8.317019e-04, 4.112395e-02, 3.905500e-05, 3.088296e-06, 8.262012e-01 +1.072443e-02, -8.144408e-01, 2.680689e+02, 1.283088e+03, 6.246526e-05, 1.926543e-05, 7.450506e-04, 1.325798e-01, 7.339546e-04, 3.964687e-02, 4.125198e-05, 3.716228e-06, 8.261676e-01 +1.073864e-02, -7.992650e-01, 2.653719e+02, 1.249433e+03, 6.004887e-05, 1.711761e-05, 6.558424e-04, 1.342442e-01, 6.457137e-04, 3.817582e-02, 4.357023e-05, 4.453719e-06, 8.261532e-01 +1.075284e-02, -7.836519e-01, 2.626779e+02, 1.215410e+03, 5.790712e-05, 1.510757e-05, 5.716080e-04, 1.358673e-01, 5.665864e-04, 3.671214e-02, 4.600952e-05, 5.288598e-06, 8.261580e-01 +1.076705e-02, -7.676205e-01, 2.599882e+02, 1.181059e+03, 5.599956e-05, 1.323436e-05, 4.929757e-04, 1.374477e-01, 4.960681e-04, 3.525723e-02, 4.856620e-05, 6.197682e-06, 8.261820e-01 +1.078125e-02, -7.511932e-01, 2.573041e+02, 1.146424e+03, 5.428771e-05, 1.149721e-05, 4.204896e-04, 1.389842e-01, 4.335596e-04, 3.381253e-02, 5.123022e-05, 7.149632e-06, 8.262251e-01 +1.079545e-02, -7.343966e-01, 2.546272e+02, 1.111558e+03, 5.273572e-05, 9.895493e-06, 3.545736e-04, 1.404759e-01, 3.783882e-04, 3.237950e-02, 5.398122e-05, 8.108976e-06, 8.262869e-01 +1.080966e-02, -7.172614e-01, 2.519593e+02, 1.076518e+03, 5.131100e-05, 8.428731e-06, 2.955007e-04, 1.419224e-01, 3.298319e-04, 3.095956e-02, 5.678416e-05, 9.040123e-06, 8.263671e-01 +1.082386e-02, -6.998236e-01, 2.493021e+02, 1.041367e+03, 4.998467e-05, 7.096438e-06, 2.433698e-04, 1.433236e-01, 2.871467e-04, 2.955417e-02, 5.958496e-05, 9.910505e-06, 8.264652e-01 +1.083807e-02, -6.821243e-01, 2.466578e+02, 1.006178e+03, 4.873177e-05, 5.897922e-06, 1.980964e-04, 1.446795e-01, 2.495965e-04, 2.816470e-02, 6.230670e-05, 1.069254e-05, 8.265805e-01 +1.085227e-02, -6.642107e-01, 2.440286e+02, 9.710288e+02, 4.753144e-05, 4.831958e-06, 1.594176e-04, 1.459906e-01, 2.164833e-04, 2.679257e-02, 6.484699e-05, 1.136452e-05, 8.267124e-01 +1.086648e-02, -6.461359e-01, 2.414170e+02, 9.360063e+02, 4.636681e-05, 3.896393e-06, 1.269121e-04, 1.472575e-01, 1.871763e-04, 2.543917e-02, 6.707755e-05, 1.191080e-05, 8.268600e-01 +1.088068e-02, -6.279591e-01, 2.388258e+02, 9.012039e+02, 4.522482e-05, 3.087730e-06, 1.000330e-04, 1.484810e-01, 1.611362e-04, 2.410591e-02, 6.884712e-05, 1.232144e-05, 8.270224e-01 +1.089489e-02, -6.097456e-01, 2.362579e+02, 8.667217e+02, 4.409585e-05, 2.400767e-06, 7.814933e-05, 1.496619e-01, 1.379294e-04, 2.279426e-02, 6.998899e-05, 1.259176e-05, 8.271987e-01 +1.090909e-02, -5.915668e-01, 2.337168e+02, 8.326657e+02, 4.297330e-05, 1.828389e-06, 6.058997e-05, 1.508006e-01, 1.172310e-04, 2.150577e-02, 7.033424e-05, 1.272170e-05, 8.273880e-01 +1.092330e-02, -5.734986e-01, 2.312060e+02, 7.991458e+02, 4.185303e-05, 1.361553e-06, 4.668479e-05, 1.518977e-01, 9.881396e-05, 2.024211e-02, 6.973106e-05, 1.271514e-05, 8.275891e-01 +1.093040e-02, -5.645392e-01, 2.299637e+02, 7.826291e+02, 4.129852e-05, 1.165540e-06, 4.092657e-05, 1.524254e-01, 9.048964e-05, 1.962630e-02, 6.903448e-05, 1.266331e-05, 8.276927e-01 +1.093750e-02, -5.556399e-01, 2.287306e+02, 7.662917e+02, 4.074389e-05, 9.916254e-07, 3.585013e-05, 1.529428e-01, 8.268400e-05, 1.901730e-02, 6.806141e-05, 1.257998e-05, 8.277990e-01 +1.094460e-02, -5.468112e-01, 2.275075e+02, 7.501476e+02, 4.018906e-05, 8.383086e-07, 3.138623e-05, 1.534499e-01, 7.538541e-05, 1.841534e-02, 6.680755e-05, 1.246641e-05, 8.279077e-01 +1.095170e-02, -5.380638e-01, 2.262948e+02, 7.342112e+02, 3.963402e-05, 7.040493e-07, 2.747026e-05, 1.539466e-01, 6.858309e-05, 1.782068e-02, 6.527427e-05, 1.232402e-05, 8.280188e-01 +1.096591e-02, -5.208395e-01, 2.239023e+02, 7.030014e+02, 3.851179e-05, 4.859667e-07, 2.103008e-05, 1.549187e-01, 5.630324e-05, 1.664217e-02, 6.136422e-05, 1.195473e-05, 8.282495e-01 +1.098011e-02, -5.040561e-01, 2.215577e+02, 6.727675e+02, 3.738939e-05, 3.258694e-07, 1.611885e-05, 1.558484e-01, 4.585900e-05, 1.549649e-02, 5.650515e-05, 1.149118e-05, 8.284874e-01 +1.099432e-02, -4.877956e-01, 2.192662e+02, 6.436085e+02, 3.626748e-05, 2.119155e-07, 1.239032e-05, 1.567352e-01, 3.711614e-05, 1.438592e-02, 5.091400e-05, 1.094844e-05, 8.287310e-01 +1.100852e-02, -4.721366e-01, 2.170332e+02, 6.156153e+02, 3.514681e-05, 1.334339e-07, 9.566677e-06, 1.575784e-01, 2.990951e-05, 1.331280e-02, 4.487543e-05, 1.034261e-05, 8.289788e-01 +1.102273e-02, -4.571530e-01, 2.148638e+02, 5.888684e+02, 3.402811e-05, 8.124613e-08, 7.429355e-06, 1.583773e-01, 2.405038e-05, 1.227948e-02, 3.870461e-05, 9.690430e-06, 8.292292e-01 +1.103693e-02, -4.429133e-01, 2.127635e+02, 5.634369e+02, 3.291217e-05, 4.781093e-08, 5.809130e-06, 1.591314e-01, 1.933956e-05, 1.128831e-02, 3.270413e-05, 9.008651e-06, 8.294804e-01 +1.105114e-02, -4.294796e-01, 2.107376e+02, 5.393778e+02, 3.179994e-05, 2.721115e-08, 4.576777e-06, 1.598403e-01, 1.558188e-05, 1.034153e-02, 2.712541e-05, 8.313369e-06, 8.297307e-01 +1.106534e-02, -4.169067e-01, 2.087908e+02, 5.167354e+02, 3.069254e-05, 1.502004e-08, 3.634739e-06, 1.605039e-01, 1.259796e-05, 9.441231e-03, 2.214338e-05, 7.619300e-06, 8.299782e-01 +1.107955e-02, -4.052422e-01, 2.069279e+02, 4.955411e+02, 2.959134e-05, 8.088092e-09, 2.910041e-06, 1.611221e-01, 1.023162e-05, 8.589305e-03, 1.784860e-05, 6.939215e-06, 8.302211e-01 +1.109375e-02, -3.945251e-01, 2.051526e+02, 4.758130e+02, 2.849800e-05, 4.290914e-09, 2.348461e-06, 1.616953e-01, 8.352610e-06, 7.787366e-03, 1.425569e-05, 6.283606e-06, 8.304576e-01 +1.110795e-02, -3.847861e-01, 2.034683e+02, 4.575560e+02, 2.741440e-05, 2.273869e-09, 1.909879e-06, 1.622242e-01, 6.855837e-06, 7.036681e-03, 1.132239e-05, 5.660602e-06, 8.306859e-01 +1.112216e-02, -3.760465e-01, 2.018773e+02, 4.407616e+02, 2.634264e-05, 1.221019e-09, 1.564641e-06, 1.627096e-01, 5.658421e-06, 6.338110e-03, 8.972357e-06, 5.076087e-06, 8.309047e-01 +1.113636e-02, -3.683177e-01, 2.003811e+02, 4.254082e+02, 2.528499e-05, 6.652855e-10, 1.290794e-06, 1.631526e-01, 4.695935e-06, 5.692046e-03, 7.115935e-06, 4.533941e-06, 8.311124e-01 +1.116477e-02, -3.557912e-01, 1.976582e+02, 3.987758e+02, 2.319040e-05, 2.484572e-10, 8.985573e-07, 1.639305e-01, 3.292300e-06, 4.537727e-03, 4.532045e-06, 3.565416e-06, 8.314963e-01 +1.119318e-02, -3.469408e-01, 1.952805e+02, 3.770699e+02, 2.118471e-05, 1.039844e-10, 6.387389e-07, 1.645619e-01, 2.349012e-06, 3.582042e-03, 2.929846e-06, 2.772303e-06, 8.318262e-01 +1.125000e-02, -3.387588e-01, 1.913930e+02, 3.458368e+02, 1.742414e-05, 2.624643e-11, 3.491495e-07, 1.654824e-01, 1.281201e-06, 2.158408e-03, 1.341792e-06, 1.612273e-06, 8.323372e-01 +1.130682e-02, -3.404315e-01, 1.884445e+02, 3.264596e+02, 1.416984e-05, 7.777428e-12, 2.001082e-07, 1.660495e-01, 7.296741e-07, 1.264743e-03, 6.445160e-07, 9.092633e-07, 8.326691e-01 +1.136364e-02, -3.493912e-01, 1.861885e+02, 3.151847e+02, 1.143125e-05, 2.604979e-12, 1.190406e-07, 1.663805e-01, 4.309122e-07, 7.373645e-04, 3.255774e-07, 5.112003e-07, 8.328693e-01 +1.147727e-02, -3.792007e-01, 1.827507e+02, 3.050536e+02, 7.274235e-06, 4.030020e-13, 4.705999e-08, 1.666839e-01, 1.681183e-07, 2.514269e-04, 9.843571e-08, 1.619801e-07, 8.330569e-01 +1.159091e-02, -4.157647e-01, 1.799630e+02, 3.015719e+02, 4.527040e-06, 6.599135e-14, 1.851056e-08, 1.667907e-01, 6.523427e-08, 8.063071e-05, 2.906551e-08, 4.782429e-08, 8.331240e-01 +1.170455e-02, -4.547509e-01, 1.774209e+02, 3.004745e+02, 2.783584e-06, 1.130824e-14, 7.245806e-09, 1.668256e-01, 2.518603e-08, 2.517051e-05, 8.428804e-09, 1.366978e-08, 8.331464e-01 +1.181818e-02, -4.942675e-01, 1.749588e+02, 3.001523e+02, 1.716513e-06, 2.178611e-15, 2.958722e-09, 1.668364e-01, 1.015651e-08, 8.335471e-06, 2.620153e-09, 4.175857e-09, 8.331535e-01 +1.204545e-02, -5.724405e-01, 1.700852e+02, 3.000218e+02, 6.678999e-07, 1.245207e-16, 5.989042e-10, 1.668412e-01, 2.019752e-09, 1.247001e-06, 3.563961e-10, 5.584310e-10, 8.331569e-01 +1.227273e-02, -6.486045e-01, 1.652237e+02, 3.000034e+02, 2.645695e-07, 8.645795e-18, 1.300687e-10, 1.668420e-01, 4.315529e-10, 2.040442e-07, 5.322297e-11, 8.217212e-11, 8.331575e-01 +1.272727e-02, -7.943791e-01, 1.555042e+02, 3.000002e+02, 4.767898e-08, 1.075811e-19, 1.057214e-11, 1.668422e-01, 3.440013e-11, 1.184686e-08, 2.759980e-12, 4.220606e-12, 8.331578e-01 +1.318182e-02, -9.313276e-01, 1.457852e+02, 3.000000e+02, 7.813133e-09, 1.146736e-21, 7.572754e-13, 1.668422e-01, 2.415269e-12, 6.009059e-10, 1.245276e-13, 1.888831e-13, 8.331578e-01 +1.363636e-02, -1.059442e+00, 1.360661e+02, 3.000000e+02, 1.389403e-09, 1.944693e-23, 6.124242e-14, 1.668422e-01, 1.915919e-13, 3.476772e-11, 6.426039e-15, 9.671323e-15, 8.331578e-01 +1.454545e-02, -1.289164e+00, 1.166281e+02, 3.000000e+02, 8.948169e-11, 6.380816e-27, 1.637773e-15, 1.668422e-01, 5.018671e-15, 6.516802e-13, 1.068082e-16, 1.594839e-16, 8.331578e-01 +1.545455e-02, -1.483544e+00, 9.719011e+01, 3.000000e+02, 5.140146e-12, 4.167863e-29, 3.849461e-17, 1.668422e-01, 1.155173e-16, 1.070030e-14, 1.553757e-18, 2.301627e-18, 8.331578e-01 +1.636364e-02, -1.642582e+00, 7.775208e+01, 3.000000e+02, 3.441215e-13, 6.222340e-32, 1.074486e-18, 1.668422e-01, 3.158513e-18, 2.095085e-16, 2.698246e-20, 3.965305e-20, 8.331578e-01 +1.818182e-02, -1.854633e+00, 3.887604e+01, 3.000000e+02, 8.096075e-15, 1.405620e-35, 1.019494e-20, 1.668422e-01, 2.934225e-20, 1.384712e-18, 1.578809e-22, 2.301441e-22, 8.331578e-01 +2.000000e-02, -1.925317e+00, 0.000000e+00, 3.000000e+02, 1.837957e-16, 4.948927e-37, 9.324517e-23, 1.668422e-01, 2.627569e-22, 8.820295e-21, 8.902653e-25, 1.287438e-24, 8.331578e-01