From 1ea5b68054d0f5949ac6072efb38b489efbdf026 Mon Sep 17 00:00:00 2001
From: Paul Dechamps <paul.dechamps@uliege.be>
Date: Tue, 7 Jan 2025 17:25:18 +0100
Subject: [PATCH] (tests) Updated tests, renamed reference results and updated
 naca0012 mesh

There geo file for naca 0012 was updated by adding the growth ratio as input parameter instead of the farfield mesh size.
---
 blast/models/dart/n0012.geo                   | 555 +++++++++++-------
 blast/models/references/cpRef_rae2822.dat     | 103 ----
 blast/models/references/n0012_15deg_xf_bl.dat | 184 ++++++
 .../references/n0012_15deg_xf_cpVisc.dat      | 161 +++++
 ...blXfoil_n0012.dat => n0012_2deg_xf_bl.dat} |   0
 ...lInv_n0012.dat => n0012_2deg_xf_cpInv.dat} |   0
 ...oil_n0012.dat => n0012_2deg_xf_cpVisc.dat} |   0
 .../dart/{adjointVII_2D.py => adjoint_2D.py}  |  13 +-
 blast/tests/dart/naca0012_2D.py               |  83 ++-
 blast/tests/{apiTest.py => test_api.py}       |  44 +-
 10 files changed, 722 insertions(+), 421 deletions(-)
 delete mode 100644 blast/models/references/cpRef_rae2822.dat
 create mode 100644 blast/models/references/n0012_15deg_xf_bl.dat
 create mode 100644 blast/models/references/n0012_15deg_xf_cpVisc.dat
 rename blast/models/references/{blXfoil_n0012.dat => n0012_2deg_xf_bl.dat} (100%)
 rename blast/models/references/{cpXfoilInv_n0012.dat => n0012_2deg_xf_cpInv.dat} (100%)
 rename blast/models/references/{cpXfoil_n0012.dat => n0012_2deg_xf_cpVisc.dat} (100%)
 rename blast/tests/dart/{adjointVII_2D.py => adjoint_2D.py} (95%)
 rename blast/tests/{apiTest.py => test_api.py} (82%)

diff --git a/blast/models/dart/n0012.geo b/blast/models/dart/n0012.geo
index e03f649..2a4fd2a 100644
--- a/blast/models/dart/n0012.geo
+++ b/blast/models/dart/n0012.geo
@@ -1,11 +1,14 @@
-/* Naca0012 */
+/* Airfoil NACA0012 */
+// This file was generated automatically using geoFoils v1.0 (https://github.com/Paul-Dech/geoFoils)
+// @date: 2025-01-07 15:28:07
+// @author: Paul Dechamps
 
 // Geometry
 DefineConstant[ xLgt = { 5.0, Name "Domain length (x-dir)" }  ];
 DefineConstant[ yLgt = { 5.0, Name "Domain length (y-dir)" }  ];
 
 // Mesh
-DefineConstant[ msF = { 1.0, Name "Farfield mesh size" }  ];
+DefineConstant[ growthRatio = { 1.5, Name "Growth Ratio" }  ];
 DefineConstant[ msTe = { 0.01, Name "Airfoil TE mesh size" }  ];
 DefineConstant[ msLe = { 0.01, Name "Airfoil LE mesh size" }  ];
 
@@ -14,225 +17,329 @@ DefineConstant[ xRot = { 0.25, Name "Center of rotation" }  ];
 DefineConstant[ angle = { 0*Pi/180, Name "Angle of rotation" }  ];
 Geometry.AutoCoherence = 0; // Needed so that gmsh does not remove duplicate
 
+If (growthRatio == 1.0)
+   msF = msLe;
+Else
+   n = Log(1 - (1 - growthRatio) * xLgt / msLe) / Log(growthRatio);
+   msF = msLe * growthRatio^(n - 1);
+EndIf
+
 /**************
-    Geometry  
+ Geometry
  **************/
+Te = 1; // trailing edge
+Le = 151; // leading edge
 
