diff --git a/doc/examples/POLREF/Ni58_d.dat b/doc/examples/POLREF/Ni58_d.dat new file mode 100644 index 000000000..b6918877b --- /dev/null +++ b/doc/examples/POLREF/Ni58_d.dat @@ -0,0 +1,310 @@ +1.002981050697613827e-02 7.330280282055269270e-01 1.936214197445139049e-02 +1.013010861204590059e-02 7.424184988930829787e-01 1.921294750859389028e-02 +1.023140969816635840e-02 7.872817134752805313e-01 1.954099487420863507e-02 +1.033372379514802333e-02 7.438879768394555114e-01 1.864688937372978653e-02 +1.043706103309950325e-02 7.955280569974489957e-01 1.926236186579857734e-02 +1.054143164343049680e-02 7.710933566858181321e-01 1.864968042179447616e-02 +1.064684595986480423e-02 7.240671562440467168e-01 1.777338914560670780e-02 +1.075331441946345175e-02 7.454613387089646936e-01 1.809612795400621088e-02 +1.086084756365808535e-02 7.684978010049440256e-01 1.793018747701436572e-02 +1.096945603929466717e-02 7.416218180128480997e-01 1.693305902602831522e-02 +1.107915059968761495e-02 7.631699272364569353e-01 1.678341258745070022e-02 +1.118994210568449027e-02 7.508875351552354305e-01 1.622464343535913109e-02 +1.130184152674133455e-02 8.077788229927659325e-01 1.665522566869784976e-02 +1.141485994200874821e-02 7.642564120375849868e-01 1.582154928794364188e-02 +1.152900854142883610e-02 7.256987092555468033e-01 1.517859277475095900e-02 +1.164429862684312339e-02 7.946553684420615271e-01 1.607511775467015264e-02 +1.176074161311155622e-02 7.312649476868221532e-01 1.510486503246639967e-02 +1.187834902924267064e-02 7.750241222418257081e-01 1.540177644532691840e-02 +1.199713251953509613e-02 7.642774934370130113e-01 1.520965685247210181e-02 +1.211710384473044765e-02 7.908985255194204145e-01 1.535452398346817682e-02 +1.223827488317775179e-02 7.496523798915128989e-01 1.454718565754911999e-02 +1.236065763200952863e-02 7.343906897926801847e-01 1.417793261204950556e-02 +1.248426420832962278e-02 7.863081952216377513e-01 1.482566659720691883e-02 +1.260910685041291904e-02 7.440414564224078209e-01 1.402340543045282363e-02 +1.273519791891705027e-02 7.618314076842607196e-01 1.389861008180275602e-02 +1.286254989810622050e-02 7.904730819100780348e-01 1.392103459084993722e-02 +1.299117539708728383e-02 7.538700061484787662e-01 1.315832398224785725e-02 +1.312108715105815560e-02 7.843389034959329376e-01 1.348012521003450447e-02 +1.325229802256873771e-02 7.958334422559105725e-01 1.340811139377655510e-02 +1.338482100279442429e-02 7.794700997348982252e-01 1.312846491433395865e-02 +1.351866921282236789e-02 7.668466863816254531e-01 1.304922894347654468e-02 +1.365385590495059309e-02 7.789165687858762288e-01 1.298714781809842504e-02 +1.379039446400009798e-02 7.794114284904729573e-01 1.268844949409421961e-02 +1.392829840864009960e-02 7.820598509357412631e-01 1.231801101547045849e-02 +1.406758139272649977e-02 7.796352197911593507e-01 1.195875528127969718e-02 +1.420825720665376546e-02 7.876970836918414376e-01 1.190232462034253140e-02 +1.435033977872030367e-02 7.676127752676444871e-01 1.163792344309103922e-02 +1.449384317650750584e-02 7.777515160256120996e-01 1.158234077478818153e-02 +1.463878160827258162e-02 7.852597250941462104e-01 1.150706036568109950e-02 +1.478516942435530862e-02 7.642443053111005469e-01 1.102713682088306800e-02 +1.493302111859886108e-02 7.931223816750535560e-01 1.109112220599183830e-02 +1.508235132978484952e-02 7.810685500168490503e-01 1.072870996564983040e-02 +1.523317484308269777e-02 7.594790057146721951e-01 1.047493152155237230e-02 +1.538550659151352584e-02 7.584180277494776412e-01 1.027204096199059100e-02 +1.553936165742866166e-02 7.674002929940616502e-01 1.029742252394525055e-02 +1.569475527400295001e-02 7.715145781838623762e-01 1.010815603335515032e-02 +1.585170282674297840e-02 7.859287760328008687e-01 1.006721290488810962e-02 +1.601021985501040884e-02 7.849234269487008753e-01 9.808388206402595885e-03 +1.617032205356051106e-02 7.824219000504074595e-01 9.830905454594991016e-03 +1.633202527409611735e-02 7.750428190479390356e-01 9.571797376544769267e-03 +1.649534552683707897e-02 7.752377500597764648e-01 9.401042044828371996e-03 +1.666029898210544952e-02 7.660670000467237895e-01 9.156360915055280353e-03 +1.682690197192650283e-02 7.848029459001366615e-01 9.087307852729931135e-03 +1.699517099164576939e-02 7.812067875240932269e-01 8.961581141593458893e-03 +1.716512270156222639e-02 7.699563618299897216e-01 8.722275281583010201e-03 +1.733677392857784980e-02 7.719056874269460966e-01 8.561900424482188007e-03 +1.751014166786362888e-02 7.814106523328147036e-01 8.517339583118918242e-03 +1.768524308454226535e-02 7.734393710430118585e-01 8.381375520971637294e-03 +1.786209551538768883e-02 7.712047582140882929e-01 8.176414193727984947e-03 +1.804071647054156582e-02 7.868192101884480261e-01 8.171704554698594469e-03 +1.822112363524697881e-02 7.745915101225180344e-01 8.007740714894354822e-03 +1.840333487159944922e-02 7.752873261535121463e-01 7.860922086695757566e-03 +1.858736822031544292e-02 7.744464314584983411e-01 7.780307960619147790e-03 +1.877324190251859759e-02 7.732414409241740172e-01 7.640274266918302415e-03 +1.896097432154378315e-02 7.785358273863673961e-01 7.569202628263599700e-03 +1.915058406475922056e-02 7.701883733327247183e-01 7.454981757089932694e-03 +1.934208990540681183e-02 7.805400490733261920e-01 7.384025992965260153e-03 +1.953551080446088231e-02 7.819763786212882151e-01 7.245644810367837807e-03 +1.973086591250549152e-02 7.841199296729809420e-01 7.187681793613428897e-03 +1.992817457163054834e-02 7.840371317694401210e-01 7.173712328266862968e-03 +2.012745631734685209e-02 7.747605930300887067e-01 6.953984264148629912e-03 +2.032873088052031957e-02 7.808566195198016757e-01 6.912833455831161183e-03 +2.053201818932552658e-02 7.734083689308615117e-01 6.768844379663812097e-03 +2.073733837121877893e-02 7.799902953096773395e-01 6.762744007825396801e-03 +2.094471175493096624e-02 7.715638739966134141e-01 6.624216807899816102e-03 +2.115415887248027482e-02 7.858856738665679353e-01 6.670447531667231429e-03 +2.136570046120507896e-02 7.739881717282878215e-01 6.564139565910545940e-03 +2.157935746581712833e-02 7.947003200526974176e-01 6.654593257600205369e-03 +2.179515104047529891e-02 7.646069445799998920e-01 6.291395210812153298e-03 +2.201310255088004958e-02 7.772909791543984870e-01 6.270596756718098581e-03 +2.223323357638885139e-02 7.717156533686484465e-01 6.141473555847012239e-03 +2.245556591215273901e-02 7.826419655496184014e-01 6.145147475409378640e-03 +2.268012157127426848e-02 7.722740176468473328e-01 5.999573950163262538e-03 +2.290692278698701345e-02 7.592680806416638450e-01 5.890552710493358879e-03 +2.313599201485688067e-02 7.541249524961766149e-01 5.854974426497198438e-03 +2.336735193500544955e-02 7.364710312875319964e-01 5.719529477701936274e-03 +2.360102545435550578e-02 7.100858345616670730e-01 5.574290516689582586e-03 +2.383703570889906045e-02 6.513387238606783702e-01 5.183263607334918054e-03 +2.407540606598804894e-02 5.564187369508747372e-01 4.574893633047037549e-03 +2.431616012664793158e-02 4.292569341355331747e-01 3.774991317884947208e-03 +2.455932172791441132e-02 3.081677217290445525e-01 2.967945638159399501e-03 +2.480491494519355272e-02 2.731246448461882581e-01 2.750262022425503140e-03 +2.505296409464548985e-02 2.992838258295995035e-01 2.888193066724549767e-03 +2.530349373559194481e-02 3.216411605680353780e-01 2.980403215157547553e-03 +2.555652867294786607e-02 3.183309367603189832e-01 2.931983739715481561e-03 +2.581209395967734577e-02 2.918097564662304744e-01 2.721302665460246465e-03 +2.607021489927411825e-02 2.395099166288707226e-01 2.334760637651372202e-03 +2.633091704826685808e-02 1.707067227701373757e-01 1.863282883035171202e-03 +2.659422621874953097e-02 1.029344544303919945e-01 1.348732668434613055e-03 +2.686016848093702308e-02 6.074526254233035549e-02 9.867123380382595427e-04 +2.712877016574639227e-02 5.327500921448954235e-02 8.926748230897967170e-04 +2.740005786740385557e-02 6.974383305729686677e-02 1.045019217502166997e-03 +2.767405844607789822e-02 9.848530696309963639e-02 1.252423327416200393e-03 +2.795079903053867415e-02 1.206843187143757379e-01 1.387675989939086757e-03 +2.823030702084406221e-02 1.375844953422311889e-01 1.477012123024743374e-03 +2.851261009105250308e-02 1.395663119066343494e-01 1.471714017549682679e-03 +2.879773619196302620e-02 1.291330406198365477e-01 1.387555585140578304e-03 +2.908571355388265764e-02 1.081060319176967016e-01 1.213981022199978228e-03 +2.937657068942148286e-02 8.306981408000485567e-02 1.009226105064807118e-03 +2.967033639631570102e-02 5.549666082654717419e-02 7.680010843279735672e-04 +2.996703976027885463e-02 3.511035070902535082e-02 5.912168540495007021e-04 +3.026671015788164748e-02 1.858721716260166440e-02 4.082615487275008154e-04 +3.056937725946046180e-02 1.458842079260166263e-02 3.562115391586548915e-04 +3.087507103205506392e-02 1.841110489607843126e-02 4.008979755802677685e-04 +3.118382174237561283e-02 2.819268052452499410e-02 4.942223245719302039e-04 +3.149565995979937416e-02 3.954675719237069759e-02 5.862291793210040779e-04 +3.181061655939736166e-02 4.910328977399721490e-02 6.526782923350738603e-04 +3.212872272499133625e-02 5.517036708720172294e-02 6.901968998300664869e-04 +3.245000995224124607e-02 5.715814210809098267e-02 6.954015382257136774e-04 +3.277451005176366255e-02 5.188556446873916761e-02 6.321929305667347340e-04 +3.310225515228129578e-02 4.640065767086094806e-02 5.865205907906804713e-04 +3.343327770380410957e-02 3.550512219158194482e-02 4.898734982537889665e-04 +3.376761048084215427e-02 2.465986683802391319e-02 3.917601976229612387e-04 +3.410528658565057519e-02 1.568176011388118518e-02 2.981439461648518791e-04 +3.444633945150708115e-02 8.982575657039700012e-03 2.224348117075650459e-04 +3.479080284602215078e-02 5.253663782692378353e-03 1.668399311253679774e-04 +3.513871087448237895e-02 5.927261109695414719e-03 1.745926255819910198e-04 +3.549009798322719927e-02 9.806179329821319499e-03 2.185496041882034396e-04 +3.584499896305946842e-02 1.378352814425150979e-02 2.569680044137931125e-04 +3.620344895269006491e-02 1.847908421745218452e-02 2.967221118332995884e-04 +3.656548344221696722e-02 2.194476149613747845e-02 3.220463742130632461e-04 +3.693113827663913051e-02 2.322738844592216537e-02 3.280827139289030771e-04 +3.730044965940552959e-02 2.286061772609729661e-02 3.202342279487655190e-04 +3.767345415599958336e-02 2.101034655503296322e-02 3.009510429744310196e-04 +3.805018869755957822e-02 1.698930849628986842e-02 2.660504689516964200e-04 +3.843069058453517373e-02 1.209495528884836808e-02 2.157685941274343957e-04 +3.881499749038051783e-02 7.877774750911155019e-03 1.676350792824303829e-04 +3.920314746528432565e-02 4.617885642197154354e-03 1.246728509663025115e-04 +3.959517893993716453e-02 2.912677708527687710e-03 9.834221015100403545e-05 +3.999113072933653534e-02 2.746290769985065480e-03 9.484192279651809535e-05 +4.039104203662990250e-02 4.014937039491050727e-03 1.116671945448984878e-04 +4.079495245699620021e-02 6.029138809049575456e-03 1.356064909029771248e-04 +4.120290198156616179e-02 8.190753340261501536e-03 1.568914391755217542e-04 +4.161493100138181911e-02 9.595707296033682138e-03 1.680376753733163584e-04 +4.203108031139564382e-02 1.036820917180290846e-02 1.731861578800117764e-04 +4.245139111450960123e-02 1.007439810184179718e-02 1.679951405657624736e-04 +4.287590502565469253e-02 9.033151254235319977e-03 1.572928466799086223e-04 +4.330466407591124223e-02 7.352769349219122688e-03 1.395870245666640415e-04 +4.373771071667036103e-02 5.162352443579709682e-03 1.126923270339204091e-04 +4.417508782383706978e-02 3.468390280022550735e-03 9.011601911499248255e-05 +4.461683870207543839e-02 2.043323083226101459e-03 6.771280840703334982e-05 +4.506300708909619090e-02 1.559520544942631388e-03 5.811869030798478701e-05 +4.551363715998715809e-02 1.772946919700626274e-03 5.989692787385214449e-05 +4.596877353158702884e-02 2.677141260025253568e-03 7.329081958888819623e-05 +4.642846126690290676e-02 3.666908747543148016e-03 8.566098740963072004e-05 +4.689274587957192875e-02 4.388384079732265443e-03 9.216933769464006471e-05 +4.736167333836765331e-02 4.856835369328015538e-03 9.651117966695565466e-05 +4.783529007175132963e-02 4.780713401745863809e-03 9.461854862990549747e-05 +4.831364297246884543e-02 4.377095716284970690e-03 8.934218899319700045e-05 +4.879677940219352694e-02 3.486055053271880887e-03 7.827243735811552914e-05 +4.928474719621546429e-02 2.637208854446882866e-03 6.633941815619954303e-05 +4.977759466817761880e-02 1.731061442106655857e-03 5.383155878658061222e-05 +5.027537061485939929e-02 1.134976025958563638e-03 4.241098861541356814e-05 +5.077812432100799189e-02 9.763903628048703964e-04 3.888619690404805922e-05 +5.128590556421806779e-02 1.300536423934508514e-03 4.334597503069694121e-05 +5.179876461986025055e-02 1.610663402016778399e-03 4.753315532881992935e-05 +5.231675226605884965e-02 2.154966154293718773e-03 5.436052970246580399e-05 +5.283991978871943607e-02 2.399653692430111802e-03 5.733946081172328047e-05 +5.336831898660663459e-02 2.451766967554894032e-03 5.721529526540989377e-05 +5.390200217647270198e-02 2.227167762748605544e-03 5.411443276862870351e-05 +5.444102219823743205e-02 1.807217959127271597e-03 4.855736035398213721e-05 +5.498543242021980415e-02 1.454406523688492195e-03 4.241088417979424274e-05 +5.553528674442199942e-02 9.813461931372554486e-04 3.414741014440015590e-05 +5.609063961186622205e-02 7.532135996391244601e-04 2.948322232415814627e-05 +5.665154600798488760e-02 7.012572380806146284e-04 2.794853509408858671e-05 +5.721806146806473342e-02 7.771553235777523428e-04 2.904504686728343800e-05 +5.779024208274538554e-02 1.059730451634295981e-03 3.348398526451178646e-05 +5.836814450357283302e-02 1.169038296307321626e-03 3.455274737504140210e-05 +5.895182594860856606e-02 1.388088351148267577e-03 3.700815612809192943e-05 +5.954134420809464867e-02 1.257815096357156213e-03 3.463582528480189910e-05 +6.013675765017559294e-02 1.120319974466654116e-03 3.211402177784241919e-05 +6.073812522667734748e-02 8.678022690329872772e-04 2.794172869858884480e-05 +6.134550647894412845e-02 6.520208410042558278e-04 2.391285332304160581e-05 +6.195896154373356501e-02 4.897888890646553452e-04 2.072216711651970482e-05 +6.257855115917090871e-02 4.579304139384705245e-04 1.981757960195356663e-05 +6.320433667076261197e-02 5.415598024399560046e-04 2.102000243742502649e-05 +6.383638003747024725e-02 6.547732148038251047e-04 2.279826499545694810e-05 +6.447474383784493335e-02 7.667668737037411884e-04 2.455654779966002387e-05 +6.511949127622339295e-02 7.695299321922156963e-04 2.416414657071059348e-05 +6.577068618898562757e-02 7.085501610783899494e-04 2.269939712451517818e-05 +6.642839305087547275e-02 6.156451615759119976e-04 2.089000150928077635e-05 +6.709267698138424163e-02 4.607121623228928146e-04 1.782293610593658472e-05 +6.776360375119808155e-02 3.899997713052176431e-04 1.616139037230997444e-05 +6.844123978871005654e-02 3.267151278531543247e-04 1.460018198041135038e-05 +6.912565218659716404e-02 3.452670365094637054e-04 1.485353271340989845e-05 +6.981690870846313235e-02 3.654571902016810867e-04 1.528811482279843865e-05 +7.051507779554777589e-02 4.346692615618508409e-04 1.635855228357244962e-05 +7.122022857350325531e-02 4.682213908558078988e-04 1.688716032374847477e-05 +7.193243085923828328e-02 4.478670515540233792e-04 1.636962715960284763e-05 +7.265175516783066445e-02 3.824165369493857307e-04 1.499428136264525837e-05 +7.337827271950897456e-02 2.929984715457706270e-04 1.301120893643341941e-05 +7.411205544670407264e-02 2.693438617915804934e-04 1.241056920999069887e-05 +7.485317600117111225e-02 2.318091034795509127e-04 1.140697346606672365e-05 +7.560170776118281533e-02 2.299134502877448545e-04 1.130526429359188710e-05 +7.635772483879464667e-02 2.619876397776441492e-04 1.182727614598402825e-05 +7.712130208718259716e-02 3.138603120015222270e-04 1.286370749945077099e-05 +7.789251510805442202e-02 2.598934740028068673e-04 1.155148982150466783e-05 +7.867144025913497263e-02 2.513286763082536387e-04 1.119357272335433348e-05 +7.945815466172631569e-02 2.234848993171245982e-04 1.053111550527134412e-05 +8.025273620834358357e-02 1.767264059644482169e-04 9.467501721226773785e-06 +8.105526357042701358e-02 1.691431978753886716e-04 9.183554461113603554e-06 +8.186581620613128663e-02 1.503770022311503370e-04 8.745235672678214570e-06 +8.268447436819259533e-02 1.677302399767367465e-04 9.070366885110726324e-06 +8.351131911187453793e-02 1.980364851948959650e-04 9.650027870614652446e-06 +8.434643230299326833e-02 1.852920214366163038e-04 9.317039114225193996e-06 +8.518989662602320656e-02 1.499599307908415025e-04 8.324185747479697554e-06 +8.604179559228344876e-02 1.314014971377320878e-04 7.800622562199827575e-06 +8.690221354820627797e-02 1.054289625116280383e-04 6.921516600694654900e-06 +8.777123568368833118e-02 1.053753717786328495e-04 6.810053312903083097e-06 +8.864894804052522725e-02 1.119312704563472146e-04 6.821102449234906479e-06 +8.953543752093047481e-02 1.322337789811300001e-04 7.339445379596633867e-06 +9.043079189613978386e-02 1.283597341106908923e-04 7.151014339695089045e-06 +9.133509981510118392e-02 9.335388611452165558e-05 6.160788141087810660e-06 +9.224845081325219742e-02 1.004221458352736753e-04 6.330769298006953112e-06 +9.317093532138472078e-02 7.765488043420873258e-05 5.645973506495896344e-06 +9.410264467459857063e-02 8.162236324135722562e-05 5.661924443398569444e-06 +9.504367112134455564e-02 1.017280267137267566e-04 6.251952856985292977e-06 +9.599410783255798996e-02 1.020539115589025867e-04 6.238117984265380984e-06 +9.695404891088357791e-02 8.062778824555101055e-05 5.622517184018380224e-06 +9.792358939999240564e-02 7.102583527053819249e-05 5.293125974455844092e-06 +9.890282529399233025e-02 6.813184355826474637e-05 5.034734479188021490e-06 +9.989185354693225216e-02 7.137485997839302016e-05 5.195105027377643025e-06 +1.008907720824015752e-01 7.057281647160351667e-05 5.137647265988472609e-06 +1.018996798032255902e-01 7.675439273484048876e-05 5.324466293957331068e-06 +1.029186766012578497e-01 6.913165882648532312e-05 5.033449576254600536e-06 +1.039478633672704377e-01 6.053859667478866100e-05 4.659405605353663913e-06 +1.049873420009431318e-01 4.936121714021242407e-05 4.267931001957409334e-06 +1.060372154209525686e-01 4.674057165034654199e-05 4.180721660600625832e-06 +1.070975875751620787e-01 4.464585354224274777e-05 4.155835080890959516e-06 +1.081685634509137045e-01 4.768118259889287427e-05 4.354149443848274115e-06 +1.092502490854228431e-01 4.564484919597203074e-05 4.258578843619183407e-06 +1.103427515762770705e-01 4.414959412098914791e-05 4.082661608612003712e-06 +1.114461790920398404e-01 2.946402815509966533e-05 3.404609833643232976e-06 +1.125606408829602501e-01 3.486466558000047368e-05 3.573814195825578365e-06 +1.136862472917898464e-01 3.925685636139352532e-05 3.796817661239815164e-06 +1.148231097647077481e-01 3.492076787180431317e-05 3.575930526868578416e-06 +1.159713408623548186e-01 2.989681194920179865e-05 3.378044034330096741e-06 +1.171310542709783631e-01 3.131405474992854105e-05 3.396466292030062597e-06 +1.183023648136881656e-01 3.023648299109089503e-05 3.272203834212763159e-06 +1.194853884618250484e-01 2.937054532130156472e-05 3.204211779238931707e-06 +1.206802423464432839e-01 2.511961625981274995e-05 2.978766884919398264e-06 +1.218870447699077209e-01 2.635860065974839796e-05 2.952304441884318069e-06 +1.231059152176068039e-01 2.913788954918732752e-05 3.151074274968107682e-06 +1.243369743697828878e-01 2.459814732076009066e-05 2.888900719738479907e-06 +1.255803441134807075e-01 2.124441485624542774e-05 2.736663068640498635e-06 +1.268361475546155304e-01 2.336507463876444875e-05 2.772070136930589555e-06 +1.281045090301616840e-01 1.727823125888399715e-05 2.464297357128315650e-06 +1.293855541204632642e-01 1.779240999975438751e-05 2.468449343570141163e-06 +1.306794096616679113e-01 2.036335067118101859e-05 2.647409555907994637e-06 +1.319862037582845982e-01 1.777171170717303680e-05 2.438983366622952790e-06 +1.333060657958674566e-01 1.698748801765785198e-05 2.402995319852737050e-06 +1.346391264538261134e-01 1.655746091485642290e-05 2.414188217409149562e-06 +1.359855177183643682e-01 1.649789047816291876e-05 2.378764839236609791e-06 +1.373453728955480457e-01 1.266273831193601764e-05 2.201987343437221238e-06 +1.387188266245035217e-01 1.511713114394918138e-05 2.291992982737297277e-06 +1.401060148907485314e-01 2.096846206933557626e-05 2.632507003668304218e-06 +1.415070750396560384e-01 1.047615484122052476e-05 2.055114483174406777e-06 +1.429221457900525794e-01 1.066979418487062025e-05 2.011483842891142794e-06 +1.443513672479531107e-01 1.040914158356007319e-05 2.035459398539187005e-06 +1.457948809204326346e-01 9.265214965938172638e-06 1.967267115226693151e-06 +1.472528297296369360e-01 1.235251393983847596e-05 2.096003377656729839e-06 +1.487253580269333186e-01 1.048663758972928307e-05 2.012960227420739764e-06 +1.502126116072026729e-01 1.215055251343980087e-05 2.112270910323698531e-06 +1.517147377232747063e-01 7.880361293900176704e-06 1.818196232191432310e-06 +1.532318851005074478e-01 7.472671962016670648e-06 1.812647735517314214e-06 +1.547642039515125245e-01 7.512953762202556587e-06 1.825875318096739843e-06 +1.563118459910276536e-01 2.773279262346573839e-06 1.522066910985690796e-06 +1.578749644509379324e-01 7.466344365805451979e-06 1.751299428059455474e-06 +1.594537140954473131e-01 3.478692290829746724e-06 1.461953910418763594e-06 +1.610482512364017904e-01 6.310704170563981723e-06 1.689383021211634574e-06 +1.626587337487658269e-01 3.304514791654456887e-06 1.536540039130894862e-06 +1.642853210862534885e-01 5.441760944400779491e-06 1.709835073432284520e-06 +1.659281742971160101e-01 5.101591870592408852e-06 1.756971930726316673e-06 +1.675874560400871793e-01 3.449064727240223828e-06 1.534267470969891921e-06 +1.692633306004880378e-01 4.058615019277138956e-06 1.608972683711762082e-06 +1.709559639064929248e-01 2.748177721491532134e-06 1.461026885014348609e-06 +1.726655235455578641e-01 5.112962809070757835e-06 1.704745728769629201e-06 +1.743921787810134294e-01 4.223539937037318382e-06 1.684078147913856360e-06 +1.761361005688235615e-01 3.383719630700604828e-06 1.664053147858801049e-06 +1.778974615745118060e-01 1.133800598746720635e-06 1.534195549435477122e-06 +1.796764361902569163e-01 2.756839003966684972e-06 1.502835557690069860e-06 +1.814732005521594860e-01 1.509343278791626425e-07 1.343504134642535153e-06 +1.832879325576810825e-01 5.018112103433453691e-06 1.831651789674323033e-06 +1.851208118832579075e-01 1.182286667148288695e-06 1.426976590759627672e-06 +1.869720200020904555e-01 2.149422459969368605e-06 1.506765042878560731e-06 +1.888417402021113634e-01 1.577347430063498481e-06 1.498668362628286000e-06 +1.907301576041324775e-01 1.661366331477357738e-06 1.538780514780319604e-06 +1.926374591801738312e-01 2.511267011267096035e-06 1.753842338326077295e-06 +1.945638337719755584e-01 2.272661975269368429e-06 1.725617463680871948e-06 +1.965094721096953267e-01 4.808962653675773876e-07 1.441572551523518401e-06 +1.984745668307922595e-01 2.433021934556507408e-06 1.702964540296707120e-06 +2.004593124991001785e-01 1.071518145005628213e-06 1.664956371442146717e-06 +2.024639056240911672e-01 3.591374758756577616e-06 1.989362012411419798e-06 +2.044885446803320905e-01 3.221158957963749245e-08 1.360891547796676315e-06 +2.065334301271354034e-01 3.487055025808921385e-06 2.013145483121405838e-06 +2.085987644284067466e-01 2.358122962873788170e-06 2.092145333163071486e-06 +2.106847520726908007e-01 2.365146128950737371e-06 2.090854423254883346e-06 +2.127915995934177018e-01 4.524699308504542470e-06 2.313131984911938446e-06 +2.149195155893518783e-01 7.471039167274095850e-07 1.816566628509189585e-06 +2.171750304146550237e-01 3.486741248170604427e-06 2.235995130048871022e-06 diff --git a/doc/examples/POLREF/Ni58_model.py b/doc/examples/POLREF/Ni58_model.py new file mode 100644 index 000000000..2b6af35b0 --- /dev/null +++ b/doc/examples/POLREF/Ni58_model.py @@ -0,0 +1,69 @@ +from refl1d.names import * +from refl1d.probe.data_loaders.polref_legacy_data_loader import load_probe_polref + +dQoQ = 0.01 +theta = 0.25 +probe = load_probe_polref( + filename="Ni58", + angle=0.25, + dQoQ=0.01, + name="Ni58", + pol_mode="pnr", + intensity=1.0, + background=1e-7, + back_reflectivity=False, +) + +probe.pp.intensity.range(1e-1, 10) +probe.pp.background.range(1e-9, 1e-3) +probe.pp.sample_broadening.range(-(dQoQ * theta), 0.03) + +# Set materials/SLDs +Si = Material(formula="Si") +Ni = Material(formula="Ni[58]") + + +Si_sub = Slab(material=Si, thickness=0, interface=5) +Ni_layer = Slab(material=Ni, thickness=1200, interface=5) + +# Sample construction/Stack + +sample = ( + Si_sub + | Ni_layer(magnetism=Magnetism(rhoM=2.0, interface_above=5, interface_below=5, name="Ni Layer Sample 1")) + | air +) + + +# Fit params + +Ni.density.pmp(-50, 0) + +sample[Ni].magnetism.rhoM.range(0, 5) +sample[Ni].magnetism.dead_above.range(0, 100) +sample[Ni].magnetism.dead_below.range(0, 100) +sample[Ni].magnetism.interface_above.range(0, 50) +sample[Ni].magnetism.interface_below.range(0, 50) + +sample[Ni].magnetism.rhoM.tags = ["magnetism", "sample"] +sample[Ni].magnetism.dead_above.tags = ["magnetism", "sample"] +sample[Ni].magnetism.dead_below.tags = ["magnetism", "sample"] +sample[Ni].magnetism.interface_above.tags = ["magnetism", "sample"] +sample[Ni].magnetism.interface_below.tags = ["magnetism", "sample"] + + +Ni_layer.thickness.range(0, 1500) +Ni_layer.thickness.tags = ["structure", "sample"] + +Ni_layer.interface.range(0, 50) +Ni_layer.interface.tags = ["structure", "sample"] + +Si_sub.interface.range(0, 50) +Si_sub.interface.tags = ["structure", "sample"] + +zed = 2 +step = False + +experiment = Experiment(probe=probe, sample=sample, dz=zed, step_interfaces=step, auto_tag=True) + +problem = FitProblem(experiment) diff --git a/doc/examples/POLREF/Ni58_u.dat b/doc/examples/POLREF/Ni58_u.dat new file mode 100644 index 000000000..972ab4d49 --- /dev/null +++ b/doc/examples/POLREF/Ni58_u.dat @@ -0,0 +1,309 @@ +1.002981050697613827e-02 7.482526105944300454e-01 1.958871630882731696e-02 +1.013010861204590059e-02 7.593156748881259022e-01 1.944200057922624778e-02 +1.023140969816635840e-02 7.561576015500585113e-01 1.910077891924370427e-02 +1.033372379514802333e-02 7.571642199905121995e-01 1.869070629828195260e-02 +1.043706103309950325e-02 7.896553402425269264e-01 1.907673862414058924e-02 +1.054143164343049680e-02 7.343859722903492981e-01 1.814305806860735948e-02 +1.064684595986480423e-02 7.882349712986534973e-01 1.862380800568590525e-02 +1.075331441946345175e-02 7.492046598153878634e-01 1.793800391489093829e-02 +1.086084756365808535e-02 7.844202223982622568e-01 1.808974690138519595e-02 +1.096945603929466717e-02 7.708541626320115636e-01 1.722113592018862868e-02 +1.107915059968761495e-02 7.674819968785231428e-01 1.681154366530933364e-02 +1.118994210568449027e-02 7.734207954462467560e-01 1.645445413140523422e-02 +1.130184152674133455e-02 7.839057429200384508e-01 1.635951394057836780e-02 +1.141485994200874821e-02 7.912734981139767365e-01 1.611428450298521206e-02 +1.152900854142883610e-02 7.751317304484892645e-01 1.570000398893699536e-02 +1.164429862684312339e-02 7.534745215131779528e-01 1.551633470714706801e-02 +1.176074161311155622e-02 7.706356782712516784e-01 1.550075620586694077e-02 +1.187834902924267064e-02 7.455123880231859790e-01 1.504011013520120676e-02 +1.199713251953509613e-02 7.791266296359453669e-01 1.531332247726563227e-02 +1.211710384473044765e-02 7.717416043299001327e-01 1.508778406553614934e-02 +1.223827488317775179e-02 7.730584896209429235e-01 1.481457596261111405e-02 +1.236065763200952863e-02 7.740888753921544296e-01 1.455005240567753232e-02 +1.248426420832962278e-02 7.807893267470907839e-01 1.468701738884924286e-02 +1.260910685041291904e-02 7.472410089986090131e-01 1.403496571548791712e-02 +1.273519791891705027e-02 7.597243880337184452e-01 1.380141588842400367e-02 +1.286254989810622050e-02 7.659275302419276121e-01 1.363073289023714399e-02 +1.299117539708728383e-02 7.615437739522211702e-01 1.321064874645622861e-02 +1.312108715105815560e-02 7.828184338109537288e-01 1.336558559189179526e-02 +1.325229802256873771e-02 7.923231346933302666e-01 1.334546022274350069e-02 +1.338482100279442429e-02 7.854533965069769863e-01 1.314269991171507397e-02 +1.351866921282236789e-02 7.578920860009192850e-01 1.288277508700126119e-02 +1.365385590495059309e-02 7.856233777784900063e-01 1.303262080710107171e-02 +1.379039446400009798e-02 7.736154738082260396e-01 1.258432812913510938e-02 +1.392829840864009960e-02 7.743258877907235327e-01 1.224039361304370653e-02 +1.406758139272649977e-02 7.599506021097957031e-01 1.176153003479988961e-02 +1.420825720665376546e-02 7.772762193435328593e-01 1.178815334743109865e-02 +1.435033977872030367e-02 7.861040598274476876e-01 1.171487004001967036e-02 +1.449384317650750584e-02 7.810036313810545527e-01 1.157062525407246724e-02 +1.463878160827258162e-02 7.778436635157814916e-01 1.142086588758600696e-02 +1.478516942435530862e-02 7.797151607011362229e-01 1.111632073129668018e-02 +1.493302111859886108e-02 7.906653385374806664e-01 1.104394349873799933e-02 +1.508235132978484952e-02 7.799070564007974937e-01 1.064779440763300410e-02 +1.523317484308269777e-02 7.780038674132616627e-01 1.057953534662829827e-02 +1.538550659151352584e-02 7.852724412871887605e-01 1.046417502631476031e-02 +1.553936165742866166e-02 7.737633423098951857e-01 1.031739607372816198e-02 +1.569475527400295001e-02 7.842888861819062862e-01 1.016680673787044922e-02 +1.585170282674297840e-02 8.022360201873551810e-01 1.018111230613392114e-02 +1.601021985501040884e-02 7.849116710013124276e-01 9.810576579485922460e-03 +1.617032205356051106e-02 7.716179401396816573e-01 9.677707223801193526e-03 +1.633202527409611735e-02 7.770415310617851956e-01 9.557725742415723938e-03 +1.649534552683707897e-02 8.014526510074031496e-01 9.558187069456205651e-03 +1.666029898210544952e-02 7.887504546297787744e-01 9.294565578893751803e-03 +1.682690197192650283e-02 7.597699162733986267e-01 8.882699256824359499e-03 +1.699517099164576939e-02 7.822126548536326718e-01 8.934190423818417701e-03 +1.716512270156222639e-02 7.780968491198759773e-01 8.774083562946548981e-03 +1.733677392857784980e-02 7.778183371868986340e-01 8.600378155701578903e-03 +1.751014166786362888e-02 7.872292568003794733e-01 8.557656133616253769e-03 +1.768524308454226535e-02 7.820747607592092310e-01 8.413279920354040445e-03 +1.786209551538768883e-02 7.819285015383216075e-01 8.246482290382649641e-03 +1.804071647054156582e-02 7.784049517627080750e-01 8.088694336117255995e-03 +1.822112363524697881e-02 7.853347629228726312e-01 8.081510702699142012e-03 +1.840333487159944922e-02 7.611706876076044237e-01 7.744102344134867408e-03 +1.858736822031544292e-02 7.852322919993133254e-01 7.823505343372569656e-03 +1.877324190251859759e-02 7.745957585670836254e-01 7.636496492037469358e-03 +1.896097432154378315e-02 7.810187491311190167e-01 7.574837335948347329e-03 +1.915058406475922056e-02 7.832555328953207940e-01 7.512118288039040456e-03 +1.934208990540681183e-02 7.875279457310266906e-01 7.405912473771042101e-03 +1.953551080446088231e-02 7.724095894050313493e-01 7.181634617943764842e-03 +1.973086591250549152e-02 7.739116947705039218e-01 7.105579443199113582e-03 +1.992817457163054834e-02 7.909821326835324573e-01 7.207003490280904437e-03 +2.012745631734685209e-02 7.737779242106098687e-01 6.917765284580705554e-03 +2.032873088052031957e-02 7.726303095160360623e-01 6.841771542042829855e-03 +2.053201818932552658e-02 7.820967068078077400e-01 6.802398721935109215e-03 +2.073733837121877893e-02 7.722366828619966483e-01 6.689917388342920407e-03 +2.094471175493096624e-02 7.800878526209226171e-01 6.664170232661071475e-03 +2.115415887248027482e-02 7.744750097678219092e-01 6.583858285362221424e-03 +2.136570046120507896e-02 7.804693217814490103e-01 6.574302653531187250e-03 +2.157935746581712833e-02 7.915449971684195285e-01 6.613715323118186766e-03 +2.179515104047529891e-02 7.793348353256197569e-01 6.348232166325385416e-03 +2.201310255088004958e-02 7.936969511219660323e-01 6.351982167230891402e-03 +2.223323357638885139e-02 7.755017392792735720e-01 6.138567676892042572e-03 +2.245556591215273901e-02 7.897221739491561143e-01 6.170034879628689788e-03 +2.268012157127426848e-02 7.809960917423772742e-01 6.021794906907438488e-03 +2.290692278698701345e-02 7.856802305158814281e-01 6.008802340861139381e-03 +2.313599201485688067e-02 7.762879310463274285e-01 5.952144092179563820e-03 +2.336735193500544955e-02 7.802544499819158430e-01 5.929864044788080331e-03 +2.360102545435550578e-02 7.864882545698744787e-01 5.970784143869459562e-03 +2.383703570889906045e-02 7.807528779008734432e-01 5.873684576850428211e-03 +2.407540606598804894e-02 7.797683532080483815e-01 5.797555450322136594e-03 +2.431616012664793158e-02 7.776452426668452045e-01 5.737837249296493143e-03 +2.455932172791441132e-02 7.699751455425593027e-01 5.610069818896685351e-03 +2.480491494519355272e-02 7.858937003177569602e-01 5.714529148756552525e-03 +2.505296409464548985e-02 7.895365178036946041e-01 5.669719331338499320e-03 +2.530349373559194481e-02 7.649233456780818452e-01 5.456457074736356487e-03 +2.555652867294786607e-02 7.647127187536455484e-01 5.411897801778281503e-03 +2.581209395967734577e-02 7.508221017735592362e-01 5.271669331121699165e-03 +2.607021489927411825e-02 7.234355613050620359e-01 5.059214346591299309e-03 +2.633091704826685808e-02 7.012055483628131247e-01 4.914204658206467770e-03 +2.659422621874953097e-02 6.194801742579807424e-01 4.437545371110065626e-03 +2.686016848093702308e-02 5.093585504960370658e-01 3.849945369339519054e-03 +2.712877016574639227e-02 3.777914191461458904e-01 3.046204671952071515e-03 +2.740005786740385557e-02 3.111352693929701485e-01 2.690061854511888433e-03 +2.767405844607789822e-02 3.243538377479832646e-01 2.711343765250009800e-03 +2.795079903053867415e-02 3.476584776976763824e-01 2.792017153721776997e-03 +2.823030702084406221e-02 3.297065288741153344e-01 2.646136347247876174e-03 +2.851261009105250308e-02 2.749464948726271785e-01 2.303075424949756721e-03 +2.879773619196302620e-02 2.002554483909886884e-01 1.833841176524711849e-03 +2.908571355388265764e-02 1.252024253370357387e-01 1.323464796474844302e-03 +2.937657068942148286e-02 7.785823305484400325e-02 9.543010307446839896e-04 +2.967033639631570102e-02 7.802038761305757353e-02 9.332281105703383976e-04 +2.996703976027885463e-02 1.097946402638095009e-01 1.148394113319137775e-03 +3.026671015788164748e-02 1.390590033361110700e-01 1.314036894491371144e-03 +3.056937725946046180e-02 1.628644826117039424e-01 1.449763548224091087e-03 +3.087507103205506392e-02 1.613503801175125152e-01 1.424926047079625759e-03 +3.118382174237561283e-02 1.452302674010216288e-01 1.315265073657184876e-03 +3.149565995979937416e-02 1.187456342465564169e-01 1.131297739242022272e-03 +3.181061655939736166e-02 8.705318272455742079e-02 9.167469756346192846e-04 +3.212872272499133625e-02 5.360026866122166028e-02 6.742534948843547250e-04 +3.245000995224124607e-02 3.109435887470413107e-02 4.831133482032019160e-04 +3.277451005176366255e-02 2.183202209352878495e-02 3.819157890612535433e-04 +3.310225515228129578e-02 2.858249898693427868e-02 4.401483788576702398e-04 +3.343327770380410957e-02 4.036097431671255287e-02 5.244762833752925893e-04 +3.376761048084215427e-02 5.510235622178165371e-02 6.220510308639806262e-04 +3.410528658565057519e-02 6.565993110303382230e-02 6.735892987558860694e-04 +3.444633945150708115e-02 7.208997869871901221e-02 7.089458163955420942e-04 +3.479080284602215078e-02 6.835392755019752131e-02 6.792885967943137343e-04 +3.513871087448237895e-02 6.048638761571350358e-02 6.199364097883757266e-04 +3.549009798322719927e-02 4.704050950562248257e-02 5.259108579310749080e-04 +3.584499896305946842e-02 3.240684450248263598e-02 4.138941705579572347e-04 +3.620344895269006491e-02 1.964846085213960841e-02 3.055808335999515022e-04 +3.656548344221696722e-02 1.138106338877919663e-02 2.227224782250407712e-04 +3.693113827663913051e-02 8.292508013624504820e-03 1.846141840949761523e-04 +3.730044965940552959e-02 1.108392806007199582e-02 2.129658543340796548e-04 +3.767345415599958336e-02 1.651783769788155165e-02 2.609020124939672087e-04 +3.805018869755957822e-02 2.414674329220104290e-02 3.229595750118423357e-04 +3.843069058453517373e-02 2.890959910689819279e-02 3.520722821352067849e-04 +3.881499749038051783e-02 3.180659441590983488e-02 3.660145602446521120e-04 +3.920314746528432565e-02 3.001767639257227338e-02 3.491290109996827702e-04 +3.959517893993716453e-02 2.712153398359964246e-02 3.264359396060269639e-04 +3.999113072933653534e-02 2.237428630300315746e-02 2.895333348301142853e-04 +4.039104203662990250e-02 1.506371865569815054e-02 2.267929207022477249e-04 +4.079495245699620021e-02 9.952480524749198615e-03 1.783443963473173646e-04 +4.120290198156616179e-02 5.725917912116658751e-03 1.287983643229521327e-04 +4.161493100138181911e-02 4.017720639529323394e-03 1.041999000475912898e-04 +4.203108031139564382e-02 5.425999618539705492e-03 1.209817120087359186e-04 +4.245139111450960123e-02 7.783929412634247279e-03 1.454281827163862555e-04 +4.287590502565469253e-02 1.089560714160097733e-02 1.732606329778603438e-04 +4.330466407591124223e-02 1.376127039272895779e-02 1.963770491483300120e-04 +4.373771071667036103e-02 1.466097021079263742e-02 1.986701763864018159e-04 +4.417508782383706978e-02 1.455472645120683972e-02 1.951365208560846859e-04 +4.461683870207543839e-02 1.261949618106108714e-02 1.752843082967515151e-04 +4.506300708909619090e-02 9.836763592658179581e-03 1.498646911577959943e-04 +4.551363715998715809e-02 7.101196812326279750e-03 1.228507099457923715e-04 +4.596877353158702884e-02 4.554282873730650105e-03 9.654987728571519650e-05 +4.642846126690290676e-02 2.974353501597842148e-03 7.626313277322933947e-05 +4.689274587957192875e-02 2.659560676539418720e-03 7.079065292160942953e-05 +4.736167333836765331e-02 3.352948013015416995e-03 7.940134413875305180e-05 +4.783529007175132963e-02 4.831060683856779232e-03 9.477632572887945844e-05 +4.831364297246884543e-02 5.982261065402348470e-03 1.050286917163336509e-04 +4.879677940219352694e-02 7.118294526166908491e-03 1.141903316490462412e-04 +4.928474719621546429e-02 7.230070698198733971e-03 1.133649765094476111e-04 +4.977759466817761880e-02 6.796897728061032998e-03 1.087229156825925288e-04 +5.027537061485939929e-02 5.482194638131119256e-03 9.462185622485931146e-05 +5.077812432100799189e-02 3.976435985601631945e-03 7.885315335118886959e-05 +5.128590556421806779e-02 2.745490481991112557e-03 6.332738163013024656e-05 +5.179876461986025055e-02 1.848888890725142869e-03 5.075990392878079819e-05 +5.231675226605884965e-02 1.652133440032625645e-03 4.749798182678675878e-05 +5.283991978871943607e-02 1.938081261826288650e-03 5.124609896257907484e-05 +5.336831898660663459e-02 2.632901857641583611e-03 5.923561235787548461e-05 +5.390200217647270198e-02 3.284503192478797472e-03 6.597988507832210146e-05 +5.444102219823743205e-02 3.709163787574425077e-03 7.043926669708925248e-05 +5.498543242021980415e-02 3.565589285972710007e-03 6.741171364205524909e-05 +5.553528674442199942e-02 3.363038541721376142e-03 6.424386738735219835e-05 +5.609063961186622205e-02 2.611964975005781880e-03 5.502614152515909615e-05 +5.665154600798488760e-02 1.910302910310361386e-03 4.621925818280502935e-05 +5.721806146806473342e-02 1.363524738877364747e-03 3.842313332374331595e-05 +5.779024208274538554e-02 1.022986340352299980e-03 3.281854311209464811e-05 +5.836814450357283302e-02 1.154363416153656938e-03 3.412366719632882998e-05 +5.895182594860856606e-02 1.464674449888726110e-03 3.794818451956963025e-05 +5.954134420809464867e-02 1.808512488992235776e-03 4.162958270980611806e-05 +6.013675765017559294e-02 1.997467970375495835e-03 4.315195508265942431e-05 +6.073812522667734748e-02 2.047804847879250607e-03 4.319173964923420832e-05 +6.134550647894412845e-02 1.885030486194831569e-03 4.091534260454005826e-05 +6.195896154373356501e-02 1.445659439838603653e-03 3.534179227717438714e-05 +6.257855115917090871e-02 1.090772032789909295e-03 3.018032003953568742e-05 +6.320433667076261197e-02 8.372455595955990504e-04 2.604516871312484631e-05 +6.383638003747024725e-02 7.346859450216491547e-04 2.417731481057591877e-05 +6.447474383784493335e-02 8.512443309367430941e-04 2.594801501497519077e-05 +6.511949127622339295e-02 1.007100635794293871e-03 2.769677834259177119e-05 +6.577068618898562757e-02 1.157733285456134624e-03 2.904509965583768687e-05 +6.642839305087547275e-02 1.207441603322650589e-03 2.913670904885016851e-05 +6.709267698138424163e-02 1.126468576692678030e-03 2.762343907255326492e-05 +6.776360375119808155e-02 8.887764989304772038e-04 2.423372070237291947e-05 +6.844123978871005654e-02 6.964346459820237390e-04 2.111308420042121487e-05 +6.912565218659716404e-02 5.777496416566249831e-04 1.913828341645311962e-05 +6.981690870846313235e-02 5.018903265971914104e-04 1.770109964161792291e-05 +7.051507779554777589e-02 5.599369491162375619e-04 1.854652894193828896e-05 +7.122022857350325531e-02 6.803078944685103310e-04 2.017637453767306331e-05 +7.193243085923828328e-02 7.381017702503316286e-04 2.087478386246323356e-05 +7.265175516783066445e-02 7.460488937757710822e-04 2.073022037098650724e-05 +7.337827271950897456e-02 6.717743916484459699e-04 1.946836010237141477e-05 +7.411205544670407264e-02 5.791211314979883206e-04 1.784324990643594339e-05 +7.485317600117111225e-02 4.312129489500006550e-04 1.533417068237188794e-05 +7.560170776118281533e-02 3.539175872199686480e-04 1.386652008800826466e-05 +7.635772483879464667e-02 3.547396789147012788e-04 1.381021969651333650e-05 +7.712130208718259716e-02 3.990304670977693510e-04 1.437892743353655765e-05 +7.789251510805442202e-02 4.794948210370777487e-04 1.548672234350330078e-05 +7.867144025913497263e-02 4.768933358393112653e-04 1.527840349070280936e-05 +7.945815466172631569e-02 4.389272207480489438e-04 1.455238654549853014e-05 +8.025273620834358357e-02 3.753628059751003688e-04 1.358031990810671093e-05 +8.105526357042701358e-02 2.758689234545541667e-04 1.161375342481590037e-05 +8.186581620613128663e-02 2.592053298378401826e-04 1.131140257311123717e-05 +8.268447436819259533e-02 2.659855272870964137e-04 1.127324361239832924e-05 +8.351131911187453793e-02 2.792123918321809417e-04 1.138812012337613569e-05 +8.434643230299326833e-02 3.263715187142975311e-04 1.213240897123176316e-05 +8.518989662602320656e-02 2.944729753563197399e-04 1.142840582154619773e-05 +8.604179559228344876e-02 2.936742332732326065e-04 1.146685550662553936e-05 +8.690221354820627797e-02 2.235811216532213909e-04 9.872762843085862612e-06 +8.777123568368833118e-02 2.010472592806709772e-04 9.218881597339376454e-06 +8.864894804052522725e-02 1.781982576789317035e-04 8.534916471526318685e-06 +8.953543752093047481e-02 2.100023506962926841e-04 9.087542325062680367e-06 +9.043079189613978386e-02 2.118031357456612849e-04 8.981925207827503747e-06 +9.133509981510118392e-02 2.197364859191649024e-04 9.103165218827516644e-06 +9.224845081325219742e-02 1.851488773891035060e-04 8.381310808685840823e-06 +9.317093532138472078e-02 1.627058430431937346e-04 7.935903691048780263e-06 +9.410264467459857063e-02 1.321360428759824242e-04 7.080050233773643873e-06 +9.504367112134455564e-02 1.402228261721582062e-04 7.228364730039974735e-06 +9.599410783255798996e-02 1.419701548456073084e-04 7.246640487314171519e-06 +9.695404891088357791e-02 1.698288327908694555e-04 7.880262665667822113e-06 +9.792358939999240564e-02 1.508519228048803577e-04 7.352414020193113072e-06 +9.890282529399233025e-02 1.230305998999084416e-04 6.623743662357619839e-06 +9.989185354693225216e-02 1.043560708058869664e-04 6.130104050971379979e-06 +1.008907720824015752e-01 9.984884174148365402e-05 6.031478994008255618e-06 +1.018996798032255902e-01 1.120102529672416432e-04 6.387527150634818856e-06 +1.029186766012578497e-01 1.096513417008614105e-04 6.195665819102950527e-06 +1.039478633672704377e-01 1.140284213230537158e-04 6.197448289861346419e-06 +1.049873420009431318e-01 8.698457727823715455e-05 5.518873073563972167e-06 +1.060372154209525686e-01 8.210379045804005679e-05 5.337658381853509635e-06 +1.070975875751620787e-01 7.696053310954612708e-05 5.227305773740853549e-06 +1.081685634509137045e-01 8.700372480171671250e-05 5.529662821359104165e-06 +1.092502490854228431e-01 8.201780020188965178e-05 5.535187362858477701e-06 +1.103427515762770705e-01 7.422311116945706007e-05 5.166259335352653237e-06 +1.114461790920398404e-01 6.123469619025995864e-05 4.646463418966606439e-06 +1.125606408829602501e-01 5.590408216146578742e-05 4.361112209793875892e-06 +1.136862472917898464e-01 6.718257312428787750e-05 4.783269052590799954e-06 +1.148231097647077481e-01 6.840978525050151957e-05 4.790592821823620567e-06 +1.159713408623548186e-01 6.840350018245868607e-05 4.749683975049334188e-06 +1.171310542709783631e-01 5.328792014035485340e-05 4.272537936396516172e-06 +1.183023648136881656e-01 4.776058291417592305e-05 3.968173769058200061e-06 +1.194853884618250484e-01 3.698458310468065327e-05 3.490069451711905448e-06 +1.206802423464432839e-01 4.305835494990956606e-05 3.715678117658698965e-06 +1.218870447699077209e-01 4.803717039343144836e-05 3.826389302766539257e-06 +1.231059152176068039e-01 4.605434162608509685e-05 3.801254219104394673e-06 +1.243369743697828878e-01 3.894843280426858701e-05 3.498987823844211332e-06 +1.255803441134807075e-01 3.769388673137656490e-05 3.401683011107718736e-06 +1.268361475546155304e-01 3.440543712649016982e-05 3.238726775774852868e-06 +1.281045090301616840e-01 3.340802483518857550e-05 3.181636110971240665e-06 +1.293855541204632642e-01 3.300087863162811595e-05 3.207736062310573059e-06 +1.306794096616679113e-01 2.883057911397765187e-05 3.024498498874661324e-06 +1.319862037582845982e-01 2.843687273644653014e-05 2.955444645036888882e-06 +1.333060657958674566e-01 2.456896747906636591e-05 2.794777818610321241e-06 +1.346391264538261134e-01 2.965313208057741411e-05 3.032590925176111272e-06 +1.359855177183643682e-01 2.137681589685471988e-05 2.648101138741583911e-06 +1.373453728955480457e-01 1.925816968063303667e-05 2.533527927238694043e-06 +1.387188266245035217e-01 2.221914359824464892e-05 2.661859053315422252e-06 +1.401060148907485314e-01 1.873399696659661773e-05 2.498883768437693161e-06 +1.415070750396560384e-01 2.049437282238181674e-05 2.541322955593688431e-06 +1.429221457900525794e-01 1.726097634833632349e-05 2.371327073455515171e-06 +1.443513672479531107e-01 1.872473085853971285e-05 2.484113572056745028e-06 +1.457948809204326346e-01 1.994507400432702585e-05 2.556251992836024387e-06 +1.472528297296369360e-01 1.745016039214729450e-05 2.404011249923240736e-06 +1.487253580269333186e-01 1.015975152763620448e-05 1.991232556392735327e-06 +1.502126116072026729e-01 1.484323035319496403e-05 2.286021045248516724e-06 +1.517147377232747063e-01 1.302082670951543239e-05 2.209174776473634079e-06 +1.532318851005074478e-01 1.275202294334747065e-05 2.236880218379993962e-06 +1.547642039515125245e-01 1.178545152887320669e-05 2.118007710639773411e-06 +1.563118459910276536e-01 9.940625708943296373e-06 1.986556095128574352e-06 +1.578749644509379324e-01 1.298537409476031504e-05 2.195339053908781301e-06 +1.594537140954473131e-01 1.183083738052069990e-05 2.085766006986878232e-06 +1.610482512364017904e-01 8.859671637370012353e-06 1.885964226845240902e-06 +1.626587337487658269e-01 9.220416279573176319e-06 2.020707177639869941e-06 +1.642853210862534885e-01 1.031935353370614060e-05 2.129602993776532770e-06 +1.659281742971160101e-01 6.572124053679172241e-06 1.955653630746246513e-06 +1.675874560400871793e-01 1.139752541084613530e-05 2.242725006523941979e-06 +1.692633306004880378e-01 7.235534844847681975e-06 1.881791675342438380e-06 +1.709559639064929248e-01 1.223352246412163141e-05 2.318109878881975522e-06 +1.726655235455578641e-01 7.578766695315353083e-06 1.851562817194630270e-06 +1.743921787810134294e-01 9.555849377277254977e-06 2.065110892367830887e-06 +1.761361005688235615e-01 6.834604410978491056e-06 1.898874275484286964e-06 +1.778974615745118060e-01 7.456347658617818164e-06 2.019318209093516005e-06 +1.796764361902569163e-01 4.807085153918740143e-06 1.815101251793650157e-06 +1.814732005521594860e-01 7.800467120525018394e-06 2.027399122913749763e-06 +1.832879325576810825e-01 5.017824469610659279e-06 1.856255285515416394e-06 +1.851208118832579075e-01 9.395282729555903481e-06 2.285152646705782700e-06 +1.869720200020904555e-01 3.245214460606851050e-06 1.663215418371818071e-06 +1.888417402021113634e-01 4.787747569184985216e-06 1.875725945227839458e-06 +1.907301576041324775e-01 3.040569218372281241e-06 1.721809598274898887e-06 +1.926374591801738312e-01 5.496651759798433853e-06 2.086444563744353942e-06 +1.945638337719755584e-01 4.648165849696168671e-06 2.012766464339780412e-06 +1.965094721096953267e-01 4.430778361920085050e-06 1.965524790479947078e-06 +1.984745668307922595e-01 6.280925711082804314e-06 2.149752651791911879e-06 +2.004593124991001785e-01 3.608870134113190023e-06 1.878028372776222329e-06 +2.024639056240911672e-01 5.378796207161411837e-06 2.146021940418202445e-06 +2.044885446803320905e-01 2.670149899831645663e-06 1.828209833233025236e-06 +2.085987644284067466e-01 2.124597183035002371e-06 1.963015373855895726e-06 +2.106847520726908007e-01 3.612391582641549197e-06 2.097515163608123368e-06 +2.127915995934177018e-01 6.335480871128776232e-07 1.672859599157467224e-06 +2.149195155893518783e-01 2.242353860369962218e-06 2.140764606437752178e-06 +2.171750304146550237e-01 2.779573026276240968e-06 2.054429492933763209e-06 diff --git a/refl1d/probe/data_loaders/polref_legacy_data_loader.py b/refl1d/probe/data_loaders/polref_legacy_data_loader.py new file mode 100644 index 000000000..cc8add471 --- /dev/null +++ b/refl1d/probe/data_loaders/polref_legacy_data_loader.py @@ -0,0 +1,144 @@ +from refl1d.names import PolarizedNeutronProbe, NeutronProbe +import numpy as np +import os +from refl1d.probe.resolution import QT2L +from pathlib import Path + + +# TODO: See if we can wrap np.geomspace to give the same behaviour as below? +# Currently, np.geomspace does not allow for a step size to be defined, +# only the number of points. +# This is not ideal for TOF data where we want to define a step size in dQ/Q. +def logstep(start, stop, step, base=10.0): + """ + Creates a log spaced 1d array by defining a step size and a base + In the form of dQ/Q - i.e. dQ\\Q*Qpoint + """ + logrange = [start] + point = start + while point < stop: + point = point + base ** (np.log10(step * point) / np.log10(base)) + + logrange.append(point) + + return np.array(logrange) + + +def TOF_loader(T=0.25, dQoQ=0.02, Q_sim_range=(0.005, 0.2), filename=None, name=None, skiprows=1, **kw): + """ + Loads and creates NeutronProbe objects for TOF stitched datasets + I.e. from multiple angles. In the case of ISIS NR instruments we + typically have a constant dq/q resolution which the data is binned to at + the end of the reduction. + + *T* incident theta for the lowest angle + *dQoQ* dq/q resolution data has been binned to + *filename* filename of the data set to be loaded + *kw* keyword arguments (kwargs) to be passed to NeutronProbe() + """ + + # np.loadtext is currently set for simple 3 column POLREF data + # if you aim to use this loader for other data, talk to your local contact + # to understand the data format, and how best to load it. + + if filename is not None: + data = np.loadtxt(filename, skiprows=skiprows).T + if dQoQ is None: + Q, R, dR, dQo = data + else: + Q, R, dR = data + dQo = Q * dQoQ + data_in = (R, dR) + else: + Q = logstep(Q_sim_range[0], Q_sim_range[1], dQoQ, base=dQoQ) + data_in = None + + L = QT2L(Q, T) + # Converting the dq/q resolution into a dq value for each Q point + # dQ = FWHM2sigma(dQo) + # Since we take dL/L = 0, dQ/Q = dT/T, so dT = T * dQoQ + dT = T * dQoQ + # print(f"dT = {dT}") + + probe_out = NeutronProbe( + name=name, + T=T, + dT=dT, + L=L, + dL=0, + data=data_in, + # For standard TOF measurements resolution is assumed to be normal (gaussian) + # For measurements with many wavelengths and many angles (say cw measurements) + # then a uniform resolution can be used instead. + resolution="normal", + **kw, + ) + + return probe_out + + +def load_probe_polref(filename, angle, dQoQ, name=None, path=None, pol_mode=None, field=None, **kw): + """ + creates one probe (Neutron, Polarized - PA or PNR) from one measurement - could be one angle or stitched dataset. + If polarized, sets some default values and links instrumental parameters for each cross-section together + """ + + if name is None: + name = filename + if path is None: + path = os.getcwd() + + filepath = Path(path) / filename + + if (pol_mode != "pnr") and (pol_mode != "pa"): + probe = TOF_loader(T=angle, dQoQ=dQoQ, filename=f"{filepath}.dat", name=name, **kw) + + probe.intensity.tags = ["inst", "nuisance"] + probe.background.tags = ["inst", "nuisance"] + probe.sample_broadening.tags = ["inst", "nuisance"] + probe.theta_offset.tags = ["inst", "nuisance"] + + else: + if pol_mode == "pa": + files = dict( + data_mm=f"{filepath}_dd.dat", + data_mp=f"{filepath}_du.dat", + data_pm=f"{filepath}_ud.dat", + data_pp=f"{filepath}_uu.dat", + ) + else: + files = dict(data_mm=f"{filepath}_d.dat", data_mp=None, data_pm=None, data_pp=f"{filepath}_u.dat") + + cross_sections = [] + for data in files.values(): + if data is None: + cross_sections.append(None) + else: + cross_sections.append(TOF_loader(T=angle, dQoQ=dQoQ, filename=data, name=name, **kw)) + if field is None: + field = 0.0 + + probe = PolarizedNeutronProbe(cross_sections, Aguide=270, H=field, name=name) + + for xs in (probe.mm, probe.mp, probe.pm, probe.pp): + if xs is not None: + xs.name = name + xs.intensity = probe.pp.intensity + xs.sample_broadening = probe.pp.sample_broadening + xs.theta_offset = probe.pp.theta_offset + xs.background = probe.pp.background + + probe.pp.intensity.name = f"intensity {name}" + probe.pp.background.name = f"background {name}" + probe.pp.sample_broadening.name = f"sample_broadening {name}" + probe.pp.theta_offset.name = f"theta_offset {name}" + + probe.pp.intensity.tags = ["inst", "nuisance"] + probe.pp.background.tags = ["inst", "nuisance"] + probe.pp.sample_broadening.tags = ["inst", "nuisance"] + probe.pp.theta_offset.tags = ["inst", "nuisance"] + + return probe + + +# TODO: Add simulation wrapper based on the loader above for simulating POLREF data. diff --git a/tests/refl1d/polref_legacy_loader/Ni58_d.dat b/tests/refl1d/polref_legacy_loader/Ni58_d.dat new file mode 100644 index 000000000..b6918877b --- /dev/null +++ b/tests/refl1d/polref_legacy_loader/Ni58_d.dat @@ -0,0 +1,310 @@ +1.002981050697613827e-02 7.330280282055269270e-01 1.936214197445139049e-02 +1.013010861204590059e-02 7.424184988930829787e-01 1.921294750859389028e-02 +1.023140969816635840e-02 7.872817134752805313e-01 1.954099487420863507e-02 +1.033372379514802333e-02 7.438879768394555114e-01 1.864688937372978653e-02 +1.043706103309950325e-02 7.955280569974489957e-01 1.926236186579857734e-02 +1.054143164343049680e-02 7.710933566858181321e-01 1.864968042179447616e-02 +1.064684595986480423e-02 7.240671562440467168e-01 1.777338914560670780e-02 +1.075331441946345175e-02 7.454613387089646936e-01 1.809612795400621088e-02 +1.086084756365808535e-02 7.684978010049440256e-01 1.793018747701436572e-02 +1.096945603929466717e-02 7.416218180128480997e-01 1.693305902602831522e-02 +1.107915059968761495e-02 7.631699272364569353e-01 1.678341258745070022e-02 +1.118994210568449027e-02 7.508875351552354305e-01 1.622464343535913109e-02 +1.130184152674133455e-02 8.077788229927659325e-01 1.665522566869784976e-02 +1.141485994200874821e-02 7.642564120375849868e-01 1.582154928794364188e-02 +1.152900854142883610e-02 7.256987092555468033e-01 1.517859277475095900e-02 +1.164429862684312339e-02 7.946553684420615271e-01 1.607511775467015264e-02 +1.176074161311155622e-02 7.312649476868221532e-01 1.510486503246639967e-02 +1.187834902924267064e-02 7.750241222418257081e-01 1.540177644532691840e-02 +1.199713251953509613e-02 7.642774934370130113e-01 1.520965685247210181e-02 +1.211710384473044765e-02 7.908985255194204145e-01 1.535452398346817682e-02 +1.223827488317775179e-02 7.496523798915128989e-01 1.454718565754911999e-02 +1.236065763200952863e-02 7.343906897926801847e-01 1.417793261204950556e-02 +1.248426420832962278e-02 7.863081952216377513e-01 1.482566659720691883e-02 +1.260910685041291904e-02 7.440414564224078209e-01 1.402340543045282363e-02 +1.273519791891705027e-02 7.618314076842607196e-01 1.389861008180275602e-02 +1.286254989810622050e-02 7.904730819100780348e-01 1.392103459084993722e-02 +1.299117539708728383e-02 7.538700061484787662e-01 1.315832398224785725e-02 +1.312108715105815560e-02 7.843389034959329376e-01 1.348012521003450447e-02 +1.325229802256873771e-02 7.958334422559105725e-01 1.340811139377655510e-02 +1.338482100279442429e-02 7.794700997348982252e-01 1.312846491433395865e-02 +1.351866921282236789e-02 7.668466863816254531e-01 1.304922894347654468e-02 +1.365385590495059309e-02 7.789165687858762288e-01 1.298714781809842504e-02 +1.379039446400009798e-02 7.794114284904729573e-01 1.268844949409421961e-02 +1.392829840864009960e-02 7.820598509357412631e-01 1.231801101547045849e-02 +1.406758139272649977e-02 7.796352197911593507e-01 1.195875528127969718e-02 +1.420825720665376546e-02 7.876970836918414376e-01 1.190232462034253140e-02 +1.435033977872030367e-02 7.676127752676444871e-01 1.163792344309103922e-02 +1.449384317650750584e-02 7.777515160256120996e-01 1.158234077478818153e-02 +1.463878160827258162e-02 7.852597250941462104e-01 1.150706036568109950e-02 +1.478516942435530862e-02 7.642443053111005469e-01 1.102713682088306800e-02 +1.493302111859886108e-02 7.931223816750535560e-01 1.109112220599183830e-02 +1.508235132978484952e-02 7.810685500168490503e-01 1.072870996564983040e-02 +1.523317484308269777e-02 7.594790057146721951e-01 1.047493152155237230e-02 +1.538550659151352584e-02 7.584180277494776412e-01 1.027204096199059100e-02 +1.553936165742866166e-02 7.674002929940616502e-01 1.029742252394525055e-02 +1.569475527400295001e-02 7.715145781838623762e-01 1.010815603335515032e-02 +1.585170282674297840e-02 7.859287760328008687e-01 1.006721290488810962e-02 +1.601021985501040884e-02 7.849234269487008753e-01 9.808388206402595885e-03 +1.617032205356051106e-02 7.824219000504074595e-01 9.830905454594991016e-03 +1.633202527409611735e-02 7.750428190479390356e-01 9.571797376544769267e-03 +1.649534552683707897e-02 7.752377500597764648e-01 9.401042044828371996e-03 +1.666029898210544952e-02 7.660670000467237895e-01 9.156360915055280353e-03 +1.682690197192650283e-02 7.848029459001366615e-01 9.087307852729931135e-03 +1.699517099164576939e-02 7.812067875240932269e-01 8.961581141593458893e-03 +1.716512270156222639e-02 7.699563618299897216e-01 8.722275281583010201e-03 +1.733677392857784980e-02 7.719056874269460966e-01 8.561900424482188007e-03 +1.751014166786362888e-02 7.814106523328147036e-01 8.517339583118918242e-03 +1.768524308454226535e-02 7.734393710430118585e-01 8.381375520971637294e-03 +1.786209551538768883e-02 7.712047582140882929e-01 8.176414193727984947e-03 +1.804071647054156582e-02 7.868192101884480261e-01 8.171704554698594469e-03 +1.822112363524697881e-02 7.745915101225180344e-01 8.007740714894354822e-03 +1.840333487159944922e-02 7.752873261535121463e-01 7.860922086695757566e-03 +1.858736822031544292e-02 7.744464314584983411e-01 7.780307960619147790e-03 +1.877324190251859759e-02 7.732414409241740172e-01 7.640274266918302415e-03 +1.896097432154378315e-02 7.785358273863673961e-01 7.569202628263599700e-03 +1.915058406475922056e-02 7.701883733327247183e-01 7.454981757089932694e-03 +1.934208990540681183e-02 7.805400490733261920e-01 7.384025992965260153e-03 +1.953551080446088231e-02 7.819763786212882151e-01 7.245644810367837807e-03 +1.973086591250549152e-02 7.841199296729809420e-01 7.187681793613428897e-03 +1.992817457163054834e-02 7.840371317694401210e-01 7.173712328266862968e-03 +2.012745631734685209e-02 7.747605930300887067e-01 6.953984264148629912e-03 +2.032873088052031957e-02 7.808566195198016757e-01 6.912833455831161183e-03 +2.053201818932552658e-02 7.734083689308615117e-01 6.768844379663812097e-03 +2.073733837121877893e-02 7.799902953096773395e-01 6.762744007825396801e-03 +2.094471175493096624e-02 7.715638739966134141e-01 6.624216807899816102e-03 +2.115415887248027482e-02 7.858856738665679353e-01 6.670447531667231429e-03 +2.136570046120507896e-02 7.739881717282878215e-01 6.564139565910545940e-03 +2.157935746581712833e-02 7.947003200526974176e-01 6.654593257600205369e-03 +2.179515104047529891e-02 7.646069445799998920e-01 6.291395210812153298e-03 +2.201310255088004958e-02 7.772909791543984870e-01 6.270596756718098581e-03 +2.223323357638885139e-02 7.717156533686484465e-01 6.141473555847012239e-03 +2.245556591215273901e-02 7.826419655496184014e-01 6.145147475409378640e-03 +2.268012157127426848e-02 7.722740176468473328e-01 5.999573950163262538e-03 +2.290692278698701345e-02 7.592680806416638450e-01 5.890552710493358879e-03 +2.313599201485688067e-02 7.541249524961766149e-01 5.854974426497198438e-03 +2.336735193500544955e-02 7.364710312875319964e-01 5.719529477701936274e-03 +2.360102545435550578e-02 7.100858345616670730e-01 5.574290516689582586e-03 +2.383703570889906045e-02 6.513387238606783702e-01 5.183263607334918054e-03 +2.407540606598804894e-02 5.564187369508747372e-01 4.574893633047037549e-03 +2.431616012664793158e-02 4.292569341355331747e-01 3.774991317884947208e-03 +2.455932172791441132e-02 3.081677217290445525e-01 2.967945638159399501e-03 +2.480491494519355272e-02 2.731246448461882581e-01 2.750262022425503140e-03 +2.505296409464548985e-02 2.992838258295995035e-01 2.888193066724549767e-03 +2.530349373559194481e-02 3.216411605680353780e-01 2.980403215157547553e-03 +2.555652867294786607e-02 3.183309367603189832e-01 2.931983739715481561e-03 +2.581209395967734577e-02 2.918097564662304744e-01 2.721302665460246465e-03 +2.607021489927411825e-02 2.395099166288707226e-01 2.334760637651372202e-03 +2.633091704826685808e-02 1.707067227701373757e-01 1.863282883035171202e-03 +2.659422621874953097e-02 1.029344544303919945e-01 1.348732668434613055e-03 +2.686016848093702308e-02 6.074526254233035549e-02 9.867123380382595427e-04 +2.712877016574639227e-02 5.327500921448954235e-02 8.926748230897967170e-04 +2.740005786740385557e-02 6.974383305729686677e-02 1.045019217502166997e-03 +2.767405844607789822e-02 9.848530696309963639e-02 1.252423327416200393e-03 +2.795079903053867415e-02 1.206843187143757379e-01 1.387675989939086757e-03 +2.823030702084406221e-02 1.375844953422311889e-01 1.477012123024743374e-03 +2.851261009105250308e-02 1.395663119066343494e-01 1.471714017549682679e-03 +2.879773619196302620e-02 1.291330406198365477e-01 1.387555585140578304e-03 +2.908571355388265764e-02 1.081060319176967016e-01 1.213981022199978228e-03 +2.937657068942148286e-02 8.306981408000485567e-02 1.009226105064807118e-03 +2.967033639631570102e-02 5.549666082654717419e-02 7.680010843279735672e-04 +2.996703976027885463e-02 3.511035070902535082e-02 5.912168540495007021e-04 +3.026671015788164748e-02 1.858721716260166440e-02 4.082615487275008154e-04 +3.056937725946046180e-02 1.458842079260166263e-02 3.562115391586548915e-04 +3.087507103205506392e-02 1.841110489607843126e-02 4.008979755802677685e-04 +3.118382174237561283e-02 2.819268052452499410e-02 4.942223245719302039e-04 +3.149565995979937416e-02 3.954675719237069759e-02 5.862291793210040779e-04 +3.181061655939736166e-02 4.910328977399721490e-02 6.526782923350738603e-04 +3.212872272499133625e-02 5.517036708720172294e-02 6.901968998300664869e-04 +3.245000995224124607e-02 5.715814210809098267e-02 6.954015382257136774e-04 +3.277451005176366255e-02 5.188556446873916761e-02 6.321929305667347340e-04 +3.310225515228129578e-02 4.640065767086094806e-02 5.865205907906804713e-04 +3.343327770380410957e-02 3.550512219158194482e-02 4.898734982537889665e-04 +3.376761048084215427e-02 2.465986683802391319e-02 3.917601976229612387e-04 +3.410528658565057519e-02 1.568176011388118518e-02 2.981439461648518791e-04 +3.444633945150708115e-02 8.982575657039700012e-03 2.224348117075650459e-04 +3.479080284602215078e-02 5.253663782692378353e-03 1.668399311253679774e-04 +3.513871087448237895e-02 5.927261109695414719e-03 1.745926255819910198e-04 +3.549009798322719927e-02 9.806179329821319499e-03 2.185496041882034396e-04 +3.584499896305946842e-02 1.378352814425150979e-02 2.569680044137931125e-04 +3.620344895269006491e-02 1.847908421745218452e-02 2.967221118332995884e-04 +3.656548344221696722e-02 2.194476149613747845e-02 3.220463742130632461e-04 +3.693113827663913051e-02 2.322738844592216537e-02 3.280827139289030771e-04 +3.730044965940552959e-02 2.286061772609729661e-02 3.202342279487655190e-04 +3.767345415599958336e-02 2.101034655503296322e-02 3.009510429744310196e-04 +3.805018869755957822e-02 1.698930849628986842e-02 2.660504689516964200e-04 +3.843069058453517373e-02 1.209495528884836808e-02 2.157685941274343957e-04 +3.881499749038051783e-02 7.877774750911155019e-03 1.676350792824303829e-04 +3.920314746528432565e-02 4.617885642197154354e-03 1.246728509663025115e-04 +3.959517893993716453e-02 2.912677708527687710e-03 9.834221015100403545e-05 +3.999113072933653534e-02 2.746290769985065480e-03 9.484192279651809535e-05 +4.039104203662990250e-02 4.014937039491050727e-03 1.116671945448984878e-04 +4.079495245699620021e-02 6.029138809049575456e-03 1.356064909029771248e-04 +4.120290198156616179e-02 8.190753340261501536e-03 1.568914391755217542e-04 +4.161493100138181911e-02 9.595707296033682138e-03 1.680376753733163584e-04 +4.203108031139564382e-02 1.036820917180290846e-02 1.731861578800117764e-04 +4.245139111450960123e-02 1.007439810184179718e-02 1.679951405657624736e-04 +4.287590502565469253e-02 9.033151254235319977e-03 1.572928466799086223e-04 +4.330466407591124223e-02 7.352769349219122688e-03 1.395870245666640415e-04 +4.373771071667036103e-02 5.162352443579709682e-03 1.126923270339204091e-04 +4.417508782383706978e-02 3.468390280022550735e-03 9.011601911499248255e-05 +4.461683870207543839e-02 2.043323083226101459e-03 6.771280840703334982e-05 +4.506300708909619090e-02 1.559520544942631388e-03 5.811869030798478701e-05 +4.551363715998715809e-02 1.772946919700626274e-03 5.989692787385214449e-05 +4.596877353158702884e-02 2.677141260025253568e-03 7.329081958888819623e-05 +4.642846126690290676e-02 3.666908747543148016e-03 8.566098740963072004e-05 +4.689274587957192875e-02 4.388384079732265443e-03 9.216933769464006471e-05 +4.736167333836765331e-02 4.856835369328015538e-03 9.651117966695565466e-05 +4.783529007175132963e-02 4.780713401745863809e-03 9.461854862990549747e-05 +4.831364297246884543e-02 4.377095716284970690e-03 8.934218899319700045e-05 +4.879677940219352694e-02 3.486055053271880887e-03 7.827243735811552914e-05 +4.928474719621546429e-02 2.637208854446882866e-03 6.633941815619954303e-05 +4.977759466817761880e-02 1.731061442106655857e-03 5.383155878658061222e-05 +5.027537061485939929e-02 1.134976025958563638e-03 4.241098861541356814e-05 +5.077812432100799189e-02 9.763903628048703964e-04 3.888619690404805922e-05 +5.128590556421806779e-02 1.300536423934508514e-03 4.334597503069694121e-05 +5.179876461986025055e-02 1.610663402016778399e-03 4.753315532881992935e-05 +5.231675226605884965e-02 2.154966154293718773e-03 5.436052970246580399e-05 +5.283991978871943607e-02 2.399653692430111802e-03 5.733946081172328047e-05 +5.336831898660663459e-02 2.451766967554894032e-03 5.721529526540989377e-05 +5.390200217647270198e-02 2.227167762748605544e-03 5.411443276862870351e-05 +5.444102219823743205e-02 1.807217959127271597e-03 4.855736035398213721e-05 +5.498543242021980415e-02 1.454406523688492195e-03 4.241088417979424274e-05 +5.553528674442199942e-02 9.813461931372554486e-04 3.414741014440015590e-05 +5.609063961186622205e-02 7.532135996391244601e-04 2.948322232415814627e-05 +5.665154600798488760e-02 7.012572380806146284e-04 2.794853509408858671e-05 +5.721806146806473342e-02 7.771553235777523428e-04 2.904504686728343800e-05 +5.779024208274538554e-02 1.059730451634295981e-03 3.348398526451178646e-05 +5.836814450357283302e-02 1.169038296307321626e-03 3.455274737504140210e-05 +5.895182594860856606e-02 1.388088351148267577e-03 3.700815612809192943e-05 +5.954134420809464867e-02 1.257815096357156213e-03 3.463582528480189910e-05 +6.013675765017559294e-02 1.120319974466654116e-03 3.211402177784241919e-05 +6.073812522667734748e-02 8.678022690329872772e-04 2.794172869858884480e-05 +6.134550647894412845e-02 6.520208410042558278e-04 2.391285332304160581e-05 +6.195896154373356501e-02 4.897888890646553452e-04 2.072216711651970482e-05 +6.257855115917090871e-02 4.579304139384705245e-04 1.981757960195356663e-05 +6.320433667076261197e-02 5.415598024399560046e-04 2.102000243742502649e-05 +6.383638003747024725e-02 6.547732148038251047e-04 2.279826499545694810e-05 +6.447474383784493335e-02 7.667668737037411884e-04 2.455654779966002387e-05 +6.511949127622339295e-02 7.695299321922156963e-04 2.416414657071059348e-05 +6.577068618898562757e-02 7.085501610783899494e-04 2.269939712451517818e-05 +6.642839305087547275e-02 6.156451615759119976e-04 2.089000150928077635e-05 +6.709267698138424163e-02 4.607121623228928146e-04 1.782293610593658472e-05 +6.776360375119808155e-02 3.899997713052176431e-04 1.616139037230997444e-05 +6.844123978871005654e-02 3.267151278531543247e-04 1.460018198041135038e-05 +6.912565218659716404e-02 3.452670365094637054e-04 1.485353271340989845e-05 +6.981690870846313235e-02 3.654571902016810867e-04 1.528811482279843865e-05 +7.051507779554777589e-02 4.346692615618508409e-04 1.635855228357244962e-05 +7.122022857350325531e-02 4.682213908558078988e-04 1.688716032374847477e-05 +7.193243085923828328e-02 4.478670515540233792e-04 1.636962715960284763e-05 +7.265175516783066445e-02 3.824165369493857307e-04 1.499428136264525837e-05 +7.337827271950897456e-02 2.929984715457706270e-04 1.301120893643341941e-05 +7.411205544670407264e-02 2.693438617915804934e-04 1.241056920999069887e-05 +7.485317600117111225e-02 2.318091034795509127e-04 1.140697346606672365e-05 +7.560170776118281533e-02 2.299134502877448545e-04 1.130526429359188710e-05 +7.635772483879464667e-02 2.619876397776441492e-04 1.182727614598402825e-05 +7.712130208718259716e-02 3.138603120015222270e-04 1.286370749945077099e-05 +7.789251510805442202e-02 2.598934740028068673e-04 1.155148982150466783e-05 +7.867144025913497263e-02 2.513286763082536387e-04 1.119357272335433348e-05 +7.945815466172631569e-02 2.234848993171245982e-04 1.053111550527134412e-05 +8.025273620834358357e-02 1.767264059644482169e-04 9.467501721226773785e-06 +8.105526357042701358e-02 1.691431978753886716e-04 9.183554461113603554e-06 +8.186581620613128663e-02 1.503770022311503370e-04 8.745235672678214570e-06 +8.268447436819259533e-02 1.677302399767367465e-04 9.070366885110726324e-06 +8.351131911187453793e-02 1.980364851948959650e-04 9.650027870614652446e-06 +8.434643230299326833e-02 1.852920214366163038e-04 9.317039114225193996e-06 +8.518989662602320656e-02 1.499599307908415025e-04 8.324185747479697554e-06 +8.604179559228344876e-02 1.314014971377320878e-04 7.800622562199827575e-06 +8.690221354820627797e-02 1.054289625116280383e-04 6.921516600694654900e-06 +8.777123568368833118e-02 1.053753717786328495e-04 6.810053312903083097e-06 +8.864894804052522725e-02 1.119312704563472146e-04 6.821102449234906479e-06 +8.953543752093047481e-02 1.322337789811300001e-04 7.339445379596633867e-06 +9.043079189613978386e-02 1.283597341106908923e-04 7.151014339695089045e-06 +9.133509981510118392e-02 9.335388611452165558e-05 6.160788141087810660e-06 +9.224845081325219742e-02 1.004221458352736753e-04 6.330769298006953112e-06 +9.317093532138472078e-02 7.765488043420873258e-05 5.645973506495896344e-06 +9.410264467459857063e-02 8.162236324135722562e-05 5.661924443398569444e-06 +9.504367112134455564e-02 1.017280267137267566e-04 6.251952856985292977e-06 +9.599410783255798996e-02 1.020539115589025867e-04 6.238117984265380984e-06 +9.695404891088357791e-02 8.062778824555101055e-05 5.622517184018380224e-06 +9.792358939999240564e-02 7.102583527053819249e-05 5.293125974455844092e-06 +9.890282529399233025e-02 6.813184355826474637e-05 5.034734479188021490e-06 +9.989185354693225216e-02 7.137485997839302016e-05 5.195105027377643025e-06 +1.008907720824015752e-01 7.057281647160351667e-05 5.137647265988472609e-06 +1.018996798032255902e-01 7.675439273484048876e-05 5.324466293957331068e-06 +1.029186766012578497e-01 6.913165882648532312e-05 5.033449576254600536e-06 +1.039478633672704377e-01 6.053859667478866100e-05 4.659405605353663913e-06 +1.049873420009431318e-01 4.936121714021242407e-05 4.267931001957409334e-06 +1.060372154209525686e-01 4.674057165034654199e-05 4.180721660600625832e-06 +1.070975875751620787e-01 4.464585354224274777e-05 4.155835080890959516e-06 +1.081685634509137045e-01 4.768118259889287427e-05 4.354149443848274115e-06 +1.092502490854228431e-01 4.564484919597203074e-05 4.258578843619183407e-06 +1.103427515762770705e-01 4.414959412098914791e-05 4.082661608612003712e-06 +1.114461790920398404e-01 2.946402815509966533e-05 3.404609833643232976e-06 +1.125606408829602501e-01 3.486466558000047368e-05 3.573814195825578365e-06 +1.136862472917898464e-01 3.925685636139352532e-05 3.796817661239815164e-06 +1.148231097647077481e-01 3.492076787180431317e-05 3.575930526868578416e-06 +1.159713408623548186e-01 2.989681194920179865e-05 3.378044034330096741e-06 +1.171310542709783631e-01 3.131405474992854105e-05 3.396466292030062597e-06 +1.183023648136881656e-01 3.023648299109089503e-05 3.272203834212763159e-06 +1.194853884618250484e-01 2.937054532130156472e-05 3.204211779238931707e-06 +1.206802423464432839e-01 2.511961625981274995e-05 2.978766884919398264e-06 +1.218870447699077209e-01 2.635860065974839796e-05 2.952304441884318069e-06 +1.231059152176068039e-01 2.913788954918732752e-05 3.151074274968107682e-06 +1.243369743697828878e-01 2.459814732076009066e-05 2.888900719738479907e-06 +1.255803441134807075e-01 2.124441485624542774e-05 2.736663068640498635e-06 +1.268361475546155304e-01 2.336507463876444875e-05 2.772070136930589555e-06 +1.281045090301616840e-01 1.727823125888399715e-05 2.464297357128315650e-06 +1.293855541204632642e-01 1.779240999975438751e-05 2.468449343570141163e-06 +1.306794096616679113e-01 2.036335067118101859e-05 2.647409555907994637e-06 +1.319862037582845982e-01 1.777171170717303680e-05 2.438983366622952790e-06 +1.333060657958674566e-01 1.698748801765785198e-05 2.402995319852737050e-06 +1.346391264538261134e-01 1.655746091485642290e-05 2.414188217409149562e-06 +1.359855177183643682e-01 1.649789047816291876e-05 2.378764839236609791e-06 +1.373453728955480457e-01 1.266273831193601764e-05 2.201987343437221238e-06 +1.387188266245035217e-01 1.511713114394918138e-05 2.291992982737297277e-06 +1.401060148907485314e-01 2.096846206933557626e-05 2.632507003668304218e-06 +1.415070750396560384e-01 1.047615484122052476e-05 2.055114483174406777e-06 +1.429221457900525794e-01 1.066979418487062025e-05 2.011483842891142794e-06 +1.443513672479531107e-01 1.040914158356007319e-05 2.035459398539187005e-06 +1.457948809204326346e-01 9.265214965938172638e-06 1.967267115226693151e-06 +1.472528297296369360e-01 1.235251393983847596e-05 2.096003377656729839e-06 +1.487253580269333186e-01 1.048663758972928307e-05 2.012960227420739764e-06 +1.502126116072026729e-01 1.215055251343980087e-05 2.112270910323698531e-06 +1.517147377232747063e-01 7.880361293900176704e-06 1.818196232191432310e-06 +1.532318851005074478e-01 7.472671962016670648e-06 1.812647735517314214e-06 +1.547642039515125245e-01 7.512953762202556587e-06 1.825875318096739843e-06 +1.563118459910276536e-01 2.773279262346573839e-06 1.522066910985690796e-06 +1.578749644509379324e-01 7.466344365805451979e-06 1.751299428059455474e-06 +1.594537140954473131e-01 3.478692290829746724e-06 1.461953910418763594e-06 +1.610482512364017904e-01 6.310704170563981723e-06 1.689383021211634574e-06 +1.626587337487658269e-01 3.304514791654456887e-06 1.536540039130894862e-06 +1.642853210862534885e-01 5.441760944400779491e-06 1.709835073432284520e-06 +1.659281742971160101e-01 5.101591870592408852e-06 1.756971930726316673e-06 +1.675874560400871793e-01 3.449064727240223828e-06 1.534267470969891921e-06 +1.692633306004880378e-01 4.058615019277138956e-06 1.608972683711762082e-06 +1.709559639064929248e-01 2.748177721491532134e-06 1.461026885014348609e-06 +1.726655235455578641e-01 5.112962809070757835e-06 1.704745728769629201e-06 +1.743921787810134294e-01 4.223539937037318382e-06 1.684078147913856360e-06 +1.761361005688235615e-01 3.383719630700604828e-06 1.664053147858801049e-06 +1.778974615745118060e-01 1.133800598746720635e-06 1.534195549435477122e-06 +1.796764361902569163e-01 2.756839003966684972e-06 1.502835557690069860e-06 +1.814732005521594860e-01 1.509343278791626425e-07 1.343504134642535153e-06 +1.832879325576810825e-01 5.018112103433453691e-06 1.831651789674323033e-06 +1.851208118832579075e-01 1.182286667148288695e-06 1.426976590759627672e-06 +1.869720200020904555e-01 2.149422459969368605e-06 1.506765042878560731e-06 +1.888417402021113634e-01 1.577347430063498481e-06 1.498668362628286000e-06 +1.907301576041324775e-01 1.661366331477357738e-06 1.538780514780319604e-06 +1.926374591801738312e-01 2.511267011267096035e-06 1.753842338326077295e-06 +1.945638337719755584e-01 2.272661975269368429e-06 1.725617463680871948e-06 +1.965094721096953267e-01 4.808962653675773876e-07 1.441572551523518401e-06 +1.984745668307922595e-01 2.433021934556507408e-06 1.702964540296707120e-06 +2.004593124991001785e-01 1.071518145005628213e-06 1.664956371442146717e-06 +2.024639056240911672e-01 3.591374758756577616e-06 1.989362012411419798e-06 +2.044885446803320905e-01 3.221158957963749245e-08 1.360891547796676315e-06 +2.065334301271354034e-01 3.487055025808921385e-06 2.013145483121405838e-06 +2.085987644284067466e-01 2.358122962873788170e-06 2.092145333163071486e-06 +2.106847520726908007e-01 2.365146128950737371e-06 2.090854423254883346e-06 +2.127915995934177018e-01 4.524699308504542470e-06 2.313131984911938446e-06 +2.149195155893518783e-01 7.471039167274095850e-07 1.816566628509189585e-06 +2.171750304146550237e-01 3.486741248170604427e-06 2.235995130048871022e-06 diff --git a/tests/refl1d/polref_legacy_loader/Ni58_u.dat b/tests/refl1d/polref_legacy_loader/Ni58_u.dat new file mode 100644 index 000000000..972ab4d49 --- /dev/null +++ b/tests/refl1d/polref_legacy_loader/Ni58_u.dat @@ -0,0 +1,309 @@ +1.002981050697613827e-02 7.482526105944300454e-01 1.958871630882731696e-02 +1.013010861204590059e-02 7.593156748881259022e-01 1.944200057922624778e-02 +1.023140969816635840e-02 7.561576015500585113e-01 1.910077891924370427e-02 +1.033372379514802333e-02 7.571642199905121995e-01 1.869070629828195260e-02 +1.043706103309950325e-02 7.896553402425269264e-01 1.907673862414058924e-02 +1.054143164343049680e-02 7.343859722903492981e-01 1.814305806860735948e-02 +1.064684595986480423e-02 7.882349712986534973e-01 1.862380800568590525e-02 +1.075331441946345175e-02 7.492046598153878634e-01 1.793800391489093829e-02 +1.086084756365808535e-02 7.844202223982622568e-01 1.808974690138519595e-02 +1.096945603929466717e-02 7.708541626320115636e-01 1.722113592018862868e-02 +1.107915059968761495e-02 7.674819968785231428e-01 1.681154366530933364e-02 +1.118994210568449027e-02 7.734207954462467560e-01 1.645445413140523422e-02 +1.130184152674133455e-02 7.839057429200384508e-01 1.635951394057836780e-02 +1.141485994200874821e-02 7.912734981139767365e-01 1.611428450298521206e-02 +1.152900854142883610e-02 7.751317304484892645e-01 1.570000398893699536e-02 +1.164429862684312339e-02 7.534745215131779528e-01 1.551633470714706801e-02 +1.176074161311155622e-02 7.706356782712516784e-01 1.550075620586694077e-02 +1.187834902924267064e-02 7.455123880231859790e-01 1.504011013520120676e-02 +1.199713251953509613e-02 7.791266296359453669e-01 1.531332247726563227e-02 +1.211710384473044765e-02 7.717416043299001327e-01 1.508778406553614934e-02 +1.223827488317775179e-02 7.730584896209429235e-01 1.481457596261111405e-02 +1.236065763200952863e-02 7.740888753921544296e-01 1.455005240567753232e-02 +1.248426420832962278e-02 7.807893267470907839e-01 1.468701738884924286e-02 +1.260910685041291904e-02 7.472410089986090131e-01 1.403496571548791712e-02 +1.273519791891705027e-02 7.597243880337184452e-01 1.380141588842400367e-02 +1.286254989810622050e-02 7.659275302419276121e-01 1.363073289023714399e-02 +1.299117539708728383e-02 7.615437739522211702e-01 1.321064874645622861e-02 +1.312108715105815560e-02 7.828184338109537288e-01 1.336558559189179526e-02 +1.325229802256873771e-02 7.923231346933302666e-01 1.334546022274350069e-02 +1.338482100279442429e-02 7.854533965069769863e-01 1.314269991171507397e-02 +1.351866921282236789e-02 7.578920860009192850e-01 1.288277508700126119e-02 +1.365385590495059309e-02 7.856233777784900063e-01 1.303262080710107171e-02 +1.379039446400009798e-02 7.736154738082260396e-01 1.258432812913510938e-02 +1.392829840864009960e-02 7.743258877907235327e-01 1.224039361304370653e-02 +1.406758139272649977e-02 7.599506021097957031e-01 1.176153003479988961e-02 +1.420825720665376546e-02 7.772762193435328593e-01 1.178815334743109865e-02 +1.435033977872030367e-02 7.861040598274476876e-01 1.171487004001967036e-02 +1.449384317650750584e-02 7.810036313810545527e-01 1.157062525407246724e-02 +1.463878160827258162e-02 7.778436635157814916e-01 1.142086588758600696e-02 +1.478516942435530862e-02 7.797151607011362229e-01 1.111632073129668018e-02 +1.493302111859886108e-02 7.906653385374806664e-01 1.104394349873799933e-02 +1.508235132978484952e-02 7.799070564007974937e-01 1.064779440763300410e-02 +1.523317484308269777e-02 7.780038674132616627e-01 1.057953534662829827e-02 +1.538550659151352584e-02 7.852724412871887605e-01 1.046417502631476031e-02 +1.553936165742866166e-02 7.737633423098951857e-01 1.031739607372816198e-02 +1.569475527400295001e-02 7.842888861819062862e-01 1.016680673787044922e-02 +1.585170282674297840e-02 8.022360201873551810e-01 1.018111230613392114e-02 +1.601021985501040884e-02 7.849116710013124276e-01 9.810576579485922460e-03 +1.617032205356051106e-02 7.716179401396816573e-01 9.677707223801193526e-03 +1.633202527409611735e-02 7.770415310617851956e-01 9.557725742415723938e-03 +1.649534552683707897e-02 8.014526510074031496e-01 9.558187069456205651e-03 +1.666029898210544952e-02 7.887504546297787744e-01 9.294565578893751803e-03 +1.682690197192650283e-02 7.597699162733986267e-01 8.882699256824359499e-03 +1.699517099164576939e-02 7.822126548536326718e-01 8.934190423818417701e-03 +1.716512270156222639e-02 7.780968491198759773e-01 8.774083562946548981e-03 +1.733677392857784980e-02 7.778183371868986340e-01 8.600378155701578903e-03 +1.751014166786362888e-02 7.872292568003794733e-01 8.557656133616253769e-03 +1.768524308454226535e-02 7.820747607592092310e-01 8.413279920354040445e-03 +1.786209551538768883e-02 7.819285015383216075e-01 8.246482290382649641e-03 +1.804071647054156582e-02 7.784049517627080750e-01 8.088694336117255995e-03 +1.822112363524697881e-02 7.853347629228726312e-01 8.081510702699142012e-03 +1.840333487159944922e-02 7.611706876076044237e-01 7.744102344134867408e-03 +1.858736822031544292e-02 7.852322919993133254e-01 7.823505343372569656e-03 +1.877324190251859759e-02 7.745957585670836254e-01 7.636496492037469358e-03 +1.896097432154378315e-02 7.810187491311190167e-01 7.574837335948347329e-03 +1.915058406475922056e-02 7.832555328953207940e-01 7.512118288039040456e-03 +1.934208990540681183e-02 7.875279457310266906e-01 7.405912473771042101e-03 +1.953551080446088231e-02 7.724095894050313493e-01 7.181634617943764842e-03 +1.973086591250549152e-02 7.739116947705039218e-01 7.105579443199113582e-03 +1.992817457163054834e-02 7.909821326835324573e-01 7.207003490280904437e-03 +2.012745631734685209e-02 7.737779242106098687e-01 6.917765284580705554e-03 +2.032873088052031957e-02 7.726303095160360623e-01 6.841771542042829855e-03 +2.053201818932552658e-02 7.820967068078077400e-01 6.802398721935109215e-03 +2.073733837121877893e-02 7.722366828619966483e-01 6.689917388342920407e-03 +2.094471175493096624e-02 7.800878526209226171e-01 6.664170232661071475e-03 +2.115415887248027482e-02 7.744750097678219092e-01 6.583858285362221424e-03 +2.136570046120507896e-02 7.804693217814490103e-01 6.574302653531187250e-03 +2.157935746581712833e-02 7.915449971684195285e-01 6.613715323118186766e-03 +2.179515104047529891e-02 7.793348353256197569e-01 6.348232166325385416e-03 +2.201310255088004958e-02 7.936969511219660323e-01 6.351982167230891402e-03 +2.223323357638885139e-02 7.755017392792735720e-01 6.138567676892042572e-03 +2.245556591215273901e-02 7.897221739491561143e-01 6.170034879628689788e-03 +2.268012157127426848e-02 7.809960917423772742e-01 6.021794906907438488e-03 +2.290692278698701345e-02 7.856802305158814281e-01 6.008802340861139381e-03 +2.313599201485688067e-02 7.762879310463274285e-01 5.952144092179563820e-03 +2.336735193500544955e-02 7.802544499819158430e-01 5.929864044788080331e-03 +2.360102545435550578e-02 7.864882545698744787e-01 5.970784143869459562e-03 +2.383703570889906045e-02 7.807528779008734432e-01 5.873684576850428211e-03 +2.407540606598804894e-02 7.797683532080483815e-01 5.797555450322136594e-03 +2.431616012664793158e-02 7.776452426668452045e-01 5.737837249296493143e-03 +2.455932172791441132e-02 7.699751455425593027e-01 5.610069818896685351e-03 +2.480491494519355272e-02 7.858937003177569602e-01 5.714529148756552525e-03 +2.505296409464548985e-02 7.895365178036946041e-01 5.669719331338499320e-03 +2.530349373559194481e-02 7.649233456780818452e-01 5.456457074736356487e-03 +2.555652867294786607e-02 7.647127187536455484e-01 5.411897801778281503e-03 +2.581209395967734577e-02 7.508221017735592362e-01 5.271669331121699165e-03 +2.607021489927411825e-02 7.234355613050620359e-01 5.059214346591299309e-03 +2.633091704826685808e-02 7.012055483628131247e-01 4.914204658206467770e-03 +2.659422621874953097e-02 6.194801742579807424e-01 4.437545371110065626e-03 +2.686016848093702308e-02 5.093585504960370658e-01 3.849945369339519054e-03 +2.712877016574639227e-02 3.777914191461458904e-01 3.046204671952071515e-03 +2.740005786740385557e-02 3.111352693929701485e-01 2.690061854511888433e-03 +2.767405844607789822e-02 3.243538377479832646e-01 2.711343765250009800e-03 +2.795079903053867415e-02 3.476584776976763824e-01 2.792017153721776997e-03 +2.823030702084406221e-02 3.297065288741153344e-01 2.646136347247876174e-03 +2.851261009105250308e-02 2.749464948726271785e-01 2.303075424949756721e-03 +2.879773619196302620e-02 2.002554483909886884e-01 1.833841176524711849e-03 +2.908571355388265764e-02 1.252024253370357387e-01 1.323464796474844302e-03 +2.937657068942148286e-02 7.785823305484400325e-02 9.543010307446839896e-04 +2.967033639631570102e-02 7.802038761305757353e-02 9.332281105703383976e-04 +2.996703976027885463e-02 1.097946402638095009e-01 1.148394113319137775e-03 +3.026671015788164748e-02 1.390590033361110700e-01 1.314036894491371144e-03 +3.056937725946046180e-02 1.628644826117039424e-01 1.449763548224091087e-03 +3.087507103205506392e-02 1.613503801175125152e-01 1.424926047079625759e-03 +3.118382174237561283e-02 1.452302674010216288e-01 1.315265073657184876e-03 +3.149565995979937416e-02 1.187456342465564169e-01 1.131297739242022272e-03 +3.181061655939736166e-02 8.705318272455742079e-02 9.167469756346192846e-04 +3.212872272499133625e-02 5.360026866122166028e-02 6.742534948843547250e-04 +3.245000995224124607e-02 3.109435887470413107e-02 4.831133482032019160e-04 +3.277451005176366255e-02 2.183202209352878495e-02 3.819157890612535433e-04 +3.310225515228129578e-02 2.858249898693427868e-02 4.401483788576702398e-04 +3.343327770380410957e-02 4.036097431671255287e-02 5.244762833752925893e-04 +3.376761048084215427e-02 5.510235622178165371e-02 6.220510308639806262e-04 +3.410528658565057519e-02 6.565993110303382230e-02 6.735892987558860694e-04 +3.444633945150708115e-02 7.208997869871901221e-02 7.089458163955420942e-04 +3.479080284602215078e-02 6.835392755019752131e-02 6.792885967943137343e-04 +3.513871087448237895e-02 6.048638761571350358e-02 6.199364097883757266e-04 +3.549009798322719927e-02 4.704050950562248257e-02 5.259108579310749080e-04 +3.584499896305946842e-02 3.240684450248263598e-02 4.138941705579572347e-04 +3.620344895269006491e-02 1.964846085213960841e-02 3.055808335999515022e-04 +3.656548344221696722e-02 1.138106338877919663e-02 2.227224782250407712e-04 +3.693113827663913051e-02 8.292508013624504820e-03 1.846141840949761523e-04 +3.730044965940552959e-02 1.108392806007199582e-02 2.129658543340796548e-04 +3.767345415599958336e-02 1.651783769788155165e-02 2.609020124939672087e-04 +3.805018869755957822e-02 2.414674329220104290e-02 3.229595750118423357e-04 +3.843069058453517373e-02 2.890959910689819279e-02 3.520722821352067849e-04 +3.881499749038051783e-02 3.180659441590983488e-02 3.660145602446521120e-04 +3.920314746528432565e-02 3.001767639257227338e-02 3.491290109996827702e-04 +3.959517893993716453e-02 2.712153398359964246e-02 3.264359396060269639e-04 +3.999113072933653534e-02 2.237428630300315746e-02 2.895333348301142853e-04 +4.039104203662990250e-02 1.506371865569815054e-02 2.267929207022477249e-04 +4.079495245699620021e-02 9.952480524749198615e-03 1.783443963473173646e-04 +4.120290198156616179e-02 5.725917912116658751e-03 1.287983643229521327e-04 +4.161493100138181911e-02 4.017720639529323394e-03 1.041999000475912898e-04 +4.203108031139564382e-02 5.425999618539705492e-03 1.209817120087359186e-04 +4.245139111450960123e-02 7.783929412634247279e-03 1.454281827163862555e-04 +4.287590502565469253e-02 1.089560714160097733e-02 1.732606329778603438e-04 +4.330466407591124223e-02 1.376127039272895779e-02 1.963770491483300120e-04 +4.373771071667036103e-02 1.466097021079263742e-02 1.986701763864018159e-04 +4.417508782383706978e-02 1.455472645120683972e-02 1.951365208560846859e-04 +4.461683870207543839e-02 1.261949618106108714e-02 1.752843082967515151e-04 +4.506300708909619090e-02 9.836763592658179581e-03 1.498646911577959943e-04 +4.551363715998715809e-02 7.101196812326279750e-03 1.228507099457923715e-04 +4.596877353158702884e-02 4.554282873730650105e-03 9.654987728571519650e-05 +4.642846126690290676e-02 2.974353501597842148e-03 7.626313277322933947e-05 +4.689274587957192875e-02 2.659560676539418720e-03 7.079065292160942953e-05 +4.736167333836765331e-02 3.352948013015416995e-03 7.940134413875305180e-05 +4.783529007175132963e-02 4.831060683856779232e-03 9.477632572887945844e-05 +4.831364297246884543e-02 5.982261065402348470e-03 1.050286917163336509e-04 +4.879677940219352694e-02 7.118294526166908491e-03 1.141903316490462412e-04 +4.928474719621546429e-02 7.230070698198733971e-03 1.133649765094476111e-04 +4.977759466817761880e-02 6.796897728061032998e-03 1.087229156825925288e-04 +5.027537061485939929e-02 5.482194638131119256e-03 9.462185622485931146e-05 +5.077812432100799189e-02 3.976435985601631945e-03 7.885315335118886959e-05 +5.128590556421806779e-02 2.745490481991112557e-03 6.332738163013024656e-05 +5.179876461986025055e-02 1.848888890725142869e-03 5.075990392878079819e-05 +5.231675226605884965e-02 1.652133440032625645e-03 4.749798182678675878e-05 +5.283991978871943607e-02 1.938081261826288650e-03 5.124609896257907484e-05 +5.336831898660663459e-02 2.632901857641583611e-03 5.923561235787548461e-05 +5.390200217647270198e-02 3.284503192478797472e-03 6.597988507832210146e-05 +5.444102219823743205e-02 3.709163787574425077e-03 7.043926669708925248e-05 +5.498543242021980415e-02 3.565589285972710007e-03 6.741171364205524909e-05 +5.553528674442199942e-02 3.363038541721376142e-03 6.424386738735219835e-05 +5.609063961186622205e-02 2.611964975005781880e-03 5.502614152515909615e-05 +5.665154600798488760e-02 1.910302910310361386e-03 4.621925818280502935e-05 +5.721806146806473342e-02 1.363524738877364747e-03 3.842313332374331595e-05 +5.779024208274538554e-02 1.022986340352299980e-03 3.281854311209464811e-05 +5.836814450357283302e-02 1.154363416153656938e-03 3.412366719632882998e-05 +5.895182594860856606e-02 1.464674449888726110e-03 3.794818451956963025e-05 +5.954134420809464867e-02 1.808512488992235776e-03 4.162958270980611806e-05 +6.013675765017559294e-02 1.997467970375495835e-03 4.315195508265942431e-05 +6.073812522667734748e-02 2.047804847879250607e-03 4.319173964923420832e-05 +6.134550647894412845e-02 1.885030486194831569e-03 4.091534260454005826e-05 +6.195896154373356501e-02 1.445659439838603653e-03 3.534179227717438714e-05 +6.257855115917090871e-02 1.090772032789909295e-03 3.018032003953568742e-05 +6.320433667076261197e-02 8.372455595955990504e-04 2.604516871312484631e-05 +6.383638003747024725e-02 7.346859450216491547e-04 2.417731481057591877e-05 +6.447474383784493335e-02 8.512443309367430941e-04 2.594801501497519077e-05 +6.511949127622339295e-02 1.007100635794293871e-03 2.769677834259177119e-05 +6.577068618898562757e-02 1.157733285456134624e-03 2.904509965583768687e-05 +6.642839305087547275e-02 1.207441603322650589e-03 2.913670904885016851e-05 +6.709267698138424163e-02 1.126468576692678030e-03 2.762343907255326492e-05 +6.776360375119808155e-02 8.887764989304772038e-04 2.423372070237291947e-05 +6.844123978871005654e-02 6.964346459820237390e-04 2.111308420042121487e-05 +6.912565218659716404e-02 5.777496416566249831e-04 1.913828341645311962e-05 +6.981690870846313235e-02 5.018903265971914104e-04 1.770109964161792291e-05 +7.051507779554777589e-02 5.599369491162375619e-04 1.854652894193828896e-05 +7.122022857350325531e-02 6.803078944685103310e-04 2.017637453767306331e-05 +7.193243085923828328e-02 7.381017702503316286e-04 2.087478386246323356e-05 +7.265175516783066445e-02 7.460488937757710822e-04 2.073022037098650724e-05 +7.337827271950897456e-02 6.717743916484459699e-04 1.946836010237141477e-05 +7.411205544670407264e-02 5.791211314979883206e-04 1.784324990643594339e-05 +7.485317600117111225e-02 4.312129489500006550e-04 1.533417068237188794e-05 +7.560170776118281533e-02 3.539175872199686480e-04 1.386652008800826466e-05 +7.635772483879464667e-02 3.547396789147012788e-04 1.381021969651333650e-05 +7.712130208718259716e-02 3.990304670977693510e-04 1.437892743353655765e-05 +7.789251510805442202e-02 4.794948210370777487e-04 1.548672234350330078e-05 +7.867144025913497263e-02 4.768933358393112653e-04 1.527840349070280936e-05 +7.945815466172631569e-02 4.389272207480489438e-04 1.455238654549853014e-05 +8.025273620834358357e-02 3.753628059751003688e-04 1.358031990810671093e-05 +8.105526357042701358e-02 2.758689234545541667e-04 1.161375342481590037e-05 +8.186581620613128663e-02 2.592053298378401826e-04 1.131140257311123717e-05 +8.268447436819259533e-02 2.659855272870964137e-04 1.127324361239832924e-05 +8.351131911187453793e-02 2.792123918321809417e-04 1.138812012337613569e-05 +8.434643230299326833e-02 3.263715187142975311e-04 1.213240897123176316e-05 +8.518989662602320656e-02 2.944729753563197399e-04 1.142840582154619773e-05 +8.604179559228344876e-02 2.936742332732326065e-04 1.146685550662553936e-05 +8.690221354820627797e-02 2.235811216532213909e-04 9.872762843085862612e-06 +8.777123568368833118e-02 2.010472592806709772e-04 9.218881597339376454e-06 +8.864894804052522725e-02 1.781982576789317035e-04 8.534916471526318685e-06 +8.953543752093047481e-02 2.100023506962926841e-04 9.087542325062680367e-06 +9.043079189613978386e-02 2.118031357456612849e-04 8.981925207827503747e-06 +9.133509981510118392e-02 2.197364859191649024e-04 9.103165218827516644e-06 +9.224845081325219742e-02 1.851488773891035060e-04 8.381310808685840823e-06 +9.317093532138472078e-02 1.627058430431937346e-04 7.935903691048780263e-06 +9.410264467459857063e-02 1.321360428759824242e-04 7.080050233773643873e-06 +9.504367112134455564e-02 1.402228261721582062e-04 7.228364730039974735e-06 +9.599410783255798996e-02 1.419701548456073084e-04 7.246640487314171519e-06 +9.695404891088357791e-02 1.698288327908694555e-04 7.880262665667822113e-06 +9.792358939999240564e-02 1.508519228048803577e-04 7.352414020193113072e-06 +9.890282529399233025e-02 1.230305998999084416e-04 6.623743662357619839e-06 +9.989185354693225216e-02 1.043560708058869664e-04 6.130104050971379979e-06 +1.008907720824015752e-01 9.984884174148365402e-05 6.031478994008255618e-06 +1.018996798032255902e-01 1.120102529672416432e-04 6.387527150634818856e-06 +1.029186766012578497e-01 1.096513417008614105e-04 6.195665819102950527e-06 +1.039478633672704377e-01 1.140284213230537158e-04 6.197448289861346419e-06 +1.049873420009431318e-01 8.698457727823715455e-05 5.518873073563972167e-06 +1.060372154209525686e-01 8.210379045804005679e-05 5.337658381853509635e-06 +1.070975875751620787e-01 7.696053310954612708e-05 5.227305773740853549e-06 +1.081685634509137045e-01 8.700372480171671250e-05 5.529662821359104165e-06 +1.092502490854228431e-01 8.201780020188965178e-05 5.535187362858477701e-06 +1.103427515762770705e-01 7.422311116945706007e-05 5.166259335352653237e-06 +1.114461790920398404e-01 6.123469619025995864e-05 4.646463418966606439e-06 +1.125606408829602501e-01 5.590408216146578742e-05 4.361112209793875892e-06 +1.136862472917898464e-01 6.718257312428787750e-05 4.783269052590799954e-06 +1.148231097647077481e-01 6.840978525050151957e-05 4.790592821823620567e-06 +1.159713408623548186e-01 6.840350018245868607e-05 4.749683975049334188e-06 +1.171310542709783631e-01 5.328792014035485340e-05 4.272537936396516172e-06 +1.183023648136881656e-01 4.776058291417592305e-05 3.968173769058200061e-06 +1.194853884618250484e-01 3.698458310468065327e-05 3.490069451711905448e-06 +1.206802423464432839e-01 4.305835494990956606e-05 3.715678117658698965e-06 +1.218870447699077209e-01 4.803717039343144836e-05 3.826389302766539257e-06 +1.231059152176068039e-01 4.605434162608509685e-05 3.801254219104394673e-06 +1.243369743697828878e-01 3.894843280426858701e-05 3.498987823844211332e-06 +1.255803441134807075e-01 3.769388673137656490e-05 3.401683011107718736e-06 +1.268361475546155304e-01 3.440543712649016982e-05 3.238726775774852868e-06 +1.281045090301616840e-01 3.340802483518857550e-05 3.181636110971240665e-06 +1.293855541204632642e-01 3.300087863162811595e-05 3.207736062310573059e-06 +1.306794096616679113e-01 2.883057911397765187e-05 3.024498498874661324e-06 +1.319862037582845982e-01 2.843687273644653014e-05 2.955444645036888882e-06 +1.333060657958674566e-01 2.456896747906636591e-05 2.794777818610321241e-06 +1.346391264538261134e-01 2.965313208057741411e-05 3.032590925176111272e-06 +1.359855177183643682e-01 2.137681589685471988e-05 2.648101138741583911e-06 +1.373453728955480457e-01 1.925816968063303667e-05 2.533527927238694043e-06 +1.387188266245035217e-01 2.221914359824464892e-05 2.661859053315422252e-06 +1.401060148907485314e-01 1.873399696659661773e-05 2.498883768437693161e-06 +1.415070750396560384e-01 2.049437282238181674e-05 2.541322955593688431e-06 +1.429221457900525794e-01 1.726097634833632349e-05 2.371327073455515171e-06 +1.443513672479531107e-01 1.872473085853971285e-05 2.484113572056745028e-06 +1.457948809204326346e-01 1.994507400432702585e-05 2.556251992836024387e-06 +1.472528297296369360e-01 1.745016039214729450e-05 2.404011249923240736e-06 +1.487253580269333186e-01 1.015975152763620448e-05 1.991232556392735327e-06 +1.502126116072026729e-01 1.484323035319496403e-05 2.286021045248516724e-06 +1.517147377232747063e-01 1.302082670951543239e-05 2.209174776473634079e-06 +1.532318851005074478e-01 1.275202294334747065e-05 2.236880218379993962e-06 +1.547642039515125245e-01 1.178545152887320669e-05 2.118007710639773411e-06 +1.563118459910276536e-01 9.940625708943296373e-06 1.986556095128574352e-06 +1.578749644509379324e-01 1.298537409476031504e-05 2.195339053908781301e-06 +1.594537140954473131e-01 1.183083738052069990e-05 2.085766006986878232e-06 +1.610482512364017904e-01 8.859671637370012353e-06 1.885964226845240902e-06 +1.626587337487658269e-01 9.220416279573176319e-06 2.020707177639869941e-06 +1.642853210862534885e-01 1.031935353370614060e-05 2.129602993776532770e-06 +1.659281742971160101e-01 6.572124053679172241e-06 1.955653630746246513e-06 +1.675874560400871793e-01 1.139752541084613530e-05 2.242725006523941979e-06 +1.692633306004880378e-01 7.235534844847681975e-06 1.881791675342438380e-06 +1.709559639064929248e-01 1.223352246412163141e-05 2.318109878881975522e-06 +1.726655235455578641e-01 7.578766695315353083e-06 1.851562817194630270e-06 +1.743921787810134294e-01 9.555849377277254977e-06 2.065110892367830887e-06 +1.761361005688235615e-01 6.834604410978491056e-06 1.898874275484286964e-06 +1.778974615745118060e-01 7.456347658617818164e-06 2.019318209093516005e-06 +1.796764361902569163e-01 4.807085153918740143e-06 1.815101251793650157e-06 +1.814732005521594860e-01 7.800467120525018394e-06 2.027399122913749763e-06 +1.832879325576810825e-01 5.017824469610659279e-06 1.856255285515416394e-06 +1.851208118832579075e-01 9.395282729555903481e-06 2.285152646705782700e-06 +1.869720200020904555e-01 3.245214460606851050e-06 1.663215418371818071e-06 +1.888417402021113634e-01 4.787747569184985216e-06 1.875725945227839458e-06 +1.907301576041324775e-01 3.040569218372281241e-06 1.721809598274898887e-06 +1.926374591801738312e-01 5.496651759798433853e-06 2.086444563744353942e-06 +1.945638337719755584e-01 4.648165849696168671e-06 2.012766464339780412e-06 +1.965094721096953267e-01 4.430778361920085050e-06 1.965524790479947078e-06 +1.984745668307922595e-01 6.280925711082804314e-06 2.149752651791911879e-06 +2.004593124991001785e-01 3.608870134113190023e-06 1.878028372776222329e-06 +2.024639056240911672e-01 5.378796207161411837e-06 2.146021940418202445e-06 +2.044885446803320905e-01 2.670149899831645663e-06 1.828209833233025236e-06 +2.085987644284067466e-01 2.124597183035002371e-06 1.963015373855895726e-06 +2.106847520726908007e-01 3.612391582641549197e-06 2.097515163608123368e-06 +2.127915995934177018e-01 6.335480871128776232e-07 1.672859599157467224e-06 +2.149195155893518783e-01 2.242353860369962218e-06 2.140764606437752178e-06 +2.171750304146550237e-01 2.779573026276240968e-06 2.054429492933763209e-06 diff --git a/tests/refl1d/polref_legacy_loader/test_ni58_model.py b/tests/refl1d/polref_legacy_loader/test_ni58_model.py new file mode 100644 index 000000000..705a3a90e --- /dev/null +++ b/tests/refl1d/polref_legacy_loader/test_ni58_model.py @@ -0,0 +1,77 @@ +import pytest +import numpy as np +from refl1d.names import Material, Slab, Magnetism, Experiment, FitProblem, air +from refl1d.probe.data_loaders.polref_legacy_data_loader import load_probe_polref + + +def test_ni58_model_loading(): + # Parameters from Ni58_model.py + dQoQ = 0.01 + theta = 0.25 + + # The files Ni58_d.dat and Ni58_u.dat are in the same folder as this test + # We need to pass the correct path to load_probe_polref + import os + + current_path = os.path.dirname(os.path.abspath(__file__)) + + probe = load_probe_polref( + filename="Ni58", + angle=theta, + dQoQ=dQoQ, + name="Ni58", + pol_mode="pnr", + intensity=1.0, + background=1e-7, + back_reflectivity=False, + path=current_path, + ) + + # Verify probe creation + from refl1d.names import PolarizedNeutronProbe + + assert isinstance(probe, PolarizedNeutronProbe) + assert probe.mm is not None + assert probe.pp is not None + assert probe.mp is None + assert probe.pm is None + + # Verify data was actually loaded (Ni58_d.dat and Ni58_u.dat exist) + # We check if the Q array is non-empty + assert len(probe.mm.Q) > 0 + assert len(probe.pp.Q) > 0 + + # Setup model as in Ni58_model.py + Si = Material(formula="Si") + Ni = Material(formula="Ni[58]") + + Si_sub = Slab(material=Si, thickness=0, interface=5) + Ni_layer = Slab(material=Ni, thickness=1200, interface=5) + + sample = ( + Si_sub + | Ni_layer(magnetism=Magnetism(rhoM=2.0, interface_above=5, interface_below=5, name="Ni Layer Sample 1")) + | air + ) + + # Fit params + Ni.density.pmp(-50, 0) + sample[Ni].magnetism.rhoM.range(0, 5) + sample[Ni].magnetism.dead_above.range(0, 10) # Adjusted range for test stability if needed, but keeping original + sample[Ni].magnetism.dead_below.range(0, 10) + sample[Ni].magnetism.interface_above.range(0, 50) + sample[Ni].magnetism.interface_below.range(0, 50) + + Ni_layer.thickness.range(0, 1500) + Ni_layer.interface.range(0, 50) + Si_sub.interface.range(0, 50) + + zed = 2 + step = False + + # Verify Experiment and FitProblem creation + experiment = Experiment(probe=probe, sample=sample, dz=zed, step_interfaces=step, auto_tag=True) + problem = FitProblem(experiment) + + assert experiment is not None + assert problem is not None diff --git a/tests/refl1d/polref_legacy_loader/test_polref_legacy_loader.py b/tests/refl1d/polref_legacy_loader/test_polref_legacy_loader.py new file mode 100644 index 000000000..2532fbd41 --- /dev/null +++ b/tests/refl1d/polref_legacy_loader/test_polref_legacy_loader.py @@ -0,0 +1,129 @@ +import pytest +import numpy as np +from pathlib import Path +from refl1d.names import NeutronProbe, PolarizedNeutronProbe +from refl1d.probe.data_loaders.polref_legacy_data_loader import logstep, TOF_loader, load_probe_polref + + +def test_logstep(): + # Test basic geometric progression + start = 0.01 + stop = 0.1 + step = 0.01 + # Expected: 0.01, 0.01*(1.01), 0.01*(1.01)^2 ... + # Wait, the source code says: point = point + base**(np.log10(step*point)/np.log10(base)) + # which simplifies to point = point + step*point = point * (1+step) + + res = logstep(start, stop, step) + assert res[0] == start + assert np.isclose(res[1], start * (1 + step)) + assert res[-1] >= stop + + # Test with different base (though it should not affect the result based on the math) + res_base = logstep(start, stop, step, base=2.0) + assert np.allclose(res, res_base) + + +def test_TOF_loader_simulated(): + # Test loading without a filename (simulation mode) + T = 0.25 + dQoQ = 0.02 + Q_sim_range = (0.005, 0.2) + + probe = TOF_loader(T=T, dQoQ=dQoQ, Q_sim_range=Q_sim_range) + + assert isinstance(probe, NeutronProbe) + assert np.allclose(probe.T, T) + assert np.allclose(probe.dT, T * dQoQ) + # Check if Q is log-spaced as expected + assert np.isclose(probe.Q[0], Q_sim_range[0]) + assert np.isclose(probe.Q[1], Q_sim_range[0] * (1 + dQoQ)) + # Check if L is calculated via QT2L (roughly) + # L = 4pi*sin(T)/Q (in rad) + expected_L_first = 4 * np.pi * np.sin(np.radians(T)) / probe.Q[0] + assert np.isclose(probe.L[0], expected_L_first) + + +def test_TOF_loader_file(tmp_path): + # Test loading from a temporary file + d = tmp_path / "test_data.dat" + # 3 columns: Q, R, dR + data = np.array([[0.01, 1.0, 0.1], [0.02, 0.8, 0.08], [0.03, 0.6, 0.06]]) + np.savetxt(d, data) + + T = 0.25 + dQoQ = 0.02 + probe = TOF_loader(T=T, dQoQ=dQoQ, filename=str(d), skiprows=0) + + assert isinstance(probe, NeutronProbe) + assert np.allclose(probe.Q, data[:, 0]) + assert np.allclose(probe.R, data[:, 1]) # R + assert np.allclose(probe.dR, data[:, 2]) # dR + assert np.allclose(probe.dT, T * dQoQ) + + +def test_load_probe_polref_standard(tmp_path): + # Test non-polarized loading + d = tmp_path / "test_standard.dat" + data = np.array([[0.01, 1.0, 0.1], [0.02, 0.8, 0.08]]) + np.savetxt(d, data) + + filename = "test_standard" + probe = load_probe_polref(filename=filename, angle=0.25, dQoQ=0.02, path=str(tmp_path), pol_mode=None) + + assert isinstance(probe, NeutronProbe) + assert probe.name == filename + assert "intensity test_standard" in probe.intensity.name + assert "inst" in probe.intensity.tags + + +def test_load_probe_polref_pnr(tmp_path): + # Test PNR loading (_d.dat, _u.dat) + d_file = tmp_path / "test_pnr_d.dat" + u_file = tmp_path / "test_pnr_u.dat" + data = np.array([[0.01, 1.0, 0.1], [0.02, 0.8, 0.08]]) + np.savetxt(d_file, data) + np.savetxt(u_file, data) + + filename = "test_pnr" + # Note: load_probe_polref appends .dat and suffixes + # Source code: files = dict(data_mm=f"{filepath}_d.dat", data_pp=f"{filepath}_u.dat") + # filepath = Path(path)/filename + # So it looks for path/filename_d.dat + + probe = load_probe_polref(filename=filename, angle=0.25, dQoQ=0.02, path=str(tmp_path), pol_mode="pnr") + + assert isinstance(probe, PolarizedNeutronProbe) + assert probe.mm is not None + assert probe.pp is not None + assert probe.mp is None + assert probe.pm is None + + # Verify parameter sharing + # lines 129-135: xs.intensity = probe.pp.intensity etc. + assert probe.mm.intensity is probe.pp.intensity + assert probe.mm.sample_broadening is probe.pp.sample_broadening + assert probe.mm.theta_offset is probe.pp.theta_offset + assert probe.mm.background is probe.pp.background + + +def test_load_probe_polref_pa(tmp_path): + # Test PA loading (_dd, _du, _ud, _uu) + files = ["_dd.dat", "_du.dat", "_ud.dat", "_uu.dat"] + for f in files: + data = np.array([[0.01, 1.0, 0.1], [0.02, 0.8, 0.08]]) + np.savetxt(tmp_path / f"test_pa{f}", data) + + filename = "test_pa" + probe = load_probe_polref(filename=filename, angle=0.25, dQoQ=0.02, path=str(tmp_path), pol_mode="pa") + + assert isinstance(probe, PolarizedNeutronProbe) + assert probe.mm is not None + assert probe.mp is not None + assert probe.pm is not None + assert probe.pp is not None + + # Verify parameter sharing + assert probe.mm.intensity is probe.pp.intensity + assert probe.mp.intensity is probe.pp.intensity + assert probe.pm.intensity is probe.pp.intensity