diff --git a/apps/benchmarks/CMakeLists.txt b/apps/benchmarks/CMakeLists.txt index 420dc32d3c973993890656ce458d65cd32a2d835..d16b4255d1c2d48cc25d1d9587f453a7c321ce28 100644 --- a/apps/benchmarks/CMakeLists.txt +++ b/apps/benchmarks/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory( AdaptiveMeshRefinementFluidParticleCoupling ) -add_subdirectory( CNT ) add_subdirectory( ComplexGeometry ) add_subdirectory( DEM ) add_subdirectory( MeshDistance ) diff --git a/apps/benchmarks/CNT/CMakeLists.txt b/apps/benchmarks/CNT/CMakeLists.txt deleted file mode 100644 index 5fc6f783f975d0cff2ddf7f82ed959f747a9eaf1..0000000000000000000000000000000000000000 --- a/apps/benchmarks/CNT/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -waLBerla_add_executable ( NAME VBondModel - FILES VBondModel.cpp - DEPENDS core mesa_pd ) -#waLBerla_execute_test( NAME MESA_PD_CNT_VBondModel -# COMMAND $<TARGET_FILE:VBondModel> ) diff --git a/src/mesa_pd/kernel/cnt/VBondContact.h b/src/mesa_pd/kernel/cnt/VBondContact.h index 2153daa69b6fb3e8c1d695c350675331d39880be..6bc5edf98e7bdb8c3adee076a712ea42bc15dccf 100644 --- a/src/mesa_pd/kernel/cnt/VBondContact.h +++ b/src/mesa_pd/kernel/cnt/VBondContact.h @@ -55,6 +55,12 @@ namespace cnt { class VBondContact { public: + VBondContact( const Vector3<bool>& isPeriodic = Vector3<bool>{false, false, false}, + const Vector3<int64_t>& maxSegments = Vector3<real_t>{0, 0, 0} ) + : isPeriodic_(isPeriodic) + , maxSegments_(maxSegments) + {} + template<typename Accessor> void operator()(const size_t p_idx1, const size_t p_idx2, @@ -73,13 +79,24 @@ public: static constexpr real_t B3 = -2_r * E * J / a - G * Jp / (2_r * a); static constexpr real_t B4 = G * Jp / a; - Vector3<bool> isPeriodic_; - Vector3<int64_t> maxSegments_; + + /// Get tensile energy from last contact. + auto getLastTensileEnergy() const {return tensileEnergy;} + /// Get shear energy from last contact. + auto getLastShearEnergy() const {return shearEnergy;} + /// Get bending energy from last contact. + auto getLastBendingEnergy() const {return bendingEnergy;} + /// Get twisting energy from last contact. + auto getLastTwistingEnergy() const {return twistingEnergy;} +private: real_t tensileEnergy; real_t shearEnergy; real_t bendingEnergy; real_t twistingEnergy; + + Vector3<bool> isPeriodic_; + Vector3<int64_t> maxSegments_; }; diff --git a/tests/mesa_pd/CMakeLists.txt b/tests/mesa_pd/CMakeLists.txt index 310062c6d84c81bb8c1cf872c2e9d67c303698e5..d84af9fb2bb46c8dafaf37ebeba3b4fcf8f1237c 100644 --- a/tests/mesa_pd/CMakeLists.txt +++ b/tests/mesa_pd/CMakeLists.txt @@ -90,6 +90,9 @@ waLBerla_execute_test( NAME MESA_PD_Kernel_CNT_IsotropicVDWContact ) waLBerla_compile_test( NAME MESA_PD_Kernel_CNT_VBondContact FILES kernel/cnt/VBondContact.test.cpp DEPENDS core ) waLBerla_execute_test( NAME MESA_PD_Kernel_CNT_VBondContact ) +waLBerla_compile_test( NAME MESA_PD_Kernel_CNT_VBondContactIntegration FILES kernel/cnt/VBondContactIntegration.test.cpp DEPENDS core ) +waLBerla_execute_test( NAME MESA_PD_Kernel_CNT_VBondContactIntegration ) + waLBerla_compile_test( NAME MESA_PD_Kernel_CoefficientOfRestitutionSD FILES kernel/CoefficientOfRestitutionSD.cpp DEPENDS core ) waLBerla_execute_test( NAME MESA_PD_Kernel_CoefficientOfRestitutionSDEuler COMMAND $<TARGET_FILE:MESA_PD_Kernel_CoefficientOfRestitutionSD> ) waLBerla_execute_test( NAME MESA_PD_Kernel_CoefficientOfRestitutionSDVelocityVerlet COMMAND $<TARGET_FILE:MESA_PD_Kernel_CoefficientOfRestitutionSD> --useVV ) diff --git a/apps/benchmarks/CNT/Accessor.h b/tests/mesa_pd/kernel/cnt/SphericalSegmentAccessor.h similarity index 92% rename from apps/benchmarks/CNT/Accessor.h rename to tests/mesa_pd/kernel/cnt/SphericalSegmentAccessor.h index d23002562eee622245ae2865057b6ff89937d537..22c09b56486a3d4c6b9332b0b56c0a63bb66fdea 100644 --- a/apps/benchmarks/CNT/Accessor.h +++ b/tests/mesa_pd/kernel/cnt/SphericalSegmentAccessor.h @@ -28,10 +28,10 @@ namespace walberla { namespace mesa_pd { -class Accessor : public data::ParticleAccessor +class SphericalSegmentAccessor : public data::ParticleAccessor { public: - Accessor(std::shared_ptr<data::ParticleStorage>& ps) + SphericalSegmentAccessor(std::shared_ptr<data::ParticleStorage>& ps) : ParticleAccessor(ps) {} diff --git a/tests/mesa_pd/kernel/cnt/VBondContactEnergies.ref.txt b/tests/mesa_pd/kernel/cnt/VBondContactEnergies.ref.txt new file mode 100644 index 0000000000000000000000000000000000000000..7608c5ea92ae8eefd6d70197bcf5c0defe6f9cbe --- /dev/null +++ b/tests/mesa_pd/kernel/cnt/VBondContactEnergies.ref.txt @@ -0,0 +1,4 @@ +0.000000000000000000e+00 9.769598930999999488e-25 1.257361055000000031e-14 3.899420607000000291e-15 2.000811218999999922e-12 4.690882740999999754e-11 3.101953598000000151e-10 1.079764155999999945e-09 2.624524298999999930e-09 5.413337421000000074e-09 1.084774037999999922e-08 2.202161062999999972e-08 4.378177583000000040e-08 8.112557732999999511e-08 1.362031657999999954e-07 2.072490092999999965e-07 2.924839492000000040e-07 3.965729058000000265e-07 5.325625850000000057e-07 7.156604478000000376e-07 9.545334436000000305e-07 1.248477076000000054e-06 1.591471921999999927e-06 1.978461101000000019e-06 2.412201610999999981e-06 2.908983651000000108e-06 3.493892384000000026e-06 4.183487506000000047e-06 4.973947920999999592e-06 5.849722148000000380e-06 6.801382250000000419e-06 7.833933107000000422e-06 8.966690885999999394e-06 1.023102611999999984e-05 1.165832549999999958e-05 1.325937714000000014e-05 1.501796961000000055e-05 1.691057721000000048e-05 1.893294801000000075e-05 2.111153134000000168e-05 2.349887435999999891e-05 2.615664121000000147e-05 2.912830002999999975e-05 3.242019864000000189e-05 3.601281649999999693e-05 3.989370787000000139e-05 4.408250137000000325e-05 4.863492345000000269e-05 5.363050996999999876e-05 5.914455918000000094e-05 6.521380048999999711e-05 7.182577398000000192e-05 7.894784417999999374e-05 8.657194118999999579e-05 9.474034216000000376e-05 1.035425176999999944e-04 1.130884250999999996e-04 1.234655437999999960e-04 1.347034647999999896e-04 1.467775908999999993e-04 1.596532001999999945e-04 1.733353551999999940e-04 1.878913344999999990e-04 2.034373955999999939e-04 2.200960170999999928e-04 2.379396507000000128e-04 2.569529171999999939e-04 2.770438951999999950e-04 2.981047208000000268e-04 3.200826908000000098e-04 3.430091486000000031e-04 3.669610926000000002e-04 3.919788862999999918e-04 4.179935286000000015e-04 4.448076550999999885e-04 4.721433329999999797e-04 4.997362688000000271e-04 5.274214652999999501e-04 5.551469528999999686e-04 5.828994754999999471e-04 6.105934510000000275e-04 6.379969888000000446e-04 6.647387717000000215e-04 6.903969353999999921e-04 7.146251129999999646e-04 7.372316414000000366e-04 7.581517388999999820e-04 7.773393340000000129e-04 7.946597574999999776e-04 8.098415648999999876e-04 8.225099688999999671e-04 8.323031783000000390e-04 8.390153918000000256e-04 8.426572231999999519e-04 8.433837805999999616e-04 8.413581837000000396e-04 8.366439647999999616e-04 8.291691587000000162e-04 8.187843143000000067e-04 8.054083557000000235e-04 7.891649440999999685e-04 7.703861584000000051e-04 7.494857218999999944e-04 7.268169406000000434e-04 7.025969469000000259e-04 6.769090151999999569e-04 6.497862570999999969e-04 6.213484284000000187e-04 5.918880394000000222e-04 5.618225952999999573e-04 5.315605759000000376e-04 5.013941135000000385e-04 4.714720982999999910e-04 4.418471189000000208e-04 4.125752137999999882e-04 3.838115558999999843e-04 3.558203543999999795e-04 3.288904724999999860e-04 3.032409837000000141e-04 2.789843069000000125e-04 2.561431809999999989e-04 2.347022120999999882e-04 2.146753759000000108e-04 1.961349607000000103e-04 1.791631984999999985e-04 1.637810812000000077e-04 1.499321497999999873e-04 1.375142358000000075e-04 1.264146304000000095e-04 1.165474269999999953e-04 1.078817780000000009e-04 1.004080292999999990e-04 9.405698425000000621e-05 8.867629388999999883e-05 8.409528164999999439e-05 8.019052618000000550e-05 7.689793735999999604e-05 7.420063447999999365e-05 7.209858209999999682e-05 7.054539821000000484e-05 6.941233475999999936e-05 6.854816966000000598e-05 6.788190945999999463e-05 6.746265518000000086e-05 6.742435539000000467e-05 6.792882366000000413e-05 6.911280103999999536e-05 7.106280527999999546e-05 7.386126210000000481e-05 7.768045076000000624e-05 8.282488939999999673e-05 8.968387272000000133e-05 9.866557706999999860e-05 1.101751333999999983e-04 1.246224312999999874e-04 1.424354752000000102e-04 1.640771495999999985e-04 1.900400481999999977e-04 2.207908629999999993e-04 2.567062459999999843e-04 2.980796680999999956e-04 3.451986834000000124e-04 3.984024905999999813e-04 4.580602211000000049e-04 5.244992345000000326e-04 5.979342737999999774e-04 6.784228293999999913e-04 7.658751436999999872e-04 8.601395017000000110e-04 9.611151113000000485e-04 1.068802304000000076e-03 1.183259439000000071e-03 1.304513818999999963e-03 1.432478119000000008e-03 1.566901386000000077e-03 1.707389487999999914e-03 1.853512819000000065e-03 2.004949989000000179e-03 2.161573521000000053e-03 2.323421534000000028e-03 2.490571904999999871e-03 2.662987130999999816e-03 2.840412905999999908e-03 3.022385029000000146e-03 3.208345773999999977e-03 3.397824131000000154e-03 3.590587542000000121e-03 3.786644539000000049e-03 3.986055001999999625e-03 4.188667612999999804e-03 4.393968871000000255e-03 4.601132616999999668e-03 4.809252398000000116e-03 5.017672239000000277e-03 5.226229318999999797e-03 5.435201659000000150e-03 5.644973555000000129e-03 5.855671629000000315e-03 6.066983778000000112e-03 6.278207814999999838e-03 6.488535436999999691e-03 6.697484469999999933e-03 6.905155137999999942e-03 7.112019814999999585e-03 7.318401837999999673e-03 7.524071957999999873e-03 7.728169687999999864e-03 7.929413899999999613e-03 8.126558282999999175e-03 8.318907130000000733e-03 8.506475640000000366e-03 8.689608087999999356e-03 8.868399936999999192e-03 9.042341763999999296e-03 9.210268918999999985e-03 9.370627918000000098e-03 9.522098059999999434e-03 9.664223426000000464e-03 9.797454865999999721e-03 9.922553097000000669e-03 1.003994249999999935e-02 1.014942559999999945e-02 1.025024497000000083e-02 1.034153013000000017e-02 1.042309114000000009e-02 1.049596581000000056e-02 1.056211724000000012e-02 1.062355786999999961e-02 1.068164414000000000e-02 1.073680678000000013e-02 1.078867998000000022e-02 1.083676226000000048e-02 1.088137529999999922e-02 1.092404083999999956e-02 1.096684222999999916e-02 1.101144853999999965e-02 1.105856929000000044e-02 1.110789606999999964e-02 1.115848357999999971e-02 1.120966122000000009e-02 1.126193665000000017e-02 1.131693991999999961e-02 1.137640707000000043e-02 1.144118782000000042e-02 1.151085137000000015e-02 1.158378019999999932e-02 1.165780565000000026e-02 1.173133908000000003e-02 1.180410112000000039e-02 1.187664239000000080e-02 1.194922755000000017e-02 1.202115758000000048e-02 1.209068639000000084e-02 1.215530664999999941e-02 1.221261438000000032e-02 1.226148720000000067e-02 1.230240005999999955e-02 1.233643390999999978e-02 1.236406902000000002e-02 1.238471908999999940e-02 1.239682075000000071e-02 1.239830167999999948e-02 1.238760952000000047e-02 1.236466165000000075e-02 1.233062359999999996e-02 1.228676870999999976e-02 1.223368277000000046e-02 1.217115801000000046e-02 1.209833601000000029e-02 1.201425635999999950e-02 1.191894391000000025e-02 1.181401506999999948e-02 1.170196878000000044e-02 1.158499904000000018e-02 1.146447159000000063e-02 1.134094681999999951e-02 1.121438741000000024e-02 1.108486562000000029e-02 1.095353758999999955e-02 1.082275411999999992e-02 1.069510960000000059e-02 1.057257600000000020e-02 1.045629944000000047e-02 1.034660192999999929e-02 1.024321331000000064e-02 1.014615722000000025e-02 1.005662126000000066e-02 9.976704293000000431e-03 9.908379862999999732e-03 9.852853618000000091e-03 9.810482602999999469e-03 9.780845563999999298e-03 9.763234384999999738e-03 9.757677556000000571e-03 9.765495532000000381e-03 9.788700317000000040e-03 9.829028404000000191e-03 9.887467607999999783e-03 9.964096013000000793e-03 1.005812730999999967e-02 1.016862276999999995e-02 1.029552536999999920e-02 1.043980951999999920e-02 1.060257203000000009e-02 1.078416719000000086e-02 1.098393832999999993e-02 1.120021409999999960e-02 1.143066476000000053e-02 1.167331096999999970e-02 1.192741718999999929e-02 1.219324616000000069e-02 1.247104618000000054e-02 1.276032289999999916e-02 1.305954806999999954e-02 1.336609579999999999e-02 1.367680658999999993e-02 1.398917602000000066e-02 1.430201648000000055e-02 1.461487914999999929e-02 1.492704513999999934e-02 1.523697599999999930e-02 1.554212664999999986e-02 1.583906532999999894e-02 1.612431426000000140e-02 1.639555138000000148e-02 1.665198710000000137e-02 1.689359329000000159e-02 1.712005676999999934e-02 1.733008886999999956e-02 1.752113310999999993e-02 1.768976662999999921e-02 1.783297475999999840e-02 1.794938402000000044e-02 1.803928897999999836e-02 1.810360151999999834e-02 1.814272402000000062e-02 1.815585927999999877e-02 1.814087203999999870e-02 1.809502045999999975e-02 1.801640255000000121e-02 1.790495707000000145e-02 1.776208275000000156e-02 1.758932824000000034e-02 1.738722163000000140e-02 1.715478230000000090e-02 1.688989051000000172e-02 1.659057280000000162e-02 1.625655717999999889e-02 1.588985876000000019e-02 1.549393919999999918e-02 1.507232015000000043e-02 1.462770042000000048e-02 1.416184898999999983e-02 1.367614416999999964e-02 1.317254150999999998e-02 1.265431285999999919e-02 1.212576974000000030e-02 1.159112269999999952e-02 1.105356524000000035e-02 1.051527447999999962e-02 9.977995902000000653e-03 9.443634378000000454e-03 8.914602941000000780e-03 8.393732972000000556e-03 7.883681687000000313e-03 7.386401348000000248e-03 6.903381672000000017e-03 6.436435528000000392e-03 5.988091241999999974e-03 5.561236193000000314e-03 5.158451686999999952e-03 4.781424777999999758e-03 4.430641622000000036e-03 4.105757944999999937e-03 3.806678989999999919e-03 3.534430675000000202e-03 3.290896903000000047e-03 3.077676196000000194e-03 2.894994097000000172e-03 2.741199906000000002e-03 2.613023865999999917e-03 2.506694246000000167e-03 2.419380144999999909e-03 2.349802287999999944e-03 2.297528666000000011e-03 2.261746045000000063e-03 2.240486695000000125e-03 2.230626851999999941e-03 2.228696117000000029e-03 2.232364377999999927e-03 2.241767958000000054e-03 2.259581146999999936e-03 2.289768263000000002e-03 2.336031652000000128e-03 2.400864114999999924e-03 2.485558073999999829e-03 2.591273702000000071e-03 2.720667758999999967e-03 2.878748034999999844e-03 3.072062817000000175e-03 3.306969062000000067e-03 3.588377315999999838e-03 3.919493427000000051e-03 4.302413633999999792e-03 4.739399045999999859e-03 5.234083926000000254e-03 5.791368725000000002e-03 6.415893377999999994e-03 7.110570699000000328e-03 7.876300435999999267e-03 8.712535723999999260e-03 9.618130162999999691e-03 1.059225001999999916e-02 1.163467510000000017e-02 1.274485958999999925e-02 1.392065854000000026e-02 1.515827135000000041e-02 1.645334082999999961e-02 1.780192783999999875e-02 1.920087721999999900e-02 2.064771435999999960e-02 2.213976700999999853e-02 2.367278429999999934e-02 2.524065719999999888e-02 2.683700945999999837e-02 2.845706488000000062e-02 3.009799229000000020e-02 3.175778475999999767e-02 3.343347700000000311e-02 3.511923727999999995e-02 3.680554146000000054e-02 3.848077602999999680e-02 4.013435226999999966e-02 4.175853368000000121e-02 4.334763560999999737e-02 4.489568946999999977e-02 4.639404914999999824e-02 4.783006241999999963e-02 4.918814719999999724e-02 5.045343716000000311e-02 5.161548377999999881e-02 5.266904822000000042e-02 5.361181120999999883e-02 5.444109255000000036e-02 5.515142979999999862e-02 5.573415335000000276e-02 5.617959186000000271e-02 5.648076586999999787e-02 5.663564170000000286e-02 5.664618837999999684e-02 5.651546579999999764e-02 5.624499641999999855e-02 5.583358832000000216e-02 5.527807033999999897e-02 5.457594631999999890e-02 5.372848905000000147e-02 5.274196005000000159e-02 5.162633611999999789e-02 5.039306847000000339e-02 4.905337064999999719e-02 4.761749207000000317e-02 4.609525795000000287e-02 4.449783776999999968e-02 4.283942745000000191e-02 4.113724154000000105e-02 3.940985358000000105e-02 3.767521521000000151e-02 3.594921043999999705e-02 3.424496932999999965e-02 3.257329569999999758e-02 3.094411949999999883e-02 2.936776412000000058e-02 2.785489245000000169e-02 2.641541680000000086e-02 2.505739411999999972e-02 2.378641927999999850e-02 2.260566114000000029e-02 2.151671485000000023e-02 2.052090223999999963e-02 1.961998363000000065e-02 1.881577829000000146e-02 1.810937452999999975e-02 1.750073615000000138e-02 1.698868438000000064e-02 1.657094543999999836e-02 1.624429527000000040e-02 1.600477163999999841e-02 1.584765619000000000e-02 1.576731689000000075e-02 1.575743360999999967e-02 1.581158225999999833e-02 1.592345733999999888e-02 1.608646433000000125e-02 1.629325535000000075e-02 1.653566748999999933e-02 1.680503951999999870e-02 1.709302124999999978e-02 1.739293466000000135e-02 1.770082757000000090e-02 1.801506891000000110e-02 +0.000000000000000000e+00 1.098045087999999967e-11 2.813681244999999975e-05 1.090188794999999945e-05 4.169281264000000080e-04 1.251764690000000107e-03 1.523427812999999945e-03 8.724563367999999680e-04 1.862166737999999876e-04 2.139689969000000043e-05 4.885859669000000056e-05 3.010388863000000256e-04 1.166116673999999936e-03 2.063944842999999949e-03 1.936229357999999902e-03 9.866180774999999941e-04 3.113903725999999923e-04 2.095340148000000011e-04 3.900488171000000099e-04 1.081855028999999940e-03 2.334334598000000188e-03 3.102649195999999943e-03 2.555769900000000143e-03 1.407288505999999958e-03 7.685405318000000435e-04 7.862179179999999887e-04 1.313863788000000071e-03 2.501508352999999834e-03 3.841578630000000091e-03 4.112757584999999702e-03 3.065362944999999988e-03 1.844464178000000025e-03 1.345228863999999979e-03 1.518534461000000096e-03 2.328443189000000031e-03 3.776796619999999924e-03 4.980570515999999809e-03 4.828829556999999703e-03 3.566178691999999980e-03 2.445262806999999941e-03 2.125824189999999791e-03 2.555812025000000088e-03 3.736235042999999905e-03 5.315531947999999757e-03 6.142351960999999951e-03 5.471705153000000141e-03 4.026527172999999973e-03 3.003180169000000017e-03 2.814801066000000192e-03 3.424525675000000217e-03 4.789582199000000200e-03 6.257026718999999897e-03 6.629351478999999728e-03 5.562887592000000103e-03 4.051922910000000169e-03 3.167537500999999950e-03 3.210545122999999921e-03 4.157046682999999618e-03 5.768405326999999881e-03 7.124078447000000217e-03 7.187952340999999995e-03 6.066060721000000010e-03 4.891911774999999594e-03 4.537224692000000129e-03 5.171990106999999580e-03 6.697878200000000060e-03 8.637042634999999788e-03 9.912537683999999780e-03 9.735341915999999596e-03 8.580728685000000439e-03 7.636438120000000121e-03 7.605032599000000060e-03 8.541060304000000145e-03 1.023322527999999919e-02 1.204787086999999958e-02 1.296710704999999922e-02 1.254143586000000012e-02 1.147406670999999954e-02 1.082485428999999978e-02 1.107738913000000033e-02 1.222173638999999971e-02 1.400682674999999960e-02 1.569740781999999849e-02 1.630586435999999834e-02 1.559380404999999997e-02 1.439193249000000029e-02 1.368881985000000058e-02 1.390419310999999915e-02 1.505856839000000065e-02 1.684837759000000143e-02 1.838536152000000076e-02 1.866772138999999928e-02 1.763167204000000085e-02 1.623979785000000120e-02 1.548684428999999932e-02 1.580225837999999980e-02 1.717242294000000113e-02 1.904884664999999949e-02 2.026330632000000048e-02 1.988493926999999883e-02 1.824582598000000153e-02 1.660877230000000135e-02 1.597302801000000105e-02 1.660384716000000080e-02 1.821871497000000090e-02 1.994014598000000069e-02 2.051084824000000070e-02 1.936525026000000121e-02 1.732504483000000053e-02 1.578945635000000153e-02 1.554882687000000083e-02 1.659365755000000164e-02 1.836679047999999898e-02 1.977005157999999971e-02 1.966549101999999841e-02 1.799557158000000129e-02 1.599993626000000002e-02 1.502037837999999938e-02 1.549817717000000032e-02 1.708752831999999985e-02 1.895811463999999905e-02 1.991527552999999839e-02 1.912430446999999895e-02 1.704456474000000041e-02 1.511228327999999954e-02 1.441806024999999977e-02 1.508497429000000070e-02 1.659711305000000081e-02 1.801958886999999870e-02 1.820636494000000064e-02 1.668101569999999936e-02 1.431009458999999914e-02 1.257222069999999921e-02 1.228618635999999958e-02 1.331381872999999952e-02 1.495475842000000034e-02 1.614320476000000171e-02 1.585241533000000119e-02 1.400626471000000067e-02 1.173601720000000057e-02 1.036107860999999943e-02 1.038674728999999970e-02 1.153037393999999972e-02 1.305986987000000085e-02 1.391537531000000029e-02 1.325078053000000068e-02 1.129482348999999962e-02 9.279844114999999741e-03 8.329654203999999756e-03 8.713958784999999846e-03 1.001731286000000047e-02 1.142824331999999984e-02 1.195428441000000001e-02 1.106497422000000085e-02 9.278476290999999182e-03 7.730237216000000050e-03 7.183857695000000348e-03 7.696862898000000376e-03 8.897470693000000472e-03 1.010542709000000067e-02 1.048124689000000040e-02 9.648590824999999163e-03 8.125785788000000273e-03 6.844495477999999744e-03 6.385196228000000057e-03 6.807871963000000116e-03 7.814717755000000557e-03 8.770060995999999151e-03 8.927271413999999725e-03 8.036764202000000121e-03 6.605048020999999998e-03 5.412051182999999890e-03 4.961157029999999774e-03 5.375675463999999779e-03 6.400032251000000241e-03 7.351659233000000342e-03 7.459640772000000405e-03 6.523098909000000015e-03 5.102333577000000425e-03 4.004419278999999700e-03 3.730894763000000211e-03 4.323699311999999913e-03 5.385101278000000401e-03 6.190949137000000164e-03 6.120221093000000404e-03 5.175369548999999951e-03 3.989793152999999981e-03 3.292571785000000112e-03 3.440746584000000004e-03 4.338893800000000189e-03 5.527947033000000371e-03 6.349665053999999781e-03 6.335613914000000173e-03 5.613985610000000320e-03 4.831529428000000230e-03 4.609486022000000224e-03 5.145515512999999930e-03 6.254976078000000321e-03 7.526838073999999809e-03 8.418941035000000392e-03 8.537631037000000672e-03 8.021649913000000742e-03 7.485492348000000185e-03 7.479211323999999939e-03 8.137342089000000611e-03 9.295454555000000688e-03 1.061315349999999991e-02 1.156819794000000026e-02 1.175118583999999917e-02 1.132383592000000064e-02 1.090947742999999991e-02 1.099061590000000033e-02 1.167474427000000058e-02 1.289243823999999990e-02 1.434386665000000026e-02 1.536176384000000061e-02 1.540473216999999929e-02 1.470838762000000084e-02 1.404344775000000017e-02 1.395747051000000016e-02 1.460560932999999985e-02 1.594009966999999917e-02 1.750513845999999984e-02 1.841935299999999942e-02 1.820005951999999899e-02 1.735958567000000022e-02 1.677895532000000037e-02 1.690258948000000067e-02 1.781730875000000006e-02 1.939444425000000014e-02 2.092484060999999854e-02 2.138203301999999986e-02 2.055932695999999893e-02 1.935148814999999856e-02 1.868018742000000093e-02 1.883046571000000086e-02 1.981195406000000117e-02 2.135862981000000160e-02 2.252370723999999949e-02 2.234093654999999914e-02 2.101662589999999872e-02 1.965624926000000133e-02 1.899716741000000153e-02 1.919034761999999922e-02 2.026346868000000051e-02 2.173851775999999930e-02 2.235602730000000107e-02 2.129760154999999974e-02 1.925890456000000153e-02 1.755590345000000024e-02 1.685837287999999989e-02 1.734000310999999836e-02 1.892921125999999857e-02 2.066988964000000123e-02 2.100959851999999878e-02 1.952545333999999855e-02 1.745251982000000160e-02 1.615768873000000133e-02 1.613806327999999998e-02 1.746475361999999878e-02 1.971777808000000146e-02 2.143443069999999978e-02 2.115688888999999948e-02 1.918617859999999925e-02 1.717451353999999847e-02 1.627954375000000009e-02 1.676609708000000032e-02 1.859569298999999912e-02 2.099558521000000066e-02 2.224083687999999989e-02 2.131215965999999976e-02 1.918918324000000106e-02 1.757820217000000129e-02 1.727032460999999852e-02 1.836830965000000107e-02 2.067597838000000132e-02 2.302525542000000147e-02 2.367539620000000053e-02 2.226253708999999942e-02 2.023965366999999974e-02 1.906296684000000075e-02 1.918643327000000079e-02 2.069907250999999948e-02 2.324047917999999893e-02 2.531067571000000099e-02 2.536759566999999965e-02 2.369515466999999945e-02 2.195629291999999858e-02 2.129226925999999978e-02 2.197881276000000078e-02 2.403205137999999894e-02 2.670580893999999900e-02 2.825365897000000140e-02 2.761692653999999955e-02 2.570521064000000008e-02 2.413747488999999982e-02 2.369226563000000063e-02 2.457055601999999853e-02 2.670524756999999999e-02 2.900604555000000154e-02 2.971543993000000036e-02 2.834332566000000164e-02 2.620686515999999869e-02 2.478243360000000062e-02 2.467662685000000106e-02 2.606119738999999880e-02 2.853287011000000054e-02 3.054048034999999953e-02 3.048783757999999969e-02 2.854593635999999948e-02 2.634156325000000173e-02 2.518380886000000027e-02 2.553799740000000165e-02 2.742574792000000011e-02 3.002675435000000045e-02 3.156011447999999830e-02 3.086550331000000036e-02 2.871578835000000024e-02 2.682638661999999993e-02 2.627104593000000043e-02 2.735563557999999909e-02 2.985267158000000018e-02 3.255671654000000248e-02 3.368562483999999746e-02 3.260004108999999678e-02 3.046505342999999977e-02 2.888656527000000099e-02 2.872135418999999940e-02 3.020524009999999912e-02 3.294390619999999770e-02 3.550070158000000198e-02 3.620675079999999962e-02 3.483208175000000045e-02 3.274427012000000192e-02 3.145377608000000241e-02 3.174348653999999742e-02 3.377649058999999954e-02 3.684776314999999719e-02 3.921267960000000136e-02 3.934740502999999751e-02 3.748318199000000295e-02 3.525845958999999918e-02 3.416759400000000252e-02 3.489814589999999661e-02 3.739553431999999983e-02 4.055388218000000045e-02 4.241686413000000239e-02 4.178222420000000242e-02 3.943135575000000087e-02 3.725031213999999841e-02 3.663120758999999921e-02 3.802921089999999893e-02 4.103495939000000037e-02 4.414328002000000167e-02 4.537400546999999923e-02 4.403746134000000034e-02 4.144459293999999683e-02 3.953507633000000188e-02 3.945078286999999934e-02 4.141465191999999657e-02 4.474581605999999878e-02 4.765077491999999970e-02 4.823564068999999788e-02 4.634610144000000237e-02 4.372950873999999905e-02 4.230135992999999733e-02 4.296592879000000337e-02 4.569302948000000114e-02 4.943655193000000281e-02 5.214975843999999916e-02 5.224664417000000199e-02 5.021736479999999725e-02 4.805112389999999928e-02 4.738447994000000163e-02 4.883466990000000230e-02 5.220264517999999992e-02 5.616499422000000019e-02 5.853909537000000218e-02 5.814050307000000195e-02 5.604309186999999887e-02 5.437324896000000213e-02 5.453920028999999919e-02 5.693871295999999860e-02 6.106411720999999765e-02 6.517070929000000346e-02 6.708689303999999798e-02 6.624436858000000428e-02 6.419995925999999464e-02 6.294107760000000606e-02 6.357073134000000569e-02 6.636902606000000260e-02 7.059402475999999871e-02 7.416614434000000367e-02 7.506358058999999805e-02 7.336223947999999384e-02 7.103757296000000332e-02 7.001715288000000259e-02 7.122601517000000382e-02 7.466185828000000690e-02 7.903714705000000618e-02 8.197763847000000270e-02 8.195389224000000639e-02 7.978274693999999612e-02 7.759072546999999653e-02 7.701304049000000373e-02 7.877744014000000183e-02 8.265841438000000319e-02 8.695718198999999315e-02 8.922108609999999940e-02 8.847277197000000259e-02 8.610597665999999983e-02 8.434468004999999546e-02 8.469502516999999342e-02 8.768319772999999540e-02 9.256396228999999587e-02 9.707931071000000522e-02 9.890680390000000655e-02 9.780079123000000318e-02 9.563030992000000341e-02 9.456857476999999679e-02 9.595472397000000264e-02 1.000612302999999981e-01 1.055922863999999989e-01 1.098871111999999983e-01 1.109595693999999994e-01 1.093151983999999938e-01 1.072503603999999944e-01 1.069366499999999942e-01 1.094850529000000044e-01 1.146157857999999946e-01 1.203232783999999972e-01 1.238128750999999972e-01 1.237864961000000041e-01 1.215057940000000003e-01 1.194530783000000013e-01 1.196059594000000031e-01 1.227585964999999973e-01 1.281164261999999943e-01 1.332265281999999995e-01 1.354948709000000084e-01 1.343891641000000137e-01 1.317553599000000075e-01 1.301257403999999951e-01 1.312192595999999989e-01 1.353715399000000041e-01 1.411820397999999921e-01 1.459246818000000112e-01 1.474503628999999927e-01 1.459470861999999924e-01 1.435610048000000027e-01 1.426689959999999924e-01 1.446930674999999944e-01 1.495596228999999944e-01 1.554236328999999972e-01 1.595303432000000077e-01 1.602909436999999937e-01 1.585256815999999958e-01 1.565866635000000007e-01 1.566915185999999960e-01 1.599191171000000078e-01 1.656968162000000133e-01 1.717846372000000066e-01 1.755503327000000058e-01 1.759471824000000129e-01 1.742015671999999904e-01 1.726916896000000035e-01 1.734601668999999902e-01 1.772769128999999999e-01 1.831133191000000049e-01 1.884492271000000052e-01 1.909162681999999889e-01 1.900980771000000125e-01 1.877147532000000008e-01 1.862775906999999953e-01 1.876377506999999945e-01 1.920841523000000051e-01 1.980314081000000004e-01 2.027781117999999938e-01 2.043181491000000127e-01 2.027646596999999884e-01 2.001122127999999945e-01 1.988157517999999957e-01 2.003950733000000040e-01 2.045964194000000069e-01 2.093754133000000073e-01 2.120625872999999939e-01 2.112029098000000049e-01 2.075790237000000038e-01 2.035907939999999916e-01 2.016904861000000104e-01 2.030011084999999993e-01 2.066936591999999906e-01 2.103853867999999905e-01 2.115652101000000118e-01 2.092677652999999915e-01 2.047355029000000048e-01 2.005599788999999911e-01 1.990186617999999963e-01 2.007246850999999943e-01 2.042720507999999935e-01 +0.000000000000000000e+00 0.000000000000000000e+00 1.830075147000000035e-13 2.271339206999999938e-07 3.697562520999999752e-07 1.343033221999999912e-06 3.547050058999999842e-05 1.861336611999999996e-04 5.159842077000000330e-04 9.728372257999999507e-04 1.435700584000000092e-03 1.870900562999999912e-03 2.396687342000000144e-03 3.197327172999999984e-03 4.412280133000000097e-03 6.070971449999999596e-03 8.058617097999999299e-03 1.015841473000000071e-02 1.220399383000000081e-02 1.422303400000000072e-02 1.643257395999999856e-02 1.910539299000000094e-02 2.240138904000000056e-02 2.622779730000000115e-02 3.023218304999999995e-02 3.402154396999999830e-02 3.747324945000000268e-02 4.084126551000000216e-02 4.456187916999999887e-02 4.895723044999999995e-02 5.404702808999999747e-02 5.953321802000000051e-02 6.496362763000000651e-02 7.001722886000000257e-02 7.472294336000000203e-02 7.944106770999999345e-02 8.464057714000000621e-02 9.062771913000000623e-02 9.734821880999999788e-02 1.043732026000000063e-01 1.111471012999999952e-01 1.173695054000000043e-01 1.232033577999999963e-01 1.291453727000000107e-01 1.356938205999999869e-01 1.430453906999999969e-01 1.509661871999999905e-01 1.589076221000000066e-01 1.663357332000000022e-01 1.730712087000000066e-01 1.793997622999999875e-01 1.858969983000000048e-01 1.930966023000000031e-01 2.011757667000000083e-01 2.098318768000000112e-01 2.184723393000000125e-01 2.266286379999999934e-01 2.342919839000000004e-01 2.419289115000000101e-01 2.502013578000000238e-01 2.595871182000000221e-01 2.701049006999999835e-01 2.813024116000000241e-01 2.925459409000000233e-01 3.034388336000000130e-01 3.140824622000000232e-01 3.250147246999999795e-01 3.368794079999999913e-01 3.500209514000000022e-01 3.642462313000000007e-01 3.789283167999999979e-01 3.934037415000000149e-01 4.073827195999999984e-01 4.210930086999999933e-01 4.350988097999999860e-01 4.499384949999999939e-01 4.657907589999999987e-01 4.823531102999999987e-01 4.990113815000000175e-01 5.152011181000000217e-01 5.307346866000000052e-01 5.459025118000000454e-01 5.612995884999999463e-01 5.774713811999999669e-01 5.945742500999999791e-01 6.122601326000000066e-01 6.298691131000000443e-01 6.468125425999999845e-01 6.629148549000000168e-01 6.785207346999999611e-01 6.943025838999999921e-01 7.108565231000000262e-01 7.283093545000000057e-01 7.461889310000000552e-01 7.636719467999999456e-01 7.800826392999999914e-01 7.953346191000000287e-01 8.100150072999999784e-01 8.250231137000000325e-01 8.409777458999999622e-01 8.577876706000000517e-01 8.746874662000000411e-01 8.907288009999999590e-01 9.054064676999999950e-01 9.190029790000000531e-01 9.324181443000000291e-01 9.465903275000000505e-01 9.618856796000000431e-01 9.778515883999999714e-01 9.934965191000000306e-01 1.007923329999999895e+00 1.020909692999999896e+00 1.033049448000000092e+00 1.045351324000000082e+00 1.058556178999999986e+00 1.072623311000000079e+00 1.086724296000000090e+00 1.099754072000000082e+00 1.111030549999999950e+00 1.120719336000000066e+00 1.129698298999999961e+00 1.138960167000000023e+00 1.148956714000000101e+00 1.159302464999999893e+00 1.169009616000000085e+00 1.177100862999999942e+00 1.183219220000000016e+00 1.187849098999999908e+00 1.192006353000000018e+00 1.196596929999999892e+00 1.201847611000000038e+00 1.207160540000000060e+00 1.211490606999999997e+00 1.214023281000000010e+00 1.214716421000000102e+00 1.214338903000000025e+00 1.213984817000000049e+00 1.214399095999999956e+00 1.215546164000000040e+00 1.216667713000000095e+00 1.216775984000000088e+00 1.215278673000000031e+00 1.212353497000000058e+00 1.208847467000000009e+00 1.205775452999999997e+00 1.203726784000000105e+00 1.202530250999999994e+00 1.201386725000000100e+00 1.199409592000000080e+00 1.196232783999999993e+00 1.192271196999999949e+00 1.188463543999999983e+00 1.185701141000000014e+00 1.184332045999999972e+00 1.184029948999999915e+00 1.184068300999999934e+00 1.183805269000000049e+00 1.183076609000000001e+00 1.182276306999999971e+00 1.182116836999999920e+00 1.183233208999999952e+00 1.185841383999999943e+00 1.189626461000000024e+00 1.193937156000000055e+00 1.198183411999999892e+00 1.202181026999999958e+00 1.206227103000000023e+00 1.210893122999999960e+00 1.216687564000000110e+00 1.223771398000000010e+00 1.231865959000000066e+00 1.240406510999999989e+00 1.248862542999999992e+00 1.257043354999999973e+00 1.265220068000000087e+00 1.273992827999999911e+00 1.283951947000000038e+00 1.295312900000000100e+00 1.307775053000000076e+00 1.320730436999999924e+00 1.333680452999999932e+00 1.346564188000000106e+00 1.359797436000000026e+00 1.374026305999999975e+00 1.389749112000000064e+00 1.407027940000000088e+00 1.425474440999999981e+00 1.444519727999999947e+00 1.463779176999999931e+00 1.483280350000000025e+00 1.503437751999999961e+00 1.524799581999999987e+00 1.547708266000000110e+00 1.572090854000000038e+00 1.597527949999999919e+00 1.623536333999999970e+00 1.649851680999999903e+00 1.676554635000000015e+00 1.704013996000000031e+00 1.732683954000000082e+00 1.762843195000000085e+00 1.794429502000000065e+00 1.827083632999999985e+00 1.860360302999999993e+00 1.893965182000000080e+00 1.927901147999999898e+00 1.962454695999999998e+00 1.998009415000000066e+00 2.034789681999999988e+00 2.072709299000000005e+00 2.111404858000000218e+00 2.150396241000000153e+00 2.189299135999999812e+00 2.228027543000000055e+00 2.266864087000000083e+00 2.306289580000000061e+00 2.346651138999999997e+00 2.387901997999999804e+00 2.429583244999999891e+00 2.471055922000000127e+00 2.511871165000000072e+00 2.552066953999999832e+00 2.592163935999999946e+00 2.632830191000000042e+00 2.674455639000000051e+00 2.716921876999999874e+00 2.759679252000000194e+00 2.802083474999999879e+00 2.843833646000000215e+00 2.885235269999999907e+00 2.927053261999999823e+00 2.970029026000000183e+00 3.014416944999999792e+00 3.059846233000000026e+00 3.105563990999999913e+00 3.150916046999999942e+00 3.195791527999999992e+00 3.240724125999999927e+00 3.286555727000000093e+00 3.333910148999999823e+00 3.382833913999999886e+00 3.432782293999999901e+00 3.482938331000000165e+00 3.532728903999999837e+00 3.582245680999999848e+00 3.632244673999999840e+00 3.683684056999999790e+00 3.737122786000000030e+00 3.792365917000000142e+00 3.848551483000000051e+00 3.904657766999999780e+00 3.960175603999999794e+00 4.015494054000000368e+00 4.071677407000000137e+00 4.129774069999999853e+00 4.190137359000000394e+00 4.252177148000000351e+00 4.314690565000000255e+00 4.376617734999999954e+00 4.437761942999999931e+00 4.498940335000000346e+00 4.561428165999999784e+00 4.626110813999999571e+00 4.692917820999999989e+00 4.760853158999999835e+00 4.828594076999999984e+00 4.895330549999999725e+00 4.961307502000000369e+00 5.027668471000000139e+00 5.095710389999999812e+00 5.166074545999999934e+00 5.238368987000000310e+00 5.311421557000000071e+00 5.384036981000000388e+00 5.455810271999999905e+00 5.527427995000000038e+00 5.600231939000000381e+00 5.675382624000000042e+00 5.753187131999999870e+00 5.832953288999999764e+00 5.913426220999999927e+00 5.993583335000000289e+00 6.073308546999999891e+00 6.153476468000000033e+00 6.235389600999999615e+00 6.319963858999999573e+00 6.407160998000000163e+00 6.495986750000000143e+00 6.585090135999999816e+00 6.673630621000000041e+00 6.761821325999999743e+00 6.850756595000000004e+00 6.941680955999999902e+00 7.035212107999999631e+00 7.130965585000000218e+00 7.227772908000000385e+00 7.324388188000000355e+00 7.420263665000000231e+00 7.515875621000000173e+00 7.612391052000000435e+00 7.710918466999999943e+00 7.811798213000000324e+00 7.914334108000000256e+00 8.017163276999999866e+00 8.119092557000000099e+00 8.219856525000000858e+00 8.320262175999999954e+00 8.421637097999999710e+00 8.524963797999999926e+00 8.630229078999999359e+00 8.736380995999999399e+00 8.841956630000000317e+00 8.946005252000000851e+00 9.048686411000000263e+00 9.151145770999999485e+00 9.254777368999999254e+00 9.360344884999999948e+00 9.467487674999999214e+00 9.574930272999999659e+00 9.681297825999999773e+00 9.786011452000000332e+00 9.889662578999999454e+00 9.993643130000000596e+00 1.009929898999999942e+01 1.020712666000000013e+01 1.031648494999999954e+01 1.042600421999999938e+01 1.053444872999999937e+01 1.064148536999999983e+01 1.074788516999999999e+01 1.085505696999999969e+01 1.096419608999999973e+01 1.107553779000000027e+01 1.118817310999999926e+01 1.130057719999999932e+01 1.141154275999999967e+01 1.152093007000000036e+01 1.162975926999999920e+01 1.173958108000000067e+01 1.185149975000000033e+01 1.196545049000000027e+01 1.208020304999999972e+01 1.219411028000000030e+01 1.230613461000000086e+01 1.241650581000000031e+01 1.252659163999999947e+01 1.263804312000000074e+01 1.275173449999999953e+01 1.286717617000000047e+01 1.298279628000000052e+01 1.309692313999999946e+01 1.320884187000000054e+01 1.331924794999999939e+01 1.342980297000000078e+01 1.354207414000000043e+01 1.365653810999999962e+01 1.377227689000000055e+01 1.388753980999999982e+01 1.400081626000000057e+01 1.411177129999999913e+01 1.422146955999999918e+01 1.433172483999999969e+01 1.444396159999999973e+01 1.455830693000000053e+01 1.467349676000000080e+01 1.478766755999999916e+01 1.489954773999999915e+01 1.500929262000000008e+01 1.511841079999999948e+01 1.522882665999999929e+01 1.534170173000000048e+01 1.545676199999999945e+01 1.557251019999999997e+01 1.568716803999999954e+01 1.579979194000000042e+01 1.591089140999999962e+01 1.602214401999999893e+01 1.613536158999999870e+01 1.625135442999999924e+01 1.636940584999999970e+01 1.648769472000000036e+01 1.660442869999999971e+01 1.671898346000000046e+01 1.683229461000000171e+01 1.694624186000000066e+01 1.706245821999999990e+01 1.718133502999999962e+01 1.730179654000000156e+01 1.742194635999999974e+01 1.754021910000000162e+01 1.765636148000000105e+01 1.777161621999999852e+01 1.788796247999999878e+01 1.800687758000000116e+01 1.812838810999999950e+01 1.825101386000000048e+01 1.837268557999999885e+01 1.849208353999999943e+01 1.860950370000000120e+01 1.872666056999999995e+01 1.884559061999999940e+01 1.896739717000000169e+01 1.909159451000000018e+01 1.921641089999999963e+01 1.933987653000000151e+01 1.946105701999999837e+01 1.958065898999999987e+01 1.970061108000000161e+01 1.982287769999999938e+01 1.994822952000000171e+01 2.007572646999999932e+01 2.020327844999999911e+01 2.032898373000000092e+01 2.045237986000000063e+01 2.057476314999999900e+01 2.069838422999999850e+01 2.082506666000000095e+01 2.095509782999999970e+01 2.108704662999999968e+01 2.121864303999999990e+01 2.134821681000000027e+01 2.147579053999999843e+01 2.160310907999999941e+01 2.173257240999999951e+01 2.186572716999999955e+01 2.200224989000000164e+01 2.214009639000000007e+01 2.227678248999999866e+01 2.241098011000000056e+01 2.254335946000000135e+01 2.267613559999999850e+01 2.281165093999999982e+01 2.295089424000000022e+01 2.309285420999999872e+01 2.323511599000000061e+01 2.337535859999999843e+01 2.351281071000000011e+01 2.364872644000000079e+01 2.378558556000000124e+01 2.392552902999999986e+01 2.406899675000000016e+01 2.421442470999999941e+01 2.435922551999999897e+01 2.450143733000000168e+01 2.464095942999999878e+01 2.477958831000000117e+01 2.491987882999999826e+01 2.506356467000000166e+01 2.521049023999999861e+01 2.535870163999999960e+01 2.550566111999999919e+01 2.564983175000000060e+01 2.579162244999999842e+01 2.593310598000000056e+01 2.607670647000000130e+01 2.622366909000000135e+01 2.637325407000000155e+01 2.652317516000000097e+01 2.667101969000000139e+01 2.681573470000000015e+01 2.695823877000000124e+01 2.710081922000000176e+01 2.724571969000000138e+01 2.739376336000000123e+01 2.754383380000000159e+01 2.769355437999999836e+01 2.784076682999999974e+01 2.798487693999999948e+01 2.812721846999999897e+01 2.827021650000000008e+01 2.841586320000000043e+01 2.856443838999999940e+01 2.871429098000000124e+01 2.886284844000000049e+01 2.900820939999999837e+01 2.915029441000000077e+01 2.929085467999999892e+01 2.943236953999999983e+01 2.957650720999999905e+01 2.972307729999999992e+01 2.987013968000000119e+01 3.001522699999999944e+01 3.015690601000000015e+01 3.029568373000000037e+01 3.043370159999999913e+01 3.057341038999999938e+01 3.071603338999999977e+01 3.086078410000000005e+01 3.100536100000000062e+01 3.114740726999999865e+01 3.128598743999999954e+01 3.142216396999999972e+01 3.155835384999999960e+01 3.169686417000000134e+01 3.183848015999999959e+01 3.198198410999999908e+01 3.212493551000000025e+01 3.226522861000000120e+01 3.240243960000000101e+01 3.253812407000000206e+01 +0.000000000000000000e+00 0.000000000000000000e+00 1.820388512000000118e-07 1.949316547999999890e-09 1.835659695000000072e-06 1.153029472999999969e-05 3.576673243999999751e-05 7.910041913999999526e-05 1.420068822000000047e-04 2.207150739999999924e-04 3.087316432999999893e-04 3.992026884999999906e-04 4.869914638999999976e-04 5.696536955999999523e-04 6.471460942000000416e-04 7.207296093000000251e-04 7.918093385000000376e-04 8.612963849999999812e-04 9.296413845999999988e-04 9.972634849999999825e-04 1.064922221000000032e-03 1.133713457000000077e-03 1.204683884999999946e-03 1.278331994000000103e-03 1.354331284000000017e-03 1.431655401999999905e-03 1.509027687000000098e-03 1.585430894999999979e-03 1.660405850000000070e-03 1.734024779999999944e-03 1.806630231999999982e-03 1.878550367999999929e-03 1.949972113000000102e-03 2.021012960000000049e-03 2.091885869999999918e-03 2.162997547999999815e-03 2.234885766999999794e-03 2.308031638999999934e-03 2.382684312999999981e-03 2.458841100999999835e-03 2.536436459999999882e-03 2.615671346999999883e-03 2.697339018999999911e-03 2.783015259000000061e-03 2.875060340999999967e-03 2.976464827000000011e-03 3.090604424999999870e-03 3.220938299000000119e-03 3.370629492000000189e-03 3.542045707999999949e-03 3.736150864000000165e-03 3.951905979999999902e-03 4.185898409000000063e-03 4.432437447999999953e-03 4.684254510000000239e-03 4.933750593999999996e-03 5.174518488000000131e-03 5.402723031000000210e-03 5.617914629000000416e-03 5.822990658000000083e-03 6.023263596999999837e-03 6.224867196999999894e-03 6.432948231000000343e-03 6.650182287999999858e-03 6.876080433999999693e-03 7.107325145000000129e-03 7.339044014999999803e-03 7.566598271999999681e-03 7.787251490999999581e-03 8.001092405000000130e-03 8.210842822999999194e-03 8.420612812999999849e-03 8.634104365000000794e-03 8.853017304000000004e-03 9.076344709999999844e-03 9.300864213000000283e-03 9.522593302000000731e-03 9.738528259000000034e-03 9.947847481999999922e-03 1.015201005999999927e-02 1.035370864000000057e-02 1.055518746999999959e-02 1.075673828000000068e-02 1.095608535999999938e-02 1.114891649999999977e-02 1.133024057000000043e-02 1.149584839999999962e-02 1.164312944000000030e-02 1.177085838000000058e-02 1.187812323000000080e-02 1.196302443000000007e-02 1.202189554999999986e-02 1.204952289999999988e-02 1.204032353000000083e-02 1.198995683000000055e-02 1.189664368999999999e-02 1.176164455000000032e-02 1.158879103000000008e-02 1.138342692000000010e-02 1.115134469999999947e-02 1.089819489000000072e-02 1.062947971999999956e-02 1.035084556000000038e-02 1.006819685000000068e-02 9.787280457999999669e-03 9.512760048000000121e-03 9.247194327000000241e-03 8.990509614000000843e-03 8.740393823000000562e-03 8.493603770000000136e-03 8.247698447999999433e-03 8.002448080000000227e-03 7.760272414000000431e-03 7.525487340999999913e-03 7.302672425999999668e-03 7.094847880999999995e-03 6.902193378999999830e-03 6.721756726000000307e-03 6.548155515999999621e-03 6.374898922000000155e-03 6.195813028999999986e-03 6.006158600999999923e-03 5.803268454000000236e-03 5.586739892999999756e-03 5.358293921999999869e-03 5.121369903999999605e-03 4.880463528000000308e-03 4.640240200000000405e-03 4.404584964999999630e-03 4.175896170000000310e-03 3.954956033000000225e-03 3.741531232000000137e-03 3.535515882999999866e-03 3.338100145999999945e-03 3.152337362000000136e-03 2.982701635999999989e-03 2.833705075999999861e-03 2.708144931000000186e-03 2.605800002000000122e-03 2.523233280999999904e-03 2.454842134999999943e-03 2.394685441000000102e-03 2.338231226000000041e-03 2.283218397000000201e-03 2.229291164000000210e-03 2.176700191999999829e-03 2.124836293999999865e-03 2.071426117999999872e-03 2.012851521000000050e-03 1.945458292000000087e-03 1.867209893999999997e-03 1.778872166999999902e-03 1.684150842000000032e-03 1.588701789999999968e-03 1.498432656000000043e-03 1.417779775000000027e-03 1.348582348999999986e-03 1.289861816999999990e-03 1.238429316999999910e-03 1.189968600999999999e-03 1.140168454999999914e-03 1.085587204000000106e-03 1.024125495000000052e-03 9.551542765000000301e-04 8.794278554999999508e-04 7.989017024999999850e-04 7.165082577000000431e-04 6.358714384999999665e-04 5.609016402000000434e-04 4.952284829000000530e-04 4.414991636000000115e-04 4.006753678999999831e-04 3.715576743000000124e-04 3.507933891999999877e-04 3.335317473000000139e-04 3.146745652999999830e-04 2.903969536999999974e-04 2.594071743999999940e-04 2.234081492999999885e-04 1.864739303000000005e-04 1.534941247000000050e-04 1.282796421999999887e-04 1.121385784999999951e-04 1.035797203000000033e-04 9.931745666000000065e-05 9.615000697999999879e-05 9.285892839999999589e-05 9.125522881000000606e-05 9.589961765000000449e-05 1.126530642000000054e-04 1.467489311999999881e-04 2.012511027000000086e-04 2.765017350999999829e-04 3.706278019000000166e-04 4.806643355999999970e-04 6.036280572999999650e-04 7.370252030000000410e-04 8.786765931999999729e-04 1.026141401000000078e-03 1.176198896999999929e-03 1.324738481000000030e-03 1.467122376999999969e-03 1.598821624999999941e-03 1.716039621000000053e-03 1.816145390000000089e-03 1.897923297000000042e-03 1.961749048999999849e-03 2.009742666000000066e-03 2.045784332000000118e-03 2.075162938999999904e-03 2.103698297999999876e-03 2.136447911999999911e-03 2.176433569000000082e-03 2.223981881999999820e-03 2.277113009999999840e-03 2.332960945999999931e-03 2.389682080999999854e-03 2.447997759999999932e-03 2.511620076000000128e-03 2.586308548999999811e-03 2.677956598000000212e-03 2.790572791000000153e-03 2.925055899000000067e-03 3.079248269999999930e-03 3.249114373999999802e-03 3.430372028999999993e-03 3.619770022999999927e-03 3.815502806999999941e-03 4.016786692000000325e-03 4.223077375999999793e-03 4.433534486999999615e-03 4.647086754999999944e-03 4.862995103000000187e-03 5.081437708999999615e-03 5.303582145999999678e-03 5.530905586999999846e-03 5.764003636000000243e-03 6.001508826000000185e-03 6.239788413999999665e-03 6.473757584999999953e-03 6.698590735000000025e-03 6.911628349999999858e-03 7.113618173000000114e-03 7.308687989000000294e-03 7.503002249000000241e-03 7.702638161999999719e-03 7.911550814999999612e-03 8.130431203999999648e-03 8.356840872999999476e-03 8.586441926999999544e-03 8.814695650999999563e-03 9.038269204999999432e-03 9.255604173000000351e-03 9.466538740000000549e-03 9.671320078999999861e-03 9.869593944000000854e-03 1.005991795000000036e-02 1.024005453000000065e-02 1.040790538000000050e-02 1.056263298999999926e-02 1.070541067999999929e-02 1.083938760000000001e-02 1.096877582999999934e-02 1.109732515999999926e-02 1.122670262000000085e-02 1.135534506000000082e-02 1.147819544000000004e-02 1.158743505000000076e-02 1.167399843000000055e-02 1.172941788999999971e-02 1.174746320000000059e-02 1.172513755000000046e-02 1.166281767000000059e-02 1.156360002999999928e-02 1.143214111999999935e-02 1.127339190999999963e-02 1.109160051000000063e-02 1.088982099999999918e-02 1.066997631000000078e-02 1.043334731000000043e-02 1.018124936000000015e-02 9.915633615999999359e-03 9.639407798000000291e-03 9.356379386999999492e-03 9.070845182999999826e-03 8.786948751999999752e-03 8.507983792999999212e-03 8.235832803000000049e-03 7.970699568000000693e-03 7.711225640000000416e-03 7.454984807000000248e-03 7.199244425000000079e-03 6.941798911999999717e-03 6.681652526999999793e-03 6.419375526999999797e-03 6.157066919000000332e-03 5.897983267999999668e-03 5.645980832000000241e-03 5.404930740000000143e-03 5.178207488999999990e-03 4.968264806999999825e-03 4.776262952000000402e-03 4.601738406999999857e-03 4.442395624000000133e-03 4.294181803000000040e-03 4.151796299000000239e-03 4.009646989000000342e-03 3.863041380000000000e-03 3.709211928000000214e-03 3.547757625000000012e-03 3.380295963999999792e-03 3.209485711999999959e-03 3.037914019999999986e-03 2.867438648999999940e-03 2.699344291999999923e-03 2.535203121000000146e-03 2.377871091999999784e-03 2.231877397999999877e-03 2.102715072999999935e-03 1.995124498000000208e-03 1.911080611000000058e-03 1.848496493000000018e-03 1.801432949000000058e-03 1.761924603999999971e-03 1.722726310000000007e-03 1.679771926000000028e-03 1.633210188000000073e-03 1.586530949999999949e-03 1.544203826000000021e-03 1.508959192999999917e-03 1.479988882999999948e-03 1.452865952999999894e-03 1.421139404999999982e-03 1.378787645000000050e-03 1.322391497999999979e-03 1.252136445000000004e-03 1.171393962000000016e-03 1.085298931999999911e-03 9.990963830999999556e-04 9.169454146999999906e-04 8.414649593999999752e-04 7.738635806000000034e-04 7.142696037000000530e-04 6.619547717999999664e-04 6.154109309000000338e-04 5.724746999000000520e-04 5.307254516000000288e-04 4.881910606000000228e-04 4.441265271000000231e-04 3.994804029999999792e-04 3.567500820000000226e-04 3.192105520999999964e-04 2.898156044999999860e-04 2.702295482000000200e-04 2.603625255999999773e-04 2.585133214000000213e-04 2.619345707000000239e-04 2.674901391000000209e-04 2.721363636999999920e-04 2.731605601999999885e-04 2.683050983999999946e-04 2.559644066999999757e-04 2.355363272000000072e-04 2.078241537000000009e-04 1.752604007000000080e-04 1.417542710999999912e-04 1.121394326000000030e-04 9.140599956999999603e-05 8.400608521999999704e-05 9.345805127999999324e-05 1.222826734999999982e-04 1.721083782999999949e-04 2.437076380999999930e-04 3.368191064000000050e-04 4.498102149000000080e-04 5.794148548999999591e-04 7.208238189999999733e-04 8.682751520999999707e-04 1.016051477000000066e-03 1.159568349000000050e-03 1.296149590999999936e-03 1.425178852000000100e-03 1.547548482999999957e-03 1.664596123999999896e-03 1.776918861999999969e-03 1.883515277000000080e-03 1.981611274000000082e-03 2.067307152999999821e-03 2.136901844000000175e-03 2.188486285000000066e-03 2.223239369999999940e-03 2.245883143000000030e-03 2.263988864000000215e-03 2.286224474000000170e-03 2.320064704999999939e-03 2.369768258999999794e-03 2.435409236999999845e-03 2.513390998999999806e-03 2.598287540999999912e-03 2.685297431000000130e-03 2.772324287000000210e-03 2.860863017999999876e-03 2.955410642999999928e-03 3.061780337000000012e-03 3.185155612000000001e-03 3.328756505000000140e-03 3.493597152000000022e-03 3.679210747000000083e-03 3.884726459000000139e-03 4.109559672000000392e-03 4.353274094999999913e-03 4.614711631000000154e-03 4.890953213999999979e-03 5.176805357999999906e-03 5.465232294000000116e-03 5.748635493000000402e-03 6.020421086000000283e-03 6.276152406999999794e-03 6.513830709999999732e-03 6.733327947999999570e-03 6.935430771000000195e-03 7.121103547000000138e-03 7.291372968999999989e-03 7.447812013999999779e-03 7.593209216000000074e-03 7.731875903000000327e-03 7.869242012000000203e-03 8.010801822999999433e-03 8.160854594999999295e-03 8.321620219999999180e-03 8.493121343999999670e-03 8.673822093999999927e-03 8.861628364000000146e-03 9.054696164000000311e-03 9.251637878999999579e-03 9.451068414999999612e-03 9.650795642000000243e-03 9.847143717000000213e-03 1.003482275000000014e-02 1.020748328000000045e-02 1.035877426000000011e-02 1.048351951999999983e-02 1.057862350999999937e-02 1.064348017000000049e-02 1.067986915999999918e-02 1.069145955000000078e-02 1.068305202000000009e-02 1.065963464000000034e-02 1.062530369000000072e-02 1.058217646000000033e-02 1.052956290000000086e-02 1.046375540999999916e-02 1.037871926999999958e-02 1.026768682000000002e-02 1.012526933999999962e-02 9.949390924999999136e-03 9.742299588999999219e-03 9.510198683999999958e-03 9.261575311999999810e-03 9.004852016000000625e-03 8.746285713999999226e-03 8.488921463999999847e-03 8.232918779999999145e-03 7.976938022000000170e-03 7.719812500000000112e-03 7.461663282999999626e-03 7.203963768999999823e-03 6.948639965000000425e-03 6.696796147999999928e-03 6.447828580999999913e-03 6.199459132999999948e-03 5.948722671999999954e-03 5.693443002000000280e-03 5.433486795999999813e-03 5.171207046000000397e-03 4.910895174999999925e-03 4.657530011000000393e-03 4.415403703000000263e-03 4.187194101000000016e-03 3.973780282999999844e-03 3.774726647999999962e-03 3.589080146999999981e-03 3.416053819999999817e-03 3.255309731000000182e-03 3.106804826000000071e-03 2.970384114999999933e-03 2.845394691000000063e-03 2.730532482000000167e-03 2.623979136000000132e-03 2.523730737000000161e-03 2.427938923999999922e-03 2.335106928000000182e-03 2.244084395000000079e-03 2.153927635999999986e-03 2.063774644000000019e-03 1.972889047000000052e-03 1.880948476999999954e-03 1.788515997999999985e-03 1.697487801999999959e-03 1.611225452999999908e-03 diff --git a/tests/mesa_pd/kernel/cnt/VBondContactIntegration.ipynb b/tests/mesa_pd/kernel/cnt/VBondContactIntegration.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..3b4827b2ec29a124287a17dfbe5dba50b9e58fea --- /dev/null +++ b/tests/mesa_pd/kernel/cnt/VBondContactIntegration.ipynb @@ -0,0 +1,94 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "northern-indie", + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as pl\n", + "import numpy as np\n", + "import seaborn as sns\n", + "\n", + "%matplotlib inline\n", + "%config InlineBackend.figure_formats = ['svg']\n", + "\n", + "sns.set_context(\"talk\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "distant-tsunami", + "metadata": {}, + "outputs": [], + "source": [ + "energies = np.loadtxt('VBondContactEnergies.txt').transpose()\n", + "ref = np.loadtxt('VBondContactEnergies.ref.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "failing-studio", + "metadata": {}, + "outputs": [], + "source": [ + "pl.figure( figsize=(10,10) )\n", + "pl.subplot(221)\n", + "pl.title('tensile')\n", + "pl.plot(energies[1], label='MESA-PD')\n", + "pl.plot(ref[0], label='reference')\n", + "pl.legend()\n", + "\n", + "pl.subplot(222)\n", + "pl.title('shear')\n", + "pl.plot(energies[2])\n", + "pl.plot(ref[1])\n", + "\n", + "pl.subplot(223)\n", + "pl.title('bending')\n", + "pl.plot(energies[3])\n", + "pl.plot(ref[2])\n", + "\n", + "pl.subplot(224)\n", + "pl.title('twisting')\n", + "pl.plot(energies[4])\n", + "pl.plot(ref[3])\n", + "\n", + "pl.tight_layout()\n", + "pl.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "enormous-salvation", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/apps/benchmarks/CNT/VBondModel.cpp b/tests/mesa_pd/kernel/cnt/VBondContactIntegration.test.cpp similarity index 92% rename from apps/benchmarks/CNT/VBondModel.cpp rename to tests/mesa_pd/kernel/cnt/VBondContactIntegration.test.cpp index de90df0ce7a86159753f397a3d744213791f5161..5c956fe6106ca45940e4da6d7e17160ba89ade34 100644 --- a/apps/benchmarks/CNT/VBondModel.cpp +++ b/tests/mesa_pd/kernel/cnt/VBondContactIntegration.test.cpp @@ -20,7 +20,7 @@ // //====================================================================================================================== -#include "Accessor.h" +#include "SphericalSegmentAccessor.h" #include "mesa_pd/data/Flags.h" #include "mesa_pd/data/ParticleStorage.h" #include "mesa_pd/kernel/ParticleSelector.h" @@ -41,6 +41,12 @@ int main(int argc, char **argv) Environment env(argc, argv); walberla::mpi::MPIManager::instance()->useWorldComm(); + if (std::is_same<real_t, float>::value) + { + WALBERLA_LOG_WARNING("waLBerla build in sp mode: skipping test due to low precision"); + return EXIT_SUCCESS; + } + logging::Logging::instance()->setStreamLogLevel(logging::Logging::INFO); logging::Logging::instance()->setFileLogLevel(logging::Logging::INFO); @@ -49,7 +55,7 @@ int main(int argc, char **argv) WALBERLA_LOG_INFO_ON_ROOT("creating initial particle setup"); auto ps = std::make_shared<data::ParticleStorage>(10); - auto ac = Accessor(ps); + auto ac = SphericalSegmentAccessor(ps); for (auto i = 0; i < 10; ++i) { @@ -89,7 +95,7 @@ int main(int argc, char **argv) real_t bendingEnergy = 0_r; real_t twistingEnergy = 0_r; - std::ofstream fout("output.txt"); + std::ofstream fout("VBondContactEnergies.txt"); for (auto i = 0; i < numSimulationSteps; ++i) { vtkWriter->write(); @@ -119,10 +125,10 @@ int main(int argc, char **argv) if ((ac.getPosition(p_idx1) - ac.getPosition(p_idx2)).sqrLength() < cutoff2) { vbond(p_idx1, p_idx2, ac); - tensileEnergy += vbond.tensileEnergy; - shearEnergy += vbond.shearEnergy; - bendingEnergy += vbond.bendingEnergy; - twistingEnergy += vbond.twistingEnergy; + tensileEnergy += vbond.getLastTensileEnergy(); + shearEnergy += vbond.getLastShearEnergy(); + bendingEnergy += vbond.getLastBendingEnergy(); + twistingEnergy += vbond.getLastTwistingEnergy(); } }); @@ -151,10 +157,5 @@ int main(int argc, char **argv) int main(int argc, char *argv[]) { - if (std::is_same<walberla::real_t, float>::value) - { - WALBERLA_LOG_WARNING("waLBerla build in sp mode: skipping test due to low precision"); - return EXIT_SUCCESS; - } return walberla::main(argc, argv); }