-// Airfoil
-Te = 1;
-Le = 101;
-N = 200;
-
-//Point(201) = {1.000000,0.000000,0,msTe};
-Point(200) = {0.999753,-0.000035,0, msTe};
-Point(199) = {0.999013,-0.000141,0};
-Point(198) = {0.997781,-0.000317,0};
-Point(197) = {0.996057,-0.000562,0};
-Point(196) = {0.993844,-0.000876,0};
-Point(195) = {0.991144,-0.001258,0};
-Point(194) = {0.987958,-0.001707,0};
-Point(193) = {0.984292,-0.002222,0};
-Point(192) = {0.980147,-0.002801,0};
-Point(191) = {0.975528,-0.003443,0};
-Point(190) = {0.970440,-0.004147,0};
-Point(189) = {0.964888,-0.004909,0};
-Point(188) = {0.958877,-0.005729,0};
-Point(187) = {0.952414,-0.006603,0};
-Point(186) = {0.945503,-0.007531,0};
-Point(185) = {0.938153,-0.008510,0};
-Point(184) = {0.930371,-0.009537,0};
-Point(183) = {0.922164,-0.010610,0};
-Point(182) = {0.913540,-0.011726,0};
-Point(181) = {0.904508,-0.012883,0};
-Point(180) = {0.895078,-0.014079,0};
-Point(179) = {0.885257,-0.015310,0};
-Point(178) = {0.875056,-0.016574,0};
-Point(177) = {0.864484,-0.017868,0};
-Point(176) = {0.853553,-0.019189,0};
-Point(175) = {0.842274,-0.020535,0};
-Point(174) = {0.830656,-0.021904,0};
-Point(173) = {0.818712,-0.023291,0};
-Point(172) = {0.806454,-0.024694,0};
-Point(171) = {0.793893,-0.026111,0};
-Point(170) = {0.781042,-0.027539,0};
-Point(169) = {0.767913,-0.028974,0};
-Point(168) = {0.754521,-0.030414,0};
-Point(167) = {0.740877,-0.031856,0};
-Point(166) = {0.726995,-0.033296,0};
-Point(165) = {0.712890,-0.034733,0};
-Point(164) = {0.698574,-0.036163,0};
-Point(163) = {0.684062,-0.037582,0};
-Point(162) = {0.669369,-0.038988,0};
-Point(161) = {0.654508,-0.040378,0};
-Point(160) = {0.639496,-0.041747,0};
-Point(159) = {0.624345,-0.043094,0};
-Point(158) = {0.609072,-0.044414,0};
-Point(157) = {0.593691,-0.045705,0};
-Point(156) = {0.578217,-0.046962,0};
-Point(155) = {0.562667,-0.048182,0};
-Point(154) = {0.547054,-0.049362,0};
-Point(153) = {0.531395,-0.050499,0};
-Point(152) = {0.515705,-0.051587,0};
-Point(151) = {0.500000,-0.052625,0};
-Point(150) = {0.484295,-0.053608,0};
-Point(149) = {0.468605,-0.054534,0};
-Point(148) = {0.452946,-0.055397,0};
-Point(147) = {0.437333,-0.056195,0};
-Point(146) = {0.421783,-0.056924,0};
-Point(145) = {0.406309,-0.057581,0};
-Point(144) = {0.390928,-0.058163,0};
-Point(143) = {0.375655,-0.058666,0};
-Point(142) = {0.360504,-0.059087,0};
-Point(141) = {0.345492,-0.059424,0};
-Point(140) = {0.330631,-0.059674,0};
-Point(139) = {0.315938,-0.059834,0};
-Point(138) = {0.301426,-0.059902,0};
-Point(137) = {0.287110,-0.059876,0};
-Point(136) = {0.273005,-0.059754,0};
-Point(135) = {0.259123,-0.059535,0};
-Point(134) = {0.245479,-0.059217,0};
-Point(133) = {0.232087,-0.058799,0};
-Point(132) = {0.218958,-0.058280,0};
-Point(131) = {0.206107,-0.057661,0};
-Point(130) = {0.193546,-0.056940,0};
-Point(129) = {0.181288,-0.056119,0};
-Point(128) = {0.169344,-0.055197,0};
-Point(127) = {0.157726,-0.054176,0};
-Point(126) = {0.146447,-0.053056,0};
-Point(125) = {0.135516,-0.051839,0};
-Point(124) = {0.124944,-0.050527,0};
-Point(123) = {0.114743,-0.049121,0};
-Point(122) = {0.104922,-0.047624,0};
-Point(121) = {0.095492,-0.046037,0};
-Point(120) = {0.086460,-0.044364,0};
-Point(119) = {0.077836,-0.042608,0};
-Point(118) = {0.069629,-0.040770,0};
-Point(117) = {0.061847,-0.038854,0};
-Point(116) = {0.054497,-0.036863,0};
-Point(115) = {0.047586,-0.034800,0};
-Point(114) = {0.041123,-0.032668,0};
-Point(113) = {0.035112,-0.030471,0};
-Point(112) = {0.029560,-0.028212,0};
-Point(111) = {0.024472,-0.025893,0};
-Point(110) = {0.019853,-0.023517,0};
-Point(109) = {0.015708,-0.021088,0};
-Point(108) = {0.012042,-0.018607,0};
-Point(107) = {0.008856,-0.016078,0};
-Point(106) = {0.006156,-0.013503,0};
-Point(105) = {0.003943,-0.010884,0};
-Point(104) = {0.002219,-0.008223,0};
-Point(103) = {0.000987,-0.005521,0};
-Point(102) = {0.000247,-0.002779,0};
-Point(101) = {0.000000,0.000000,0,msLe};
-Point(100) = {0.000247,0.002779,0};
-Point(99) = {0.000987,0.005521,0};
-Point(98) = {0.002219,0.008223,0};
-Point(97) = {0.003943,0.010884,0};
-Point(96) = {0.006156,0.013503,0};
-Point(95) = {0.008856,0.016078,0};
-Point(94) = {0.012042,0.018607,0};
-Point(93) = {0.015708,0.021088,0};
-Point(92) = {0.019853,0.023517,0};
-Point(91) = {0.024472,0.025893,0};
-Point(90) = {0.029560,0.028212,0};
-Point(89) = {0.035112,0.030471,0};
-Point(88) = {0.041123,0.032668,0};
-Point(87) = {0.047586,0.034800,0};
-Point(86) = {0.054497,0.036863,0};
-Point(85) = {0.061847,0.038854,0};
-Point(84) = {0.069629,0.040770,0};
-Point(83) = {0.077836,0.042608,0};
-Point(82) = {0.086460,0.044364,0};
-Point(81) = {0.095492,0.046037,0};
-Point(80) = {0.104922,0.047624,0};
-Point(79) = {0.114743,0.049121,0};
-Point(78) = {0.124944,0.050527,0};
-Point(77) = {0.135516,0.051839,0};
-Point(76) = {0.146447,0.053056,0};
-Point(75) = {0.157726,0.054176,0};
-Point(74) = {0.169344,0.055197,0};
-Point(73) = {0.181288,0.056119,0};
-Point(72) = {0.193546,0.056940,0};
-Point(71) = {0.206107,0.057661,0};
-Point(70) = {0.218958,0.058280,0};
-Point(69) = {0.232087,0.058799,0};
-Point(68) = {0.245479,0.059217,0};
-Point(67) = {0.259123,0.059535,0};
-Point(66) = {0.273005,0.059754,0};
-Point(65) = {0.287110,0.059876,0};
-Point(64) = {0.301426,0.059902,0};
-Point(63) = {0.315938,0.059834,0};
-Point(62) = {0.330631,0.059674,0};
-Point(61) = {0.345492,0.059424,0};
-Point(60) = {0.360504,0.059087,0};
-Point(59) = {0.375655,0.058666,0};
-Point(58) = {0.390928,0.058163,0};
-Point(57) = {0.406309,0.057581,0};
-Point(56) = {0.421783,0.056924,0};
-Point(55) = {0.437333,0.056195,0};
-Point(54) = {0.452946,0.055397,0};
-Point(53) = {0.468605,0.054534,0};
-Point(52) = {0.484295,0.053608,0};
-Point(51) = {0.500000,0.052625,0};
-Point(50) = {0.515705,0.051587,0};
-Point(49) = {0.531395,0.050499,0};
-Point(48) = {0.547054,0.049362,0};
-Point(47) = {0.562667,0.048182,0};
-Point(46) = {0.578217,0.046962,0};
-Point(45) = {0.593691,0.045705,0};
-Point(44) = {0.609072,0.044414,0};
-Point(43) = {0.624345,0.043094,0};
-Point(42) = {0.639496,0.041747,0};
-Point(41) = {0.654508,0.040378,0};
-Point(40) = {0.669369,0.038988,0};
-Point(39) = {0.684062,0.037582,0};
-Point(38) = {0.698574,0.036163,0};
-Point(37) = {0.712890,0.034733,0};
-Point(36) = {0.726995,0.033296,0};
-Point(35) = {0.740877,0.031856,0};
-Point(34) = {0.754521,0.030414,0};
-Point(33) = {0.767913,0.028974,0};
-Point(32) = {0.781042,0.027539,0};
-Point(31) = {0.793893,0.026111,0};
-Point(30) = {0.806454,0.024694,0};
-Point(29) = {0.818712,0.023291,0};
-Point(28) = {0.830656,0.021904,0};
-Point(27) = {0.842274,0.020535,0};
-Point(26) = {0.853553,0.019189,0};
-Point(25) = {0.864484,0.017868,0};
-Point(24) = {0.875056,0.016574,0};
-Point(23) = {0.885257,0.015310,0};
-Point(22) = {0.895078,0.014079,0};
-Point(21) = {0.904508,0.012883,0};
-Point(20) = {0.913540,0.011726,0};
-Point(19) = {0.922164,0.010610,0};
-Point(18) = {0.930371,0.009537,0};
-Point(17) = {0.938153,0.008510,0};
-Point(16) = {0.945503,0.007531,0};
-Point(15) = {0.952414,0.006603,0};
-Point(14) = {0.958877,0.005729,0};
-Point(13) = {0.964888,0.004909,0};
-Point(12) = {0.970440,0.004147,0};
-Point(11) = {0.975528,0.003443,0};
-Point(10) = {0.980147,0.002801,0};
-Point(9) = {0.984292,0.002222,0};
-Point(8) = {0.987958,0.001707,0};
-Point(7) = {0.991144,0.001258,0};
-Point(6) = {0.993844,0.000876,0};
-Point(5) = {0.996057,0.000562,0};
-Point(4) = {0.997781,0.000317,0};
-Point(3) = {0.999013,0.000141,0};
-Point(2) = {0.999753,0.000035,0};
-Point(1) = {1.000000,0.000000,0,msTe};
+Point( 1 ) = { 1.0, -0.0, 0.0, msTe };
+Point( 2 ) = { 0.99989034173742, 1.566142976e-05, 0.0};
+Point( 3 ) = { 0.99956141504943, 6.262613794e-05, 0.0};
+Point( 4 ) = { 0.99901336421414, 0.00014083544147, 0.0};
+Point( 5 ) = { 0.99824642962475, 0.0002501917354, 0.0};
+Point( 6 ) = { 0.99726094768414, 0.00039055879171, 0.0};
+Point( 7 ) = { 0.99605735065724, 0.00056176217462, 0.0};
+Point( 8 ) = { 0.99463616648149, 0.00076358976946, 0.0};
+Point( 9 ) = { 0.99299801853525, 0.00099579242133, 0.0};
+Point( 10 ) = { 0.99114362536434, 0.00125808467902, 0.0};
+Point( 11 ) = { 0.9890738003669, 0.0015501456389, 0.0};
+Point( 12 ) = { 0.98678945143658, 0.00187161988278, 0.0};
+Point( 13 ) = { 0.98429158056432, 0.0022221185031, 0.0};
+Point( 14 ) = { 0.98158128339883, 0.00260122020822, 0.0};
+Point( 15 ) = { 0.97865974876603, 0.00300847250009, 0.0};
+Point( 16 ) = { 0.97552825814758, 0.00344339291591, 0.0};
+Point( 17 ) = { 0.97218818511874, 0.0039054703252, 0.0};
+Point( 18 ) = { 0.96864099474595, 0.00439416627328, 0.0};
+Point( 19 ) = { 0.96488824294413, 0.00490891636171, 0.0};
+Point( 20 ) = { 0.96093157579425, 0.00544913165641, 0.0};
+Point( 21 ) = { 0.9567727288213, 0.00601420011357, 0.0};
+Point( 22 ) = { 0.95241352623301, 0.00660348801398, 0.0};
+Point( 23 ) = { 0.94785588011971, 0.00721634139577, 0.0};
+Point( 24 ) = { 0.94310178961561, 0.00785208747637, 0.0};
+Point( 25 ) = { 0.93815334002193, 0.00851003605407, 0.0};
+Point( 26 ) = { 0.93301270189222, 0.00918948088016, 0.0};
+Point( 27 ) = { 0.92768213008025, 0.00988970099293, 0.0};
+Point( 28 ) = { 0.92216396275101, 0.01060996200508, 0.0};
+Point( 29 ) = { 0.91646062035505, 0.01134951733663, 0.0};
+Point( 30 ) = { 0.91057460456685, 0.01210760938604, 0.0};
+Point( 31 ) = { 0.90450849718747, 0.01288347063272, 0.0};
+Point( 32 ) = { 0.8982649590121, 0.01367632466478, 0.0};
+Point( 33 ) = { 0.89184672866292, 0.01448538712671, 0.0};
+Point( 34 ) = { 0.88525662138789, 0.01530986658219, 0.0};
+Point( 35 ) = { 0.87849752782588, 0.01614896528828, 0.0};
+Point( 36 ) = { 0.8715724127387, 0.01700187987791, 0.0};
+Point( 37 ) = { 0.86448431371071, 0.01786780194847, 0.0};
+Point( 38 ) = { 0.8572363398164, 0.01874591855516, 0.0};
+Point( 39 ) = { 0.84983167025668, 0.01963541260873, 0.0};
+Point( 40 ) = { 0.84227355296434, 0.02053546317813, 0.0};
+Point( 41 ) = { 0.83456530317943, 0.02144524569925, 0.0};
+Point( 42 ) = { 0.82671030199505, 0.02236393209232, 0.0};
+Point( 43 ) = { 0.81871199487434, 0.02329069079083, 0.0};
+Point( 44 ) = { 0.81057389013916, 0.02422468668617, 0.0};
+Point( 45 ) = { 0.80229955743119, 0.02516508099279, 0.0};
+Point( 46 ) = { 0.79389262614624, 0.02611103103947, 0.0};
+Point( 47 ) = { 0.78535678384222, 0.02706168999315, 0.0};
+Point( 48 ) = { 0.77669577462167, 0.02801620652246, 0.0};
+Point( 49 ) = { 0.7679133974895, 0.02897372440866, 0.0};
+Point( 50 ) = { 0.75901350468657, 0.02993338211239, 0.0};
+Point( 51 ) = { 0.75, 0.03089431230516, 0.0};
+Point( 52 ) = { 0.74087683705086, 0.03185564137496, 0.0};
+Point( 53 ) = { 0.73164801755993, 0.03281648891572, 0.0};
+Point( 54 ) = { 0.72231758959246, 0.03377596721082, 0.0};
+Point( 55 ) = { 0.71288964578254, 0.03473318072085, 0.0};
+Point( 56 ) = { 0.7033683215379, 0.03568722558628, 0.0};
+Point( 57 ) = { 0.69375779322605, 0.03663718915547, 0.0};
+Point( 58 ) = { 0.68406227634234, 0.03758214954874, 0.0};
+Point( 59 ) = { 0.67428602366091, 0.03852117526877, 0.0};
+Point( 60 ) = { 0.66443332336929, 0.03945332486788, 0.0};
+Point( 61 ) = { 0.65450849718747, 0.0403776466819, 0.0};
+Point( 62 ) = { 0.64451589847224, 0.04129317864062, 0.0};
+Point( 63 ) = { 0.63445991030763, 0.04219894816377, 0.0};
+Point( 64 ) = { 0.62434494358243, 0.04309397215141, 0.0};
+Point( 65 ) = { 0.61417543505533, 0.04397725707679, 0.0};
+Point( 66 ) = { 0.60395584540888, 0.04484779918912, 0.0};
+Point( 67 ) = { 0.59369065729286, 0.04570458483296, 0.0};
+Point( 68 ) = { 0.58338437335805, 0.04654659089014, 0.0};
+Point( 69 ) = { 0.57304151428121, 0.04737278534922, 0.0};
+Point( 70 ) = { 0.56266661678215, 0.04818212800662, 0.0};
+Point( 71 ) = { 0.55226423163383, 0.04897357130255, 0.0};
+Point( 72 ) = { 0.54183892166616, 0.0497460612939, 0.0};
+Point( 73 ) = { 0.53139525976466, 0.05049853876514, 0.0};
+Point( 74 ) = { 0.5209378268646, 0.05122994047724, 0.0};
+Point( 75 ) = { 0.51047120994168, 0.05193920055357, 0.0};
+Point( 76 ) = { 0.5, 0.05262525200057, 0.0};
+Point( 77 ) = { 0.48952879005832, 0.05328702835989, 0.0};
+Point( 78 ) = { 0.4790621731354, 0.05392346548752, 0.0};
+Point( 79 ) = { 0.46860474023534, 0.05453350345464, 0.0};
+Point( 80 ) = { 0.45816107833384, 0.05511608856324, 0.0};
+Point( 81 ) = { 0.44773576836617, 0.05567017546926, 0.0};
+Point( 82 ) = { 0.43733338321785, 0.05619472940438, 0.0};
+Point( 83 ) = { 0.42695848571879, 0.05668872848681, 0.0};
+Point( 84 ) = { 0.41661562664195, 0.05715116611079, 0.0};
+Point( 85 ) = { 0.40630934270714, 0.05758105340305, 0.0};
+Point( 86 ) = { 0.39604415459112, 0.05797742173437, 0.0};
+Point( 87 ) = { 0.38582456494467, 0.05833932527305, 0.0};
+Point( 88 ) = { 0.37565505641757, 0.05866584356678, 0.0};
+Point( 89 ) = { 0.36554008969237, 0.05895608413888, 0.0};
+Point( 90 ) = { 0.35548410152776, 0.05920918508399, 0.0};
+Point( 91 ) = { 0.34549150281253, 0.05942431764848, 0.0};
+Point( 92 ) = { 0.33556667663071, 0.05960068878005, 0.0};
+Point( 93 ) = { 0.32571397633909, 0.05973754363096, 0.0};
+Point( 94 ) = { 0.31593772365766, 0.0598341679995, 0.0};
+Point( 95 ) = { 0.30624220677395, 0.05988989069371, 0.0};
+Point( 96 ) = { 0.2966316784621, 0.05990408580221, 0.0};
+Point( 97 ) = { 0.28711035421746, 0.05987617485653, 0.0};
+Point( 98 ) = { 0.27768241040754, 0.05980562887012, 0.0};
+Point( 99 ) = { 0.26835198244007, 0.05969197023942, 0.0};
+Point( 100 ) = { 0.25912316294914, 0.05953477449294, 0.0};
+Point( 101 ) = { 0.25, 0.059333671875, 0.0};
+Point( 102 ) = { 0.24098649531343, 0.05908834875129, 0.0};
+Point( 103 ) = { 0.2320866025105, 0.05879854882451, 0.0};
+Point( 104 ) = { 0.22330422537833, 0.058464074149, 0.0};
+Point( 105 ) = { 0.21464321615778, 0.05808478593443, 0.0};
+Point( 106 ) = { 0.20610737385376, 0.05766060512952, 0.0};
+Point( 107 ) = { 0.19770044256881, 0.05719151277812, 0.0};
+Point( 108 ) = { 0.18942610986084, 0.05667755014088, 0.0};
+Point( 109 ) = { 0.18128800512566, 0.0561188185773, 0.0};
+Point( 110 ) = { 0.17328969800495, 0.05551547918403, 0.0};
+Point( 111 ) = { 0.16543469682057, 0.05486775218683, 0.0};
+Point( 112 ) = { 0.15772644703566, 0.05417591608471, 0.0};
+Point( 113 ) = { 0.15016832974332, 0.05344030654663, 0.0};
+Point( 114 ) = { 0.1427636601836, 0.05266131506196, 0.0};
+Point( 115 ) = { 0.13551568628929, 0.05183938734803, 0.0};
+Point( 116 ) = { 0.1284275872613, 0.05097502151884, 0.0};
+Point( 117 ) = { 0.12150247217412, 0.05006876602101, 0.0};
+Point( 118 ) = { 0.11474337861211, 0.04912121734409, 0.0};
+Point( 119 ) = { 0.10815327133708, 0.04813301751383, 0.0};
+Point( 120 ) = { 0.1017350409879, 0.04710485137844, 0.0};
+Point( 121 ) = { 0.09549150281253, 0.046037443699, 0.0};
+Point( 122 ) = { 0.08942539543315, 0.04493155605656, 0.0};
+Point( 123 ) = { 0.08353937964495, 0.04378798358951, 0.0};
+Point( 124 ) = { 0.07783603724899, 0.04260755157605, 0.0};
+Point( 125 ) = { 0.07231786991975, 0.04139111187757, 0.0};
+Point( 126 ) = { 0.06698729810778, 0.04013953925954, 0.0};
+Point( 127 ) = { 0.06184665997807, 0.03885372760755, 0.0};
+Point( 128 ) = { 0.05689821038439, 0.03753458605692, 0.0};
+Point( 129 ) = { 0.05214411988029, 0.03618303505469, 0.0};
+Point( 130 ) = { 0.04758647376699, 0.0348000023736, 0.0};
+Point( 131 ) = { 0.0432272711787, 0.03338641909797, 0.0};
+Point( 132 ) = { 0.03906842420575, 0.03194321560181, 0.0};
+Point( 133 ) = { 0.03511175705587, 0.03047131753953, 0.0};
+Point( 134 ) = { 0.03135900525405, 0.0289716418698, 0.0};
+Point( 135 ) = { 0.02781181488126, 0.02744509293315, 0.0};
+Point( 136 ) = { 0.02447174185242, 0.0258925586035, 0.0};
+Point( 137 ) = { 0.02134025123397, 0.02431490653389, 0.0};
+Point( 138 ) = { 0.01841871660117, 0.02271298051574, 0.0};
+Point( 139 ) = { 0.01570841943568, 0.02108759697117, 0.0};
+Point( 140 ) = { 0.01321054856342, 0.01943954159657, 0.0};
+Point( 141 ) = { 0.0109261996331, 0.01776956617535, 0.0};
+Point( 142 ) = { 0.00885637463566, 0.01607838557678, 0.0};
+Point( 143 ) = { 0.00700198146475, 0.01436667495681, 0.0};
+Point( 144 ) = { 0.00536383351851, 0.01263506717596, 0.0};
+Point( 145 ) = { 0.00394264934276, 0.01088415044781, 0.0};
+Point( 146 ) = { 0.00273905231586, 0.009114466231, 0.0};
+Point( 147 ) = { 0.00175357037525, 0.00732650737576, 0.0};
+Point( 148 ) = { 0.00098663578586, 0.00552071653494, 0.0};
+Point( 149 ) = { 0.00043858495057, 0.0036974848482, 0.0};
+Point( 150 ) = { 0.00010965826258, 0.00185715090611, 0.0};
+Point( 151 ) = { 0.0, 0.0, 0.0, msLe };
+Point( 152 ) = { 0.00010965826258, -0.00185715090611, 0.0};
+Point( 153 ) = { 0.00043858495057, -0.0036974848482, 0.0};
+Point( 154 ) = { 0.00098663578586, -0.00552071653494, 0.0};
+Point( 155 ) = { 0.00175357037525, -0.00732650737576, 0.0};
+Point( 156 ) = { 0.00273905231586, -0.009114466231, 0.0};
+Point( 157 ) = { 0.00394264934276, -0.01088415044781, 0.0};
+Point( 158 ) = { 0.00536383351851, -0.01263506717596, 0.0};
+Point( 159 ) = { 0.00700198146475, -0.01436667495681, 0.0};
+Point( 160 ) = { 0.00885637463566, -0.01607838557678, 0.0};
+Point( 161 ) = { 0.0109261996331, -0.01776956617535, 0.0};
+Point( 162 ) = { 0.01321054856342, -0.01943954159657, 0.0};
+Point( 163 ) = { 0.01570841943568, -0.02108759697117, 0.0};
+Point( 164 ) = { 0.01841871660117, -0.02271298051574, 0.0};
+Point( 165 ) = { 0.02134025123397, -0.02431490653389, 0.0};
+Point( 166 ) = { 0.02447174185242, -0.0258925586035, 0.0};
+Point( 167 ) = { 0.02781181488126, -0.02744509293315, 0.0};
+Point( 168 ) = { 0.03135900525405, -0.0289716418698, 0.0};
+Point( 169 ) = { 0.03511175705587, -0.03047131753953, 0.0};
+Point( 170 ) = { 0.03906842420575, -0.03194321560181, 0.0};
+Point( 171 ) = { 0.0432272711787, -0.03338641909797, 0.0};
+Point( 172 ) = { 0.04758647376699, -0.0348000023736, 0.0};
+Point( 173 ) = { 0.05214411988029, -0.03618303505469, 0.0};
+Point( 174 ) = { 0.05689821038439, -0.03753458605692, 0.0};
+Point( 175 ) = { 0.06184665997807, -0.03885372760755, 0.0};
+Point( 176 ) = { 0.06698729810778, -0.04013953925954, 0.0};
+Point( 177 ) = { 0.07231786991975, -0.04139111187757, 0.0};
+Point( 178 ) = { 0.07783603724899, -0.04260755157605, 0.0};
+Point( 179 ) = { 0.08353937964495, -0.04378798358951, 0.0};
+Point( 180 ) = { 0.08942539543315, -0.04493155605656, 0.0};
+Point( 181 ) = { 0.09549150281253, -0.046037443699, 0.0};
+Point( 182 ) = { 0.1017350409879, -0.04710485137844, 0.0};
+Point( 183 ) = { 0.10815327133708, -0.04813301751383, 0.0};
+Point( 184 ) = { 0.11474337861211, -0.04912121734409, 0.0};
+Point( 185 ) = { 0.12150247217412, -0.05006876602101, 0.0};
+Point( 186 ) = { 0.1284275872613, -0.05097502151884, 0.0};
+Point( 187 ) = { 0.13551568628929, -0.05183938734803, 0.0};
+Point( 188 ) = { 0.1427636601836, -0.05266131506196, 0.0};
+Point( 189 ) = { 0.15016832974332, -0.05344030654663, 0.0};
+Point( 190 ) = { 0.15772644703566, -0.05417591608471, 0.0};
+Point( 191 ) = { 0.16543469682057, -0.05486775218683, 0.0};
+Point( 192 ) = { 0.17328969800495, -0.05551547918403, 0.0};
+Point( 193 ) = { 0.18128800512566, -0.0561188185773, 0.0};
+Point( 194 ) = { 0.18942610986084, -0.05667755014088, 0.0};
+Point( 195 ) = { 0.19770044256881, -0.05719151277812, 0.0};
+Point( 196 ) = { 0.20610737385376, -0.05766060512952, 0.0};
+Point( 197 ) = { 0.21464321615778, -0.05808478593443, 0.0};
+Point( 198 ) = { 0.22330422537833, -0.058464074149, 0.0};
+Point( 199 ) = { 0.2320866025105, -0.05879854882451, 0.0};
+Point( 200 ) = { 0.24098649531343, -0.05908834875129, 0.0};
+Point( 201 ) = { 0.25, -0.059333671875, 0.0};
+Point( 202 ) = { 0.25912316294914, -0.05953477449294, 0.0};
+Point( 203 ) = { 0.26835198244007, -0.05969197023942, 0.0};
+Point( 204 ) = { 0.27768241040754, -0.05980562887012, 0.0};
+Point( 205 ) = { 0.28711035421746, -0.05987617485653, 0.0};
+Point( 206 ) = { 0.2966316784621, -0.05990408580221, 0.0};
+Point( 207 ) = { 0.30624220677395, -0.05988989069371, 0.0};
+Point( 208 ) = { 0.31593772365766, -0.0598341679995, 0.0};
+Point( 209 ) = { 0.32571397633909, -0.05973754363096, 0.0};
+Point( 210 ) = { 0.33556667663071, -0.05960068878005, 0.0};
+Point( 211 ) = { 0.34549150281253, -0.05942431764848, 0.0};
+Point( 212 ) = { 0.35548410152776, -0.05920918508399, 0.0};
+Point( 213 ) = { 0.36554008969237, -0.05895608413888, 0.0};
+Point( 214 ) = { 0.37565505641757, -0.05866584356678, 0.0};
+Point( 215 ) = { 0.38582456494467, -0.05833932527305, 0.0};
+Point( 216 ) = { 0.39604415459112, -0.05797742173437, 0.0};
+Point( 217 ) = { 0.40630934270714, -0.05758105340305, 0.0};
+Point( 218 ) = { 0.41661562664195, -0.05715116611079, 0.0};
+Point( 219 ) = { 0.42695848571879, -0.05668872848681, 0.0};
+Point( 220 ) = { 0.43733338321785, -0.05619472940438, 0.0};
+Point( 221 ) = { 0.44773576836617, -0.05567017546926, 0.0};
+Point( 222 ) = { 0.45816107833384, -0.05511608856324, 0.0};
+Point( 223 ) = { 0.46860474023534, -0.05453350345464, 0.0};
+Point( 224 ) = { 0.4790621731354, -0.05392346548752, 0.0};
+Point( 225 ) = { 0.48952879005832, -0.05328702835989, 0.0};
+Point( 226 ) = { 0.5, -0.05262525200057, 0.0};
+Point( 227 ) = { 0.51047120994168, -0.05193920055357, 0.0};
+Point( 228 ) = { 0.5209378268646, -0.05122994047724, 0.0};
+Point( 229 ) = { 0.53139525976466, -0.05049853876514, 0.0};
+Point( 230 ) = { 0.54183892166616, -0.0497460612939, 0.0};
+Point( 231 ) = { 0.55226423163383, -0.04897357130255, 0.0};
+Point( 232 ) = { 0.56266661678215, -0.04818212800662, 0.0};
+Point( 233 ) = { 0.57304151428121, -0.04737278534922, 0.0};
+Point( 234 ) = { 0.58338437335805, -0.04654659089014, 0.0};
+Point( 235 ) = { 0.59369065729286, -0.04570458483296, 0.0};
+Point( 236 ) = { 0.60395584540888, -0.04484779918912, 0.0};
+Point( 237 ) = { 0.61417543505533, -0.04397725707679, 0.0};
+Point( 238 ) = { 0.62434494358243, -0.04309397215141, 0.0};
+Point( 239 ) = { 0.63445991030763, -0.04219894816377, 0.0};
+Point( 240 ) = { 0.64451589847224, -0.04129317864062, 0.0};
+Point( 241 ) = { 0.65450849718747, -0.0403776466819, 0.0};
+Point( 242 ) = { 0.66443332336929, -0.03945332486788, 0.0};
+Point( 243 ) = { 0.67428602366091, -0.03852117526877, 0.0};
+Point( 244 ) = { 0.68406227634234, -0.03758214954874, 0.0};
+Point( 245 ) = { 0.69375779322605, -0.03663718915547, 0.0};
+Point( 246 ) = { 0.7033683215379, -0.03568722558628, 0.0};
+Point( 247 ) = { 0.71288964578254, -0.03473318072085, 0.0};
+Point( 248 ) = { 0.72231758959246, -0.03377596721082, 0.0};
+Point( 249 ) = { 0.73164801755993, -0.03281648891572, 0.0};
+Point( 250 ) = { 0.74087683705086, -0.03185564137496, 0.0};
+Point( 251 ) = { 0.75, -0.03089431230516, 0.0};
+Point( 252 ) = { 0.75901350468657, -0.02993338211239, 0.0};
+Point( 253 ) = { 0.7679133974895, -0.02897372440866, 0.0};
+Point( 254 ) = { 0.77669577462167, -0.02801620652246, 0.0};
+Point( 255 ) = { 0.78535678384222, -0.02706168999315, 0.0};
+Point( 256 ) = { 0.79389262614624, -0.02611103103947, 0.0};
+Point( 257 ) = { 0.80229955743119, -0.02516508099279, 0.0};
+Point( 258 ) = { 0.81057389013916, -0.02422468668617, 0.0};
+Point( 259 ) = { 0.81871199487434, -0.02329069079083, 0.0};
+Point( 260 ) = { 0.82671030199505, -0.02236393209232, 0.0};
+Point( 261 ) = { 0.83456530317943, -0.02144524569925, 0.0};
+Point( 262 ) = { 0.84227355296434, -0.02053546317813, 0.0};
+Point( 263 ) = { 0.84983167025668, -0.01963541260873, 0.0};
+Point( 264 ) = { 0.8572363398164, -0.01874591855516, 0.0};
+Point( 265 ) = { 0.86448431371071, -0.01786780194847, 0.0};
+Point( 266 ) = { 0.8715724127387, -0.01700187987791, 0.0};
+Point( 267 ) = { 0.87849752782588, -0.01614896528828, 0.0};
+Point( 268 ) = { 0.88525662138789, -0.01530986658219, 0.0};
+Point( 269 ) = { 0.89184672866292, -0.01448538712671, 0.0};
+Point( 270 ) = { 0.8982649590121, -0.01367632466478, 0.0};
+Point( 271 ) = { 0.90450849718747, -0.01288347063272, 0.0};
+Point( 272 ) = { 0.91057460456685, -0.01210760938604, 0.0};
+Point( 273 ) = { 0.91646062035505, -0.01134951733663, 0.0};
+Point( 274 ) = { 0.92216396275101, -0.01060996200508, 0.0};
+Point( 275 ) = { 0.92768213008025, -0.00988970099293, 0.0};
+Point( 276 ) = { 0.93301270189222, -0.00918948088016, 0.0};
+Point( 277 ) = { 0.93815334002193, -0.00851003605407, 0.0};
+Point( 278 ) = { 0.94310178961561, -0.00785208747637, 0.0};
+Point( 279 ) = { 0.94785588011971, -0.00721634139577, 0.0};
+Point( 280 ) = { 0.95241352623301, -0.00660348801398, 0.0};
+Point( 281 ) = { 0.9567727288213, -0.00601420011357, 0.0};
+Point( 282 ) = { 0.96093157579425, -0.00544913165641, 0.0};
+Point( 283 ) = { 0.96488824294413, -0.00490891636171, 0.0};
+Point( 284 ) = { 0.96864099474595, -0.00439416627328, 0.0};
+Point( 285 ) = { 0.97218818511874, -0.0039054703252, 0.0};
+Point( 286 ) = { 0.97552825814758, -0.00344339291591, 0.0};
+Point( 287 ) = { 0.97865974876603, -0.00300847250009, 0.0};
+Point( 288 ) = { 0.98158128339883, -0.00260122020822, 0.0};
+Point( 289 ) = { 0.98429158056432, -0.0022221185031, 0.0};
+Point( 290 ) = { 0.98678945143658, -0.00187161988278, 0.0};
+Point( 291 ) = { 0.9890738003669, -0.0015501456389, 0.0};
+Point( 292 ) = { 0.99114362536434, -0.00125808467902, 0.0};
+Point( 293 ) = { 0.99299801853525, -0.00099579242133, 0.0};
+Point( 294 ) = { 0.99463616648149, -0.00076358976946, 0.0};
+Point( 295 ) = { 0.99605735065724, -0.00056176217462, 0.0};
+Point( 296 ) = { 0.99726094768414, -0.00039055879171, 0.0};
+Point( 297 ) = { 0.99824642962475, -0.0002501917354, 0.0};
+Point( 298 ) = { 0.99901336421414, -0.00014083544147, 0.0};
+Point( 299 ) = { 0.99956141504943, -6.262613794e-05, 0.0};
+Point( 300 ) = { 0.99989034173742, -1.566142976e-05, 0.0};
+// Point( 301 ) = { 1.0, 0.0, 0.0, msTe };
 
-Spline(1) = {101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
-Spline(2) = {1,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101};
+Spline(1) = {Le:1}; // upper side
+Spline(2) = {1, 300:Le}; // lower side
 
 // Rotation
 If (angle != 0)
-    For i In {Te:N:1}
-        Rotate{{0, 0, 1}, {xRot, 0, 0}, -angle} {Point{i};}
-    EndFor
+   For i In {Te:N:1}
+       Rotate{{0, 0, 1}, {xRot, 0, 0}, -angle} {Point{i};}
+   EndFor
 EndIf
 
 // Farfield
@@ -255,19 +362,19 @@ Line(10007) = {Le, 10004};
 Line(10008) = {Te, 10001};
 
 // Internal field
-Line Loop(10001) = {10008, 10001, 10002, 10003, -10007, 1};
-Line Loop(10002) = {10007, 10004, 10005, 10006, -10008, 2};
-Plane Surface(10001) = {10001};
-Plane Surface(10002) = {10002};
+Line Loop(20001) = {10008, 10001, 10002, 10003, -10007, 1};
+Line Loop(20002) = {10007, 10004, 10005, 10006, -10008, 2};
+Plane Surface(30001) = {20001};
+Plane Surface(30002) = {20002};
 
-/*************************
-       Mesh Options
+/************************* 
+ Mesh Options 
  *************************/
 
 Mesh.Algorithm = 5; // Delaunay
 
-/*************************
-    Physical Groups
+/************************* 
+ Physical Groups 
  *************************/
 
 Physical Point("te") = {Te};
@@ -278,5 +385,5 @@ Physical Line("downstream") += {10006};
 Physical Line("airfoil") = {1};
 Physical Line("airfoil_") = {2};
 Physical Line("wake") = {10008};
-Physical Surface("field") = {10001};
-Physical Surface("field") += {10002};
+Physical Surface("field") = {30001};
+Physical Surface("field") += {30002};
diff --git a/blast/models/references/cpRef_rae2822.dat b/blast/models/references/cpRef_rae2822.dat
deleted file mode 100644
index f050931..0000000
--- a/blast/models/references/cpRef_rae2822.dat
+++ /dev/null
@@ -1,103 +0,0 @@
-0.9938 -0.1432
-0.9875 -0.1318                                                            
-0.9750 -0.1082                                                            
-0.9500 -0.0592                                                            
-0.9250 -0.0115                                                            
-0.9000  0.0365                                                            
-0.8750  0.0808                                                            
-0.8500  0.1296                                                            
-0.8250  0.1746                                                            
-0.8000  0.2186
-0.7750  0.2702                                                            
-0.7500  0.3029                                                            
-0.7000  0.3913                                                            
-0.6771  0.4263                                                            
-0.6500  0.4778                                                            
-0.6196  0.5361                                                            
-0.6000  0.5798                                                            
-0.5750  0.6769                                                            
-0.5500  0.9137                                                            
-0.5250  1.2201                                                            
-0.5000  1.2164                                                            
-0.4750  1.2038                                                            
-0.4500  1.1940                                                            
-0.4250  1.1819                                                            
-0.4000  1.1601                                                            
-0.3750  1.1490                                                            
-0.3500  1.1273                                                            
-0.3250  1.1168                                                            
-0.3000  1.1091                                                            
-0.2800  1.1010                                                            
-0.2500  1.0736                                                            
-0.2208  1.0456                                                            
-0.2000  1.0433                                                            
-0.1500  1.0096                                                            
-0.1000  0.9886                                                            
-0.0750  1.0432                                                            
-0.0625  1.0730                                                            
-0.0500  1.0923                                                            
-0.0375  1.0820                                                            
-0.0271  1.0435                                                            
-0.0187  1.0362                                                            
-0.0146  0.9204                                                            
-0.0125  0.8680                                                            
-0.0104  0.8041                                                            
-0.0087  0.7658                                                            
-0.0073  0.7250                                                            
-0.0060  0.6269                                                            
-0.0048  0.5309                                                            
-0.0036  0.4667                                                            
-0.0026  0.2746                                                            
-0.0016  0.0521                                                            
-0.0008 -0.1042                                                            
-0.0002  0.4219                                                            
-0.0000 -0.8328                                                            
-0.0002 -1.0396                                                            
-0.0008 -1.1053                                                            
-0.0016 -1.1338                                                            
-0.0026 -1.1223                                                            
-0.0036 -1.0823                                                            
-0.0048 -1.0273                                                            
-0.0060 -0.9736                                                            
-0.0073 -0.9148                                                            
-0.0087 -0.8703                                                            
-0.0104 -0.8148                                                            
-0.0125 -0.7537                                                            
-0.0146 -0.6980                                                            
-0.0186 -0.6159                                                            
-0.0271 -0.5444                                                            
-0.0375 -0.4040                                                            
-0.0500 -0.3088                                                            
-0.0625 -0.2454                                                            
-0.0750 -0.1926                                                            
-0.1000 -0.1042                                                            
-0.1500  0.0081                                                            
-0.2000  0.0940                                                            
-0.2500  0.1754                                                            
-0.3000  0.2506                                                            
-0.3250  0.2904                                                            
-0.3500  0.3214                                                            
-0.3750  0.3406                                                            
-0.4000  0.3403                                                            
-0.4250  0.3194                                                            
-0.4500  0.2881                                                            
-0.4750  0.2469                                                            
-0.5000  0.2079                                                            
-0.5250  0.1657                                                            
-0.5500  0.1169                                                            
-0.5750  0.0731                                                            
-0.6000  0.0301                                                            
-0.6196  0.0003                                                            
-0.6500 -0.0431                                                            
-0.6771 -0.0836                                                            
-0.7000 -0.1134                                                            
-0.7500 -0.1731                                                            
-0.7750 -0.1988                                                            
-0.8500 -0.2618                                                            
-0.8750 -0.2778                                                            
-0.9000 -0.2907                                                            
-0.9250 -0.2972                                                            
-0.9500 -0.2937                                                            
-0.9750 -0.2676                                                            
-0.9875 -0.2396                                                            
-0.9938 -0.2146
diff --git a/blast/models/references/n0012_15deg_xf_bl.dat b/blast/models/references/n0012_15deg_xf_bl.dat
new file mode 100644
index 0000000..7abe5d1
--- /dev/null
+++ b/blast/models/references/n0012_15deg_xf_bl.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.96744  0.038924  0.010750  0.000001    3.6060    1.5283  0.01006  0.03766  0.01488
+   0.00840  0.99168  0.00242  0.96779  0.037670  0.010729  0.000002    3.4966    1.5236  0.01005  0.03646  0.01482
+   0.01982  0.98037  0.00398  0.96782  0.035944  0.010727  0.000003    3.3367    1.5158  0.01005  0.03479  0.01474
+   0.03304  0.96727  0.00576  0.96729  0.033977  0.010758  0.000009    3.1447    1.5051  0.01007  0.03287  0.01465
+   0.04772  0.95272  0.00771  0.96879  0.031811  0.010674  0.000053    2.9671    1.5004  0.01002  0.03082  0.01456
+   0.06337  0.93720  0.00974  0.97282  0.029568  0.010459  0.000097    2.8142    1.5025  0.00990  0.02876  0.01447
+   0.07959  0.92112  0.01182  0.97813  0.027374  0.010192  0.000147    2.6731    1.5070  0.00975  0.02678  0.01437
+   0.09610  0.90474  0.01389  0.98465  0.025286  0.009883  0.000202    2.5459    1.5136  0.00958  0.02490  0.01428
+   0.11275  0.88821  0.01594  0.99231  0.023335  0.009544  0.000263    2.4324    1.5216  0.00940  0.02316  0.01419
+   0.12949  0.87160  0.01796  1.00099  0.021533  0.009185  0.000329    2.3318    1.5307  0.00920  0.02155  0.01410
+   0.14626  0.85494  0.01994  1.01056  0.019884  0.008816  0.000401    2.2430    1.5404  0.00900  0.02009  0.01402
+   0.16305  0.83827  0.02189  1.02092  0.018383  0.008443  0.000479    2.1647    1.5504  0.00880  0.01877  0.01393
+   0.17984  0.82158  0.02381  1.03192  0.017024  0.008075  0.000561    2.0957    1.5605  0.00860  0.01757  0.01385
+   0.19665  0.80488  0.02569  1.04346  0.015797  0.007714  0.000646    2.0351    1.5704  0.00840  0.01648  0.01376
+   0.21346  0.78817  0.02753  1.05543  0.014691  0.007365  0.000735    1.9818    1.5799  0.00820  0.01551  0.01368
+   0.23027  0.77146  0.02934  1.06772  0.013695  0.007031  0.000826    1.9348    1.5890  0.00802  0.01462  0.01360
+   0.24707  0.75475  0.03111  1.08025  0.012797  0.006712  0.000919    1.8935    1.5976  0.00783  0.01382  0.01352
+   0.26388  0.73803  0.03284  1.09297  0.011986  0.006408  0.001012    1.8570    1.6057  0.00766  0.01310  0.01343
+   0.28068  0.72132  0.03453  1.10582  0.011252  0.006121  0.001107    1.8247    1.6132  0.00748  0.01244  0.01335
+   0.29748  0.70460  0.03619  1.11876  0.010586  0.005849  0.001202    1.7962    1.6202  0.00732  0.01184  0.01327
+   0.31427  0.68789  0.03781  1.13178  0.009979  0.005591  0.001297    1.7708    1.6267  0.00716  0.01129  0.01318
+   0.33105  0.67118  0.03938  1.14486  0.009424  0.005347  0.001393    1.7481    1.6327  0.00701  0.01079  0.01310
+   0.34783  0.65447  0.04092  1.15800  0.008914  0.005115  0.001489    1.7279    1.6383  0.00686  0.01032  0.01301
+   0.36460  0.63777  0.04241  1.17122  0.008443  0.004896  0.001585    1.7097    1.6434  0.00672  0.00989  0.01293
+   0.38135  0.62108  0.04387  1.18451  0.008007  0.004686  0.001681    1.6934    1.6481  0.00658  0.00948  0.01284
+   0.39809  0.60440  0.04527  1.19791  0.007602  0.004487  0.001778    1.6786    1.6525  0.00644  0.00911  0.01275
+   0.41482  0.58772  0.04663  1.21142  0.007222  0.004296  0.001876    1.6652    1.6566  0.00631  0.00875  0.01265
+   0.43154  0.57106  0.04794  1.22508  0.006867  0.004114  0.001974    1.6530    1.6604  0.00617  0.00841  0.01256
+   0.44823  0.55441  0.04920  1.23890  0.006532  0.003939  0.002074    1.6419    1.6639  0.00605  0.00809  0.01246
+   0.46491  0.53778  0.05041  1.25292  0.006216  0.003770  0.002176    1.6318    1.6671  0.00592  0.00779  0.01236
+   0.48157  0.52116  0.05156  1.26716  0.005916  0.003608  0.002280    1.6225    1.6702  0.00579  0.00750  0.01226
+   0.49820  0.50456  0.05265  1.28165  0.005631  0.003452  0.002385    1.6139    1.6730  0.00567  0.00722  0.01216
+   0.51481  0.48798  0.05368  1.29643  0.005360  0.003300  0.002493    1.6061    1.6757  0.00555  0.00695  0.01205
+   0.53140  0.47143  0.05465  1.31152  0.005101  0.003154  0.002605    1.5989    1.6782  0.00543  0.00669  0.01194
+   0.54796  0.45489  0.05555  1.32697  0.004852  0.003012  0.002719    1.5922    1.6805  0.00530  0.00644  0.01183
+   0.56448  0.43839  0.05639  1.34282  0.004614  0.002875  0.002837    1.5861    1.6826  0.00518  0.00620  0.01171
+   0.58098  0.42191  0.05714  1.35909  0.004386  0.002741  0.002959    1.5805    1.6847  0.00506  0.00596  0.01159
+   0.59744  0.40546  0.05782  1.37584  0.004166  0.002611  0.003085    1.5753    1.6865  0.00494  0.00573  0.01147
+   0.61386  0.38905  0.05842  1.39312  0.003953  0.002485  0.003217    1.5706    1.6883  0.00482  0.00551  0.01134
+   0.63024  0.37268  0.05893  1.41097  0.003748  0.002361  0.003354    1.5663    1.6899  0.00470  0.00529  0.01121
+   0.64657  0.35635  0.05935  1.42946  0.003550  0.002241  0.003497    1.5624    1.6914  0.00458  0.00507  0.01107
+   0.66286  0.34007  0.05967  1.44866  0.003359  0.002124  0.003647    1.5590    1.6927  0.00446  0.00487  0.01093
+   0.67910  0.32383  0.05989  1.46864  0.003173  0.002010  0.003805    1.5559    1.6940  0.00433  0.00466  0.01078
+   0.69527  0.30766  0.06000  1.48948  0.002993  0.001898  0.003971    1.5533    1.6951  0.00421  0.00446  0.01063
+   0.71139  0.29154  0.06000  1.51129  0.002818  0.001789  0.004147    1.5510    1.6960  0.00409  0.00426  0.01047
+   0.72743  0.27550  0.05988  1.53418  0.002648  0.001682  0.004334    1.5492    1.6969  0.00396  0.00406  0.01031
+   0.74340  0.25953  0.05963  1.55829  0.002482  0.001578  0.004533    1.5478    1.6976  0.00383  0.00387  0.01013
+   0.75928  0.24366  0.05924  1.58377  0.002321  0.001476  0.004747    1.5468    1.6982  0.00370  0.00368  0.00995
+   0.77506  0.22788  0.05871  1.61081  0.002164  0.001375  0.004977    1.5462    1.6986  0.00357  0.00349  0.00976
+   0.79074  0.21222  0.05803  1.63965  0.002011  0.001277  0.005226    1.5461    1.6989  0.00343  0.00330  0.00957
+   0.80628  0.19670  0.05718  1.67055  0.001862  0.001181  0.005499    1.5465    1.6991  0.00330  0.00311  0.00936
+   0.82167  0.18135  0.05616  1.70382  0.001715  0.001087  0.005800    1.5472    1.6992  0.00316  0.00292  0.00914
+   0.83688  0.16619  0.05497  1.73987  0.001572  0.000995  0.006134    1.5484    1.6992  0.00301  0.00274  0.00890
+   0.85186  0.15127  0.05358  1.77914  0.001433  0.000905  0.006511    1.5499    1.6991  0.00286  0.00255  0.00866
+   0.86655  0.13666  0.05200  1.82214  0.001297  0.000817  0.006940    1.5516    1.6990  0.00271  0.00236  0.00840
+   0.88087  0.12246  0.05022  1.86946  0.001164  0.000732  0.007436    1.5532    1.6991  0.00256  0.00218  0.00813
+   0.89470  0.10877  0.04824  1.92163  0.001036  0.000650  0.008018    1.5545    1.6994  0.00240  0.00199  0.00784
+   0.90789  0.09575  0.04609  1.97912  0.000913  0.000572  0.008711    1.5549    1.7001  0.00224  0.00181  0.00754
+   0.92028  0.08358  0.04381  2.04216  0.000797  0.000499  0.009544    1.5537    1.7015  0.00208  0.00163  0.00723
+   0.93169  0.07242  0.04142  2.11066  0.000689  0.000431  0.010553    1.5501    1.7040  0.00192  0.00145  0.00691
+   0.94200  0.06239  0.03900  2.18418  0.000591  0.000371  0.011779    1.5436    1.7076  0.00177  0.00129  0.00659
+   0.95118  0.05354  0.03659  2.26211  0.000503  0.000317  0.013264    1.5337    1.7127  0.00162  0.00114  0.00628
+   0.95926  0.04581  0.03424  2.34387  0.000425  0.000269  0.015054    1.5204    1.7193  0.00148  0.00100  0.00596
+   0.96635  0.03910  0.03196  2.42900  0.000358  0.000228  0.017191    1.5045    1.7272  0.00135  0.00087  0.00565
+   0.97255  0.03329  0.02976  2.51727  0.000300  0.000193  0.019709    1.4871    1.7359  0.00122  0.00075  0.00534
+   0.97802  0.02826  0.02764  2.60850  0.000250  0.000162  0.022592    1.4707    1.7447  0.00110  0.00065  0.00502
+   0.98286  0.02387  0.02560  2.70234  0.000208  0.000135  0.025672    1.4605    1.7517  0.00099  0.00056  0.00468
+   0.98718  0.02003  0.02361  2.79798  0.000175  0.000113  0.028258    1.4702    1.7515  0.00088  0.00049  0.00432
+   0.99107  0.01666  0.02167  2.89427  0.000153  0.000093  0.027918    1.5451    1.7292  0.00078  0.00044  0.00392
+   0.99460  0.01369  0.01977  2.99474  0.000152  0.000078  0.019124    1.8420    1.6526  0.00070  0.00045  0.00346
+   0.99781  0.01108  0.01789  3.15868  0.000195  0.000060  0.003013    3.0983    1.5210  0.00060  0.00062  0.00288
+   1.00078  0.00879  0.01602  3.39852  0.000247  0.000038 -0.001971    6.3098    1.5371  0.00043  0.00084  0.00227
+   1.00352  0.00678  0.01415  3.43198  0.000193  0.000035 -0.002220    5.2590    1.5304  0.00041  0.00066  0.00217
+   1.00607  0.00505  0.01227  3.48136  0.000133  0.000032 -0.000453    3.9295    1.5283  0.00039  0.00046  0.00207
+   1.00847  0.00358  0.01038  3.55497  0.000093  0.000028  0.007247    3.0906    1.5428  0.00036  0.00033  0.00197
+   1.01072  0.00236  0.00848  3.62591  0.000072  0.000025  0.016720    2.7163    1.5647  0.00033  0.00026  0.00185
+   1.01286  0.00140  0.00657  3.65970  0.000059  0.000022  0.026037    2.5168    1.5830  0.00029  0.00022  0.00169
+   1.01490  0.00070  0.00466  3.64088  0.000050  0.000020  0.034483    2.3927    1.5976  0.00026  0.00018  0.00151
+   1.01685  0.00024  0.00276  3.56310  0.000045  0.000018  0.041122    2.3111    1.6087  0.00023  0.00016  0.00131
+   1.01872  0.00003  0.00091  3.43157  0.000041  0.000017  0.044483    2.2686    1.6149  0.00020  0.00014  0.00111
+   1.02053  0.00003 -0.00091  3.26382  0.000039  0.000016  0.045731    2.2411    1.6192  0.00018  0.00013  0.00093
+   1.02240  0.00024 -0.00276  3.05745  0.000037  0.000016  0.045798    2.2113    1.6240  0.00015  0.00011  0.00075
+   1.02434  0.00070 -0.00466  2.81227  0.000037  0.000016  0.043581    2.1893    1.6277  0.00013  0.00010  0.00058
+   1.02638  0.00140 -0.00657  2.54352  0.000037  0.000016  0.039465    2.1747    1.6302  0.00011  0.00009  0.00044
+   1.02852  0.00236 -0.00848  2.26767  0.000038  0.000017  0.034245    2.1664    1.6317  0.00009  0.00009  0.00032
+   1.03078  0.00358 -0.01038  1.99873  0.000040  0.000018  0.028741    2.1626    1.6323  0.00007  0.00008  0.00024
+   1.03317  0.00505 -0.01227  1.74557  0.000042  0.000019  0.023534    2.1621    1.6324  0.00006  0.00007  0.00017
+   1.03573  0.00678 -0.01415  1.51240  0.000046  0.000021  0.018917    2.1640    1.6321  0.00005  0.00007  0.00012
+   1.03847  0.00879 -0.01602  1.30011  0.000049  0.000023  0.014996    2.1671    1.6315  0.00004  0.00006  0.00008
+   1.04143  0.01108 -0.01789  1.10777  0.000053  0.000024  0.011718    2.1723    1.6306  0.00003  0.00006  0.00005
+   1.04465  0.01369 -0.01977  0.93340  0.000058  0.000026  0.009063    2.1760    1.6300  0.00002  0.00005  0.00004
+   1.04817  0.01666 -0.02167  0.77498  0.000063  0.000029  0.006849    2.1851    1.6284  0.00002  0.00005  0.00002
+   1.05206  0.02003 -0.02361  0.63015  0.000068  0.000031  0.005131    2.1854    1.6284  0.00001  0.00004  0.00001
+   1.05638  0.02387 -0.02560  0.49729  0.000075  0.000034  0.003640    2.2024    1.6255  0.00001  0.00004  0.00001
+   1.06122  0.02826 -0.02764  0.37434  0.000081  0.000037  0.002558    2.1933    1.6270  0.00001  0.00003  0.00000
+   1.06669  0.03329 -0.02976  0.26040  0.000089  0.000040  0.001565    2.2243    1.6219  0.00000  0.00002  0.00000
+   1.07290  0.03910 -0.03196  0.15392  0.000095  0.000043  0.000883    2.2069    1.6248  0.00000  0.00001  0.00000
+   1.07998  0.04581 -0.03424  0.05476  0.000110  0.000049  0.000265    2.2295    1.6211  0.00000  0.00001  0.00000
+   1.08806  0.05354 -0.03659 -0.03778  0.000110  0.000049  0.000183    2.2295    1.6211  0.00000 -0.00000 -0.00000
+   1.09724  0.06239 -0.03900 -0.12357  0.000129  0.000057  0.000503    2.2539    1.6172  0.00000 -0.00002 -0.00000
+   1.10756  0.07242 -0.04142 -0.20206  0.000136  0.000061  0.000791    2.2315    1.6207  0.00000 -0.00003 -0.00000
+   1.11897  0.08358 -0.04381 -0.27333  0.000151  0.000066  0.000931    2.2709    1.6146  0.00000 -0.00004 -0.00000
+   1.13135  0.09575 -0.04609 -0.33687  0.000162  0.000072  0.001088    2.2547    1.6171  0.00001 -0.00005 -0.00000
+   1.14454  0.10877 -0.04824 -0.39328  0.000176  0.000077  0.001140    2.2785    1.6134  0.00001 -0.00007 -0.00001
+   1.15837  0.12246 -0.05022 -0.44279  0.000189  0.000083  0.001204    2.2756    1.6139  0.00002 -0.00008 -0.00001
+   1.17269  0.13666 -0.05200 -0.48635  0.000202  0.000088  0.001219    2.2874    1.6121  0.00002 -0.00010 -0.00002
+   1.18738  0.15127 -0.05358 -0.52462  0.000215  0.000094  0.001232    2.2914    1.6115  0.00003 -0.00011 -0.00002
+   1.20236  0.16619 -0.05497 -0.55842  0.000228  0.000099  0.001229    2.2982    1.6105  0.00003 -0.00013 -0.00003
+   1.21757  0.18135 -0.05616 -0.58836  0.000241  0.000104  0.001220    2.3036    1.6097  0.00004 -0.00014 -0.00003
+   1.23296  0.19670 -0.05718 -0.61503  0.000254  0.000110  0.001206    2.3091    1.6089  0.00004 -0.00016 -0.00004
+   1.24851  0.21222 -0.05803 -0.63890  0.000266  0.000115  0.001188    2.3143    1.6082  0.00005 -0.00017 -0.00005
+   1.26418  0.22788 -0.05871 -0.66036  0.000278  0.000120  0.001168    2.3193    1.6075  0.00005 -0.00018 -0.00006
+   1.27996  0.24366 -0.05924 -0.67974  0.000291  0.000125  0.001147    2.3240    1.6068  0.00006 -0.00020 -0.00006
+   1.29584  0.25953 -0.05963 -0.69732  0.000303  0.000130  0.001125    2.3287    1.6062  0.00006 -0.00021 -0.00007
+   1.31181  0.27550 -0.05988 -0.71332  0.000314  0.000134  0.001103    2.3331    1.6055  0.00007 -0.00022 -0.00008
+   1.32785  0.29154 -0.06000 -0.72794  0.000326  0.000139  0.001080    2.3374    1.6050  0.00007 -0.00024 -0.00009
+   1.34397  0.30766 -0.06000 -0.74134  0.000338  0.000144  0.001058    2.3415    1.6044  0.00008 -0.00025 -0.00009
+   1.36015  0.32383 -0.05989 -0.75366  0.000349  0.000149  0.001036    2.3455    1.6038  0.00008 -0.00026 -0.00010
+   1.37638  0.34007 -0.05967 -0.76503  0.000361  0.000153  0.001015    2.3494    1.6033  0.00009 -0.00028 -0.00011
+   1.39267  0.35635 -0.05935 -0.77555  0.000372  0.000158  0.000995    2.3530    1.6028  0.00009 -0.00029 -0.00012
+   1.40900  0.37268 -0.05893 -0.78531  0.000383  0.000162  0.000975    2.3566    1.6023  0.00010 -0.00030 -0.00013
+   1.42538  0.38905 -0.05842 -0.79438  0.000394  0.000166  0.000955    2.3599    1.6019  0.00011 -0.00031 -0.00013
+   1.44181  0.40546 -0.05782 -0.80285  0.000405  0.000171  0.000937    2.3632    1.6015  0.00011 -0.00033 -0.00014
+   1.45826  0.42191 -0.05714 -0.81077  0.000416  0.000175  0.000919    2.3662    1.6010  0.00012 -0.00034 -0.00015
+   1.47476  0.43839 -0.05639 -0.81819  0.000426  0.000179  0.000902    2.3691    1.6007  0.00012 -0.00035 -0.00016
+   1.49129  0.45489 -0.05555 -0.82517  0.000437  0.000183  0.000885    2.3718    1.6003  0.00012 -0.00036 -0.00016
+   1.50784  0.47143 -0.05465 -0.83174  0.000447  0.000188  0.000869    2.3744    1.6000  0.00013 -0.00037 -0.00017
+   1.52443  0.48798 -0.05368 -0.83796  0.000457  0.000192  0.000855    2.3767    1.5997  0.00013 -0.00038 -0.00018
+   1.54104  0.50456 -0.05265 -0.84384  0.000467  0.000196  0.000840    2.3789    1.5994  0.00014 -0.00039 -0.00019
+   1.55768  0.52116 -0.05156 -0.84943  0.000477  0.000200  0.000827    2.3809    1.5991  0.00014 -0.00041 -0.00020
+   1.57433  0.53778 -0.05041 -0.85474  0.000487  0.000203  0.000814    2.3828    1.5989  0.00015 -0.00042 -0.00020
+   1.59101  0.55441 -0.04920 -0.85982  0.000496  0.000207  0.000802    2.3844    1.5987  0.00015 -0.00043 -0.00021
+   1.60771  0.57106 -0.04794 -0.86467  0.000506  0.000211  0.000790    2.3859    1.5985  0.00016 -0.00044 -0.00022
+   1.62442  0.58772 -0.04663 -0.86933  0.000515  0.000215  0.000780    2.3872    1.5983  0.00016 -0.00045 -0.00023
+   1.64115  0.60440 -0.04527 -0.87380  0.000524  0.000218  0.000769    2.3883    1.5982  0.00017 -0.00046 -0.00023
+   1.65789  0.62108 -0.04387 -0.87810  0.000532  0.000222  0.000760    2.3893    1.5980  0.00017 -0.00047 -0.00024
+   1.67465  0.63777 -0.04241 -0.88226  0.000541  0.000225  0.000750    2.3901    1.5979  0.00018 -0.00048 -0.00025
+   1.69141  0.65447 -0.04092 -0.88628  0.000550  0.000229  0.000742    2.3907    1.5978  0.00018 -0.00049 -0.00025
+   1.70819  0.67118 -0.03938 -0.89018  0.000558  0.000232  0.000734    2.3912    1.5978  0.00018 -0.00050 -0.00026
+   1.72497  0.68789 -0.03781 -0.89397  0.000566  0.000236  0.000726    2.3915    1.5977  0.00019 -0.00051 -0.00027
+   1.74177  0.70460 -0.03619 -0.89765  0.000574  0.000239  0.000719    2.3917    1.5977  0.00019 -0.00052 -0.00028
+   1.75856  0.72132 -0.03453 -0.90124  0.000582  0.000242  0.000712    2.3918    1.5977  0.00020 -0.00052 -0.00028
+   1.77536  0.73803 -0.03284 -0.90474  0.000589  0.000245  0.000706    2.3917    1.5977  0.00020 -0.00053 -0.00029
+   1.79217  0.75475 -0.03111 -0.90816  0.000596  0.000248  0.000700    2.3916    1.5977  0.00020 -0.00054 -0.00030
+   1.80898  0.77146 -0.02934 -0.91152  0.000604  0.000251  0.000694    2.3913    1.5978  0.00021 -0.00055 -0.00030
+   1.82579  0.78817 -0.02753 -0.91480  0.000611  0.000254  0.000689    2.3910    1.5978  0.00021 -0.00056 -0.00031
+   1.84259  0.80488 -0.02569 -0.91802  0.000618  0.000257  0.000684    2.3906    1.5979  0.00022 -0.00057 -0.00032
+   1.85940  0.82158 -0.02381 -0.92118  0.000624  0.000260  0.000679    2.3901    1.5979  0.00022 -0.00058 -0.00032
+   1.87620  0.83827 -0.02189 -0.92429  0.000631  0.000263  0.000675    2.3895    1.5980  0.00022 -0.00058 -0.00033
+   1.89299  0.85494 -0.01994 -0.92735  0.000638  0.000266  0.000670    2.3889    1.5981  0.00023 -0.00059 -0.00034
+   1.90976  0.87160 -0.01796 -0.93036  0.000644  0.000268  0.000667    2.3881    1.5982  0.00023 -0.00060 -0.00035
+   1.92649  0.88821 -0.01594 -0.93334  0.000650  0.000271  0.000663    2.3871    1.5983  0.00024 -0.00061 -0.00035
+   1.94315  0.90474 -0.01389 -0.93629  0.000656  0.000274  0.000660    2.3859    1.5985  0.00024 -0.00061 -0.00036
+   1.95966  0.92112 -0.01182 -0.93921  0.000661  0.000276  0.000658    2.3842    1.5987  0.00024 -0.00062 -0.00037
+   1.97587  0.93720 -0.00974 -0.94211  0.000666  0.000278  0.000657    2.3818    1.5990  0.00025 -0.00063 -0.00037
+   1.99152  0.95272 -0.00771 -0.94501  0.000670  0.000280  0.000658    2.3779    1.5995  0.00025 -0.00063 -0.00038
+   2.00620  0.96727 -0.00576 -0.94783  0.000672  0.000282  0.000660    2.3732    1.6001  0.00025 -0.00064 -0.00038
+   2.01942  0.98037 -0.00398 -0.95096  0.000671  0.000283  0.000672    2.3604    1.6018  0.00026 -0.00064 -0.00039
+   2.03084  0.99168 -0.00242 -0.95242  0.000679  0.000285  0.000658    2.3709    1.6004  0.00026 -0.00065 -0.00039
+   2.03924  1.00000 -0.00126 -0.96744  0.000595  0.000270  0.001153    2.1913    1.5814  0.00025 -0.00058 -0.00039
+   2.03924  1.00010 -0.00000  0.96744  0.042015  0.011021  0.000000    3.7973    NaN     NaN      NaN      NaN
+   2.04764  1.00850  0.00005  0.96579  0.041139  0.011129  0.000000    3.6819    NaN     NaN      NaN      NaN
+   2.05721  1.01807  0.00025  0.96049  0.040010  0.011475  0.000000    3.4725    NaN     NaN      NaN      NaN
+   2.06811  1.02896  0.00058  0.95298  0.038677  0.011967  0.000000    3.2187    NaN     NaN      NaN      NaN
+   2.08053  1.04137  0.00105  0.94539  0.037101  0.012463  0.000000    2.9644    NaN     NaN      NaN      NaN
+   2.09468  1.05550  0.00171  0.94068  0.035265  0.012769  0.000000    2.7499    NaN     NaN      NaN      NaN
+   2.11079  1.07159  0.00257  0.93684  0.033260  0.013013  0.000000    2.5445    NaN     NaN      NaN      NaN
+   2.12915  1.08991  0.00369  0.93418  0.031128  0.013179  0.000000    2.3511    NaN     NaN      NaN      NaN
+   2.15005  1.11077  0.00512  0.93291  0.028930  0.013255  0.000000    2.1721    NaN     NaN      NaN      NaN
+   2.17387  1.13452  0.00691  0.93317  0.026737  0.013240  0.000000    2.0093    NaN     NaN      NaN      NaN
+   2.20100  1.16156  0.00916  0.93492  0.024624  0.013143  0.000000    1.8637    NaN     NaN      NaN      NaN
+   2.23190  1.19234  0.01194  0.93797  0.022654  0.012982  0.000000    1.7354    NaN     NaN      NaN      NaN
+   2.26711  1.22737  0.01538  0.94199  0.020871  0.012779  0.000000    1.6237    NaN     NaN      NaN      NaN
+   2.30721  1.26725  0.01959  0.94661  0.019298  0.012559  0.000000    1.5273    NaN     NaN      NaN      NaN
+   2.35289  1.31264  0.02473  0.95148  0.017934  0.012336  0.000000    1.4445    NaN     NaN      NaN      NaN
+   2.40493  1.36430  0.03098  0.95634  0.016765  0.012125  0.000000    1.3736    NaN     NaN      NaN      NaN
+   2.46420  1.42309  0.03855  0.96101  0.015772  0.011930  0.000000    1.3129    NaN     NaN      NaN      NaN
+   2.53172  1.48999  0.04769  0.96539  0.014929  0.011753  0.000000    1.2612    NaN     NaN      NaN      NaN
+   2.60863  1.56612  0.05868  0.96944  0.014217  0.011596  0.000000    1.2171    NaN     NaN      NaN      NaN
+   2.69625  1.65274  0.07184  0.97313  0.013617  0.011456  0.000000    1.1796    NaN     NaN      NaN      NaN
+   2.79605  1.75129  0.08757  0.97648  0.013113  0.011333  0.000000    1.1481    NaN     NaN      NaN      NaN
+   2.90974  1.86343  0.10629  0.97947  0.012693  0.011225  0.000000    1.1218    NaN     NaN      NaN      NaN
+   3.03924  1.99101  0.12852  0.98328  0.012297  0.011091  0.000000    1.0997    NaN     NaN      NaN      NaN
diff --git a/blast/models/references/n0012_15deg_xf_cpVisc.dat b/blast/models/references/n0012_15deg_xf_cpVisc.dat
new file mode 100644
index 0000000..581a648
--- /dev/null
+++ b/blast/models/references/n0012_15deg_xf_cpVisc.dat
@@ -0,0 +1,161 @@
+#      x          Cp  
+     1.00000    0.06409
+     0.99168    0.06341
+     0.98037    0.06335
+     0.96727    0.06438
+     0.95272    0.06147
+     0.93720    0.05363
+     0.92112    0.04327
+     0.90474    0.03046
+     0.88821    0.01532
+     0.87160   -0.00197
+     0.85494   -0.02124
+     0.83827   -0.04226
+     0.82158   -0.06484
+     0.80488   -0.08877
+     0.78817   -0.11385
+     0.77146   -0.13991
+     0.75475   -0.16679
+     0.73803   -0.19437
+     0.72132   -0.22255
+     0.70460   -0.25127
+     0.68789   -0.28048
+     0.67118   -0.31016
+     0.65447   -0.34032
+     0.63777   -0.37097
+     0.62108   -0.40216
+     0.60440   -0.43392
+     0.58772   -0.46632
+     0.57106   -0.49941
+     0.55441   -0.53327
+     0.53778   -0.56798
+     0.52116   -0.60363
+     0.50456   -0.64032
+     0.48798   -0.67814
+     0.47143   -0.71720
+     0.45489   -0.75763
+     0.43839   -0.79956
+     0.42191   -0.84313
+     0.40546   -0.88850
+     0.38905   -0.93585
+     0.37268   -0.98538
+     0.35635   -1.03732
+     0.34007   -1.09191
+     0.32383   -1.14947
+     0.30766   -1.21031
+     0.29154   -1.27485
+     0.27550   -1.34355
+     0.25953   -1.41696
+     0.24366   -1.49574
+     0.22788   -1.58067
+     0.21222   -1.67271
+     0.19670   -1.77304
+     0.18135   -1.88307
+     0.16619   -2.00454
+     0.15127   -2.13958
+     0.13666   -2.29069
+     0.12246   -2.46080
+     0.10877   -2.65307
+     0.09575   -2.87057
+     0.08358   -3.11582
+     0.07242   -3.39022
+     0.06239   -3.69388
+     0.05354   -4.02598
+     0.04581   -4.38553
+     0.03910   -4.77195
+     0.03329   -5.18542
+     0.02826   -5.62621
+     0.02387   -6.09376
+     0.02003   -6.58479
+     0.01666   -7.09375
+     0.01369   -7.64011
+     0.01108   -8.56467
+     0.00879   -9.98873
+     0.00678  -10.19397
+     0.00505  -10.49975
+     0.00358  -10.96190
+     0.00236  -11.41435
+     0.00140  -11.63227
+     0.00070  -11.51073
+     0.00024  -11.01337
+     0.00003  -10.19141
+     0.00003   -9.17861
+     0.00024   -7.98896
+     0.00070   -6.65939
+     0.00140   -5.31083
+     0.00236   -4.05006
+     0.00358   -2.94610
+     0.00505   -2.02396
+     0.00678   -1.27816
+     0.00879   -0.68764
+     0.01108   -0.22686
+     0.01369    0.12886
+     0.01666    0.40031
+     0.02003    0.60497
+     0.02387    0.75591
+     0.02826    0.86407
+     0.03329    0.93713
+     0.03910    0.98173
+     0.04581    1.00266
+     0.05354    1.00425
+     0.06239    0.99025
+     0.07242    0.96440
+     0.08358    0.93016
+     0.09575    0.89098
+     0.10877    0.84939
+     0.12246    0.80761
+     0.13666    0.76677
+     0.15127    0.72775
+     0.16619    0.69086
+     0.18135    0.65625
+     0.19670    0.62393
+     0.21222    0.59379
+     0.22788    0.56572
+     0.24366    0.53959
+     0.25953    0.51524
+     0.27550    0.49254
+     0.29154    0.47136
+     0.30766    0.45156
+     0.32383    0.43305
+     0.34007    0.41570
+     0.35635    0.39942
+     0.37268    0.38412
+     0.38905    0.36972
+     0.40546    0.35615
+     0.42191    0.34332
+     0.43839    0.33118
+     0.45489    0.31967
+     0.47143    0.30874
+     0.48798    0.29833
+     0.50456    0.28840
+     0.52116    0.27891
+     0.53778    0.26982
+     0.55441    0.26110
+     0.57106    0.25270
+     0.58772    0.24461
+     0.60440    0.23679
+     0.62108    0.22923
+     0.63777    0.22189
+     0.65447    0.21476
+     0.67118    0.20782
+     0.68789    0.20105
+     0.70460    0.19444
+     0.72132    0.18797
+     0.73803    0.18163
+     0.75475    0.17541
+     0.77146    0.16930
+     0.78817    0.16329
+     0.80488    0.15738
+     0.82158    0.15156
+     0.83827    0.14581
+     0.85494    0.14014
+     0.87160    0.13452
+     0.88821    0.12897
+     0.90474    0.12345
+     0.92112    0.11797
+     0.93720    0.11250
+     0.95272    0.10703
+     0.96727    0.10168
+     0.98037    0.09572
+     0.99168    0.09294
+     1.00000    0.06409
diff --git a/blast/models/references/blXfoil_n0012.dat b/blast/models/references/n0012_2deg_xf_bl.dat
similarity index 100%
rename from blast/models/references/blXfoil_n0012.dat
rename to blast/models/references/n0012_2deg_xf_bl.dat
diff --git a/blast/models/references/cpXfoilInv_n0012.dat b/blast/models/references/n0012_2deg_xf_cpInv.dat
similarity index 100%
rename from blast/models/references/cpXfoilInv_n0012.dat
rename to blast/models/references/n0012_2deg_xf_cpInv.dat
diff --git a/blast/models/references/cpXfoil_n0012.dat b/blast/models/references/n0012_2deg_xf_cpVisc.dat
similarity index 100%
rename from blast/models/references/cpXfoil_n0012.dat
rename to blast/models/references/n0012_2deg_xf_cpVisc.dat
diff --git a/blast/tests/dart/adjointVII_2D.py b/blast/tests/dart/adjoint_2D.py
similarity index 95%
rename from blast/tests/dart/adjointVII_2D.py
rename to blast/tests/dart/adjoint_2D.py
index 60306c9..b9e5dc2 100644
--- a/blast/tests/dart/adjointVII_2D.py
+++ b/blast/tests/dart/adjoint_2D.py
@@ -22,7 +22,7 @@
 
 # Imports.
 
-import blast.utils as viscUtils
+import blast.utils as vutils
 import blast
 import numpy as np
 
@@ -47,7 +47,7 @@ def cfgInviscid(nthrds, verb):
     'Verb' : verb, # verbosity
     # Model (geometry or mesh)
     'File' : os.path.dirname(os.path.abspath(__file__)) + '/../../models/dart/n0012.geo', # Input file containing the model
-    'Pars' : {'xLgt' : 5, 'yLgt' : 5, 'msF' : 3, 'msTe' : 0.1, 'msLe' : 0.1}, # parameters for input file model
+    'Pars' : {'xLgt' : 5, 'yLgt' : 5, 'growthRatio' : 2., 'msTe' : 0.1, 'msLe' : 0.1}, # parameters for input file model
     'Dim' : 2, # problem dimension
     'Format' : 'gmsh', # save format (vtk or gmsh)
     # Markers
@@ -57,7 +57,6 @@ def cfgInviscid(nthrds, verb):
     'Wake' : 'wake', # LIST of names of physical group containing the wake
     'WakeTip' : 'wakeTip', # LIST of names of physical group containing the edge of the wake
     'Te' : 'te', # LIST of names of physical group containing the trailing edge
-    'dbc' : False,
     'Upstream' : 'upstream',
     # Freestream
     'M_inf' : 0.2, # freestream Mach number
@@ -69,7 +68,7 @@ def cfgInviscid(nthrds, verb):
     'y_ref' : 0.0, # reference point for moment computation (y)
     'z_ref' : 0.0, # reference point for moment computation (z)
     # Numerical
-    'LSolver' : 'SparseLu', # inner solver (Pardiso, MUMPS or GMRES)
+    'LSolver' : 'SparseLU', # inner solver (Pardiso, MUMPS or GMRES)
     'G_fill' : 2, # fill-in factor for GMRES preconditioner
     'G_tol' : 1e-5, # tolerance for GMRES
     'G_restart' : 50, # restart for GMRES
@@ -85,11 +84,11 @@ def cfgBlast(verb):
         'CFL0' : 1,                     # Inital CFL number of the calculation
         'Verb': verb,                   # Verbosity level of the solver
         'couplIter': 100,               # Maximum number of iterations
-        'couplTol' : 1e-10,              # Tolerance of the VII methodology
+        'couplTol' : 1e-10,             # Tolerance of the VII methodology
         'iterPrint': 20,                # int, number of iterations between outputs
         'resetInv' : True,              # bool, flag to reset the inviscid calculation at every iteration.
         'sections' : [0],               # List of sections for boundary layer calculation
-        'xtrF' : [0.2, 0.2],            # Forced transition location
+        'xtrF' : [0.2, 0.2],            # Forced transition locations
         'interpolator' : 'Matching',    # Interpolator for the coupling
     }
 
@@ -106,7 +105,7 @@ def main():
     dalpha = 1e-6 * np.pi/180
     daoa = [alpha - dalpha, alpha + dalpha]
 
-    coupler, isol, vsol = viscUtils.initBlast(icfg, vcfg)
+    coupler, isol, vsol = vutils.initBlast(icfg, vcfg)
     morpher = isol.iobj['mrf']
 
     # Adjoint objects
diff --git a/blast/tests/dart/naca0012_2D.py b/blast/tests/dart/naca0012_2D.py
index a5cd8f1..b04f5e4 100644
--- a/blast/tests/dart/naca0012_2D.py
+++ b/blast/tests/dart/naca0012_2D.py
@@ -34,7 +34,7 @@
 
 # Imports.
 
-import blast.utils as viscUtils
+import blast.utils as vutils
 import numpy as np
 
 from fwk.wutils import parseargs
@@ -55,7 +55,7 @@ def cfgInviscid(nthrds, verb):
     'Verb' : verb, # verbosity
     # Model (geometry or mesh)
     'File' : os.path.dirname(os.path.abspath(__file__)) + '/../../models/dart/n0012.geo', # Input file containing the model
-    'Pars' : {'xLgt' : 50, 'yLgt' : 50, 'msF' : 8.33, 'msTe' : 0.01, 'msLe' : 0.001}, # parameters for input file model
+    'Pars' : {'xLgt' : 50, 'yLgt' : 50, 'growthRatio': 1.2, 'msTe' : 0.01, 'msLe' : 0.001}, # parameters for input file model
     'Dim' : 2, # problem dimension
     'Format' : 'gmsh', # save format (vtk or gmsh)
     # Markers
@@ -65,7 +65,6 @@ def cfgInviscid(nthrds, verb):
     'Wake' : 'wake', # LIST of names of physical group containing the wake
     'WakeTip' : 'wakeTip', # LIST of names of physical group containing the edge of the wake
     'Te' : 'te', # LIST of names of physical group containing the trailing edge
-    'dbc' : True,
     'Upstream' : 'upstream',
     # Freestream
     'M_inf' : 0.2, # freestream Mach number
@@ -97,7 +96,7 @@ def cfgBlast(verb):
         'iterPrint': 5,             # int, number of iterations between outputs
         'resetInv' : True,          # bool, flag to reset the inviscid calculation at every iteration.
         'sections' : [0],           # List of sections for boundary layer calculation
-        'xtrF' : [None, 0.4],       # Forced transition location
+        'xtrF' : [None, 0.4],       # Forced transition locations
         'interpolator' : 'Matching' # Interpolator for the coupling
     }
 
@@ -111,7 +110,7 @@ def main():
     vcfg = cfgBlast(args.verb)
 
     tms['pre'].start()
-    coupler, isol, vsol = viscUtils.initBlast(icfg, vcfg)
+    coupler, isol, vsol = vutils.initBlast(icfg, vcfg)
     tms['pre'].stop()
 
     print(ccolors.ANSI_BLUE + 'PySolving...' + ccolors.ANSI_RESET)
@@ -123,9 +122,6 @@ def main():
     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(vcfg['Re']/1e6, isol.getMinf(), isol.getAoA()*180/math.pi, isol.getCl(), vsol.Cdt, vsol.Cdp, vsol.Cdf, isol.getCm()))
-
-     # Write results to file.
-    vSolution = viscUtils.getSolution(isol.sec, write=True, toW='all')
     tms['total'].stop()
 
     print(ccolors.ANSI_BLUE + 'PyTiming...' + ccolors.ANSI_RESET)
@@ -133,6 +129,8 @@ def main():
     print(tms)
     print('SOLVERS statistics')
     print(coupler.tms)
+
+    bl_solution = vutils.getSolution(isol.sec, write=False)[0]
     
     # Test solution
     print(ccolors.ANSI_BLUE + 'PyTesting...' + ccolors.ANSI_RESET)
@@ -143,47 +141,40 @@ def main():
     tests.add(CTest('Cdf', vsol.Cdf, 0.0047, 1e-3, forceabs=True)) # XFOIL 0.00084, Cdf = 0.00447
     tests.add(CTest('xtr_top', vsol.getAverageTransition(0), 0.196, 0.03, forceabs=True)) # XFOIL 0.1877
     tests.add(CTest('xtr_bot', vsol.getAverageTransition(1), 0.40, 0.01, forceabs=True)) # XFOIL 0.4998
-    tests.add(CTest('error dStar', np.linalg.norm(vSolution[0]['deltaStar'] - vSolution[0]['theta']*vSolution[0]['H']), 0., 0., forceabs=True))
-    tests.add(CTest('Iterations', len(aeroCoeffs['Cl']), 19, 0, forceabs=True))
+    tests.add(CTest('error dStar', np.linalg.norm(bl_solution['deltaStar'] - bl_solution['theta']*bl_solution['H']), 0., 0., forceabs=True))
+    tests.add(CTest('Iterations', len(aeroCoeffs['Cl']), 20, 0, forceabs=True))
     tests.run()
 
-    # Show results
+    # Plot results
     if not args.nogui:
-        iCp = viscUtils.read('Cp_inviscid.dat')
-        vCp = viscUtils.read('Cp_viscous.dat')
-        xfoilCp = viscUtils.read('../../blast/models/references/cpXfoil_n0012.dat', delim=None, skip = 1)
-        xfoilCpInv = viscUtils.read('../../blast/models/references/cpXfoilInv_n0012.dat', delim=None, skip = 1)
-        plotcp = {'curves': [np.column_stack((vCp[:,0], vCp[:,3])),
-                            np.column_stack((xfoilCp[:,0], xfoilCp[:,1])),
-                            np.column_stack((iCp[:,0], iCp[:,3])),
-                            np.column_stack((xfoilCpInv[:,0], xfoilCpInv[:,1]))],
-                    'labels': ['Blaster (VII)', 'XFOIL (VII)', 'DART (inviscid)', 'XFOIL (inviscid)'],
-                    'lw': [3, 3, 2, 2],
-                    'color': ['firebrick', 'darkblue', 'firebrick', 'darkblue'],
-                    'ls': ['-', '-', '--', '--'],
-                    'reverse': True,
-                    'xlim':[0, 1],
-                    'yreverse': True,
-                    'legend': True,
-                    'xlabel': '$x/c$',
-                    'ylabel': '$c_p$'
-                    }
-        viscUtils.plot(plotcp)
-
-        xfoilBl = viscUtils.read('../../blast/models/references/blXfoil_n0012.dat', delim=None, skip = 1)
-        plotcf = {'curves': [np.column_stack((vSolution[0]['x'], vSolution[0]['cf']*vSolution[0]['ue']*vSolution[0]['ue'])),
-                            np.column_stack((xfoilBl[:,1], xfoilBl[:,6]))],
-                'labels': ['Blaster', 'XFOIL'],
-                'lw': [3, 3],
-                'color': ['firebrick', 'darkblue'],
-                'ls': ['-', '-'],
-                'reverse': True,
-                'xlim':[0, 1],
-                'legend': True,
-                'xlabel': '$x/c$',
-                'ylabel': '$c_f$'
-                    }
-        viscUtils.plot(plotcf)
+        cpv = np.loadtxt('Cp_viscous.dat', skiprows=1, delimiter=',')
+        cpi = np.loadtxt('Cp_inviscid.dat', skiprows=1, delimiter=',')
+        cpv_xf = np.loadtxt('/'.join(__file__.split('/')[:-3])+'/models/references/n0012_2deg_xf_cpVisc.dat', skiprows=1)
+        cpi_xf = np.loadtxt('/'.join(__file__.split('/')[:-3])+'/models/references/n0012_2deg_xf_cpInv.dat', skiprows=1)
+        bl_xf = np.loadtxt('/'.join(__file__.split('/')[:-3])+'/models/references/n0012_2deg_xf_bl.dat', skiprows=1)
+
+        from matplotlib import pyplot as plt
+        plt.figure()
+        plt.plot(cpv[:, 0], cpv[:, 3], color='firebrick', lw=2, label='BLASTER - viscous')
+        plt.plot(cpv_xf[:, 0], cpv_xf[:, 1], color='royalblue', lw=2, label='XFOIL - viscous')
+        plt.plot(cpi[:, 0], cpi[:, 3], color='firebrick', lw=1, label='BLASTER - inviscid', linestyle='--')
+        plt.plot(cpi_xf[:, 0], cpi_xf[:, 1], color='royalblue', lw=1, label='XFOIL - inviscid', linestyle='--')
+        plt.gca().invert_yaxis()
+        plt.legend(frameon=False)
+        plt.xlabel('$x/c$')
+        plt.ylabel('$c_p$')
+        plt.draw()
+
+        plt.figure()
+        plt.plot(bl_solution['x'], bl_solution['cf']*bl_solution['ue']*bl_solution['ue'], color='firebrick', lw=2, label='BLASTER')
+        plt.plot(bl_xf[:, 1], bl_xf[:, 6], color='royalblue', lw=2, label='XFOIL')
+        plt.legend(frameon=False)
+        plt.xlim([0, 1])
+        plt.xlabel('$x/c$')
+        plt.ylabel('$c_f$')
+        plt.draw()
+
+        plt.show()
 
     # eof
     print('')
diff --git a/blast/tests/apiTest.py b/blast/tests/test_api.py
similarity index 82%
rename from blast/tests/apiTest.py
rename to blast/tests/test_api.py
index 9b38c09..ef0f793 100644
--- a/blast/tests/apiTest.py
+++ b/blast/tests/test_api.py
@@ -36,7 +36,7 @@ import os
 
 from matplotlib import pyplot as plt
 from blast.api.blaster_api import init_blaster
-import blast.utils as viscUtils
+import blast.utils as vutils
 
 def cfgInviscid(nthrds, verb):
     import os.path
@@ -59,7 +59,6 @@ def cfgInviscid(nthrds, verb):
     'Wake' : 'wake', # LIST of names of physical group containing the wake
     'WakeTip' : 'wakeTip', # LIST of names of physical group containing the edge of the wake
     'Te' : 'te', # LIST of names of physical group containing the trailing edge
-    'dbc' : False,
     'Upstream' : 'upstream',
     # Freestream
     'M_inf' : 0.2, # freestream Mach number
@@ -71,7 +70,7 @@ def cfgInviscid(nthrds, verb):
     'y_ref' : 0.0, # reference point for moment computation (y)
     'z_ref' : 0.0, # reference point for moment computation (z)
     # Numerical
-    'LSolver' : 'SparseLu', # inner solver (Pardiso, MUMPS or GMRES)
+    'LSolver' : 'SparseLU', # inner solver (Pardiso, MUMPS or GMRES)
     'G_fill' : 2, # fill-in factor for GMRES preconditioner
     'G_tol' : 1e-5, # tolerance for GMRES
     'G_restart' : 50, # restart for GMRES
@@ -91,7 +90,7 @@ def cfgBlast(verb):
         'iterPrint': 20,                # int, number of iterations between outputs
         'resetInv' : True,              # bool, flag to reset the inviscid calculation at every iteration.
         'sections' : [0],               # List of sections for boundary layer calculation
-        'xtrF' : [-1, -1],            # Forced transition location
+        'xtrF' : [-1, -1],              # Forced transition locations
         'interpolator' : 'Matching',    # Interpolator for the coupling
     }
 
@@ -118,9 +117,6 @@ def main():
     # Adjoint problem
     isol.adjointSolver.run()
     adj.run()
-
-    vSolution = viscUtils.getSolution(isol.sec, write=False)[0]
-    #plotSolution(vSolution)
     tms['total'].stop()
 
     # Make the api crash
@@ -157,39 +153,5 @@ def main():
     # eof
     print('')
 
-def plotSolution(vSolution):
-    plt.figure()
-    plt.plot(vSolution['x'], vSolution['cf'], label='$c_f$')
-    plt.xlim([0, 1])
-    plt.xlabel('x/c')
-    plt.ylabel('$c_f$')
-    plt.legend()
-    plt.grid()
-    plt.savefig('cf.png')
-    plt.draw()
-
-    plt.figure()
-    plt.plot(vSolution['x'], vSolution['ctEq'], label='$ctEq$')
-    plt.xlim([0, 1])
-    plt.xlabel('x/c')
-    plt.ylabel('$ctEq$')
-    plt.legend()
-    plt.grid()
-    plt.savefig('cf.png')
-    plt.draw()
-
-    plt.figure()
-    plt.plot(vSolution['x'], vSolution['theta'], label='$\theta$')
-    plt.plot(vSolution['x'], vSolution['deltaStar'], label='$\delta^*$')
-    plt.plot(vSolution['x'], vSolution['theta']*vSolution['H'], label='$\delta^*from$')
-    plt.xlim([0, 1])
-    plt.xlabel('x/c')
-    plt.ylabel('$\delta^*$')
-    plt.legend()
-    plt.grid()
-    plt.savefig('cf.png')
-    plt.draw()
-
-
 if __name__ == '__main__':
     main()
\ No newline at end of file
-- 
GitLab