changeset 0:64e6816a6727 draft

planemo upload for repository https://github.com/muon-spectroscopy-computational-project/muon-galaxy-tools/main/muspinsim commit d130cf2c46d933fa9d0214ddbd5ddf860f322dc4
author muon-spectroscopy-computational-project
date Thu, 25 Aug 2022 16:16:19 +0000
parents
children b30217097125
files muspinsim.xml test-data/fitting.in test-data/fitting.log test-data/fitting_data.dat test-data/fitting_fitreport.txt test-data/fitting_input.dat test-data/generic_out.dat test-data/hfine.dat test-data/hfine.in test-data/hfine.log test-data/hfine_powder.dat test-data/hfine_powder.in test-data/hfine_powder.log test-data/multi_out.in test-data/multi_out.log test-data/multi_out_0_0.dat test-data/multi_out_0_1.dat test-data/multi_out_1_0.dat test-data/multi_out_1_1.dat
diffstat 19 files changed, 737 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/muspinsim.xml	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,151 @@
+<tool id="muspinsim" name="MuSpinSim Simulate" version="@TOOL_VERSION@+galaxy@WRAPPER_VERSION@" python_template_version="3.5" profile="22.01">
+    <description>perform spin dynamics calculations for muon science experiments</description>
+    <macros>
+        <!-- version of underlying tool (PEP 440) -->
+        <token name="@TOOL_VERSION@">1.1.0</token>
+        <!-- version of this tool wrapper (integer) -->
+        <token name="@WRAPPER_VERSION@">1</token>
+        <!-- citation should be updated with every underlying tool version -->
+        <!-- typical fields to update are version, month, year, and doi -->
+        <token name="@TOOL_CITATION@">
+            @software{muspinsim,
+                author = {Sturniolo, Simone and Liborio, Leandro and Owen, Josh and Mudaraddi, Anish and {Muon Spectroscopy Computational Project}},
+                license = {MIT},
+                title = {{muspinsim}},
+                url = {https://github.com/muon-spectroscopy-computational-project/muspinsim},
+                version = {v1.1.0},
+                month = {5},
+                year = {2022},
+                doi = {10.5281/zenodo.6563074}
+            }
+        </token>
+    </macros>
+    <creator>
+        <person givenName="Anish" familyName="Mudaraddi" identifier="https://orcid.org/0000-0002-2135-2705"/>
+        <person givenName="Eli" familyName="Chadwick" url="https://github.com/elichad" identifier="https://orcid.org/0000-0002-0035-6475"/>
+        <organization url="https://muon-spectroscopy-computational-project.github.io/index.html" name="The Muon Spectroscopy Computational Project"/>
+    </creator>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">muspinsim</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        ## remove spaces in names
+        mu_sim_name=\$(sed 's/ //g' <<< "$mu_sim.name") &&
+        ## create links
+        ln -s $mu_sim \$mu_sim_name &&
+        ## grab 'name' field from input file, if it doesn't exist, set name as 'muspinsim'
+        mu_out=\$(grep -A1 '^name' \$mu_sim_name | grep -v 'name' | sed -e 's/^[ \t]*//') &&
+        fitreport_out=\${mu_out:-"fitting_data"}_fitreport.txt &&
+        mu_out=\${mu_out:-"muspinsim"} &&
+        log_out=\$(echo \$mu_sim_name | cut -d '.' -f1).log &&
+        ## if fitting data required, check if fitting data exists
+        ## create symlink and change filepath in input file to point to symlink
+        if grep '^fitting_data' $mu_sim; then
+            if [[ '$mu_exp_in.name' != 'None' ]]; then
+                mu_exp_in_name=\$(sed 's/ //g' <<< "$mu_exp_in.name") &&
+                ln -s $mu_exp_in \$mu_exp_in_name &&
+                sed -iE "/^fitting_data/{n;s/([^)]*)/(\"\$mu_exp_in_name\")/g}" \$mu_sim_name;
+            else
+                echo "fitting data required, but no experiment data given" && exit 64;
+            fi;
+        fi &&
+        muspinsim \$mu_sim_name &&
+        mkdir data &&
+        mv \$mu_out*.dat data &&
+        if test -f \$fitreport_out; then mv -f \$fitreport_out fit_report.txt; fi &&
+        mv \$log_out log_out.log
+    ]]></command>
+    <inputs>
+        <param type="data" name="mu_sim" format="txt" label="Configuration file containing simulation parameters"/>
+        <param type="data" name="mu_exp_in" format="txt" optional="true" label="Experiment data to fit (.dat) (Optional)" help="Only required if the 'fitting_data' parameter is set in the configuration file above."/>
+    </inputs>
+    <outputs>
+        <collection name="muspinsim_results" type="list" label="Muspinsim output collection">
+            <discover_datasets pattern="__name__" directory="data" format="txt"/>
+        </collection>
+        <data label="muspinsim log for $mu_sim.name" name="log_out" format="txt" from_work_dir="log_out.log"/>
+        <data label="fit report for $mu_sim.name" name="fit_report" format="txt" from_work_dir="fit_report.txt">
+            <filter>mu_exp_in</filter>
+        </data>
+    </outputs>
+    <tests>
+        <!-- log files have a timestamp on each line, and .dat files vary by machine
+                so use compare="re_match" or "contains" with some generalised test files -->
+        <test>
+            <param name="mu_sim" value="hfine.in" ftype="txt"/>
+            <output_collection name="muspinsim_results" type="list">
+                <element name="hfine.dat" file="hfine.dat" ftype="txt" lines_diff="4"/>
+            </output_collection>
+            <output name="log_out" file="hfine.log" ftype="txt" compare="re_match"/>
+        </test>
+        <test>
+            <param name="mu_sim" value="hfine_powder.in" ftype="txt"/>
+            <output_collection name="muspinsim_results" type="list">
+                <element name="muspinsim.dat" file="generic_out.dat" ftype="txt" compare="re_match_multiline">
+                    <assert_contents>
+                        <has_size value="5100" delta="100"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output name="log_out" file="hfine_powder.log" ftype="txt" compare="re_match">
+                <assert_contents>
+                    <has_size value="802"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test>
+            <param name="mu_sim" value="fitting.in" ftype="txt"/>
+            <param name="mu_exp_in" value="fitting_input.dat" ftype="txt"/>
+            <output_collection name="muspinsim_results" type="list">
+                <element name="fitting_data.dat" file="fitting_data.dat" ftype="txt" lines_diff="4"/>
+            </output_collection>
+            <output name="log_out" file="fitting.log" ftype="txt" compare="contains">
+                <assert_contents>
+                    <has_size value="17145"/>
+                </assert_contents>
+            </output>
+            <output name="fit_report" file="fitting_fitreport.txt" ftype="txt" lines_diff="4"/>
+        </test>
+        <test>
+            <param name="mu_sim" value="multi_out.in" ftype="txt"/>
+            <output_collection name="muspinsim_results" type="list">
+                <element name="multi_out_0_0.dat" file="multi_out_0_0.dat" ftype="txt" compare="re_match_multiline">
+                    <assert_contents>
+                        <has_size value="1164" delta="100"/>
+                    </assert_contents>
+                </element>
+                <element name="multi_out_0_1.dat" file="multi_out_0_1.dat" ftype="txt" compare="re_match_multiline">
+                    <assert_contents>
+                        <has_size value="1164" delta="100"/>
+                    </assert_contents>
+                </element>
+                <element name="multi_out_1_0.dat" file="multi_out_1_0.dat" ftype="txt" compare="re_match_multiline">
+                    <assert_contents>
+                        <has_size value="1164" delta="100"/>
+                    </assert_contents>
+                </element>
+                <element name="multi_out_1_1.dat" file="multi_out_1_1.dat" ftype="txt" compare="re_match_multiline">
+                    <assert_contents>
+                        <has_size value="1164" delta="100"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output name="log_out" file="multi_out.log" ftype="txt" compare="re_match"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+        MuSpinSim is a program designed to carry out spin dynamics calculations.
+
+        Tool requires an input (.in) file which describes system and experiment details.
+        This is a text file containing keywords and values in indented blocks.
+
+        Full documentation: https://muon-spectroscopy-computational-project.github.io/muspinsim/
+
+        Command-line usage: muspinsim muspinsim.in
+    ]]></help>
+    <citations>
+        <citation type="bibtex">
+            @TOOL_CITATION@
+        </citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fitting.in	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,27 @@
+# A basic test of fitting. We define a single muon with no interactions except
+# for a dissipation term, causing an exponential decay. We then fit the rate
+# of decay using a single variable g, starting at g=0.1, bounded from 0 to
+# positive infinity.
+#
+# Some target data with added artificial noise is used as the "experiment"
+# that we are trying to fit. We expect the decay to go like
+#
+#    0.5*cos(2*pi*t)*exp(-g*t)
+#
+# with g our variable, t the time, and pi = 3.1415...
+#
+# The 0.5 factor appears in front as that's the moment of the muon.
+# With the data provided, we expect the fitting to find that g = 3.0
+
+name
+    fitting_data
+spins
+    mu
+field
+    1.0/muon_gyr
+fitting_data
+    load("fitting_input.dat")
+fitting_variables
+    g 0.1 0.0 inf
+dissipation 1
+    g
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fitting.log	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,9 @@
+Launching MuSpinSim calculation from file: fitting.in
+Performing fitting in variables: g
+Using X axis:
+		t => 100 points
+Created spin system with spins:
+		mu
+Total number of configurations to simulate: 1
+Total number of configurations to average: 1
+Simulation completed in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fitting_data.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,104 @@
+# MUSPINSIM v.1.0.3
+# Output file written on Thu Mar 31 18:26:46 2022
+# Parameters used:
+# 
+0.000000000000000000e+00 5.000000000000000000e-01
+1.010101010101010187e-02 4.839188562974035546e-01
+2.020202020202020374e-02 4.664633082870883185e-01
+3.030303030303030387e-02 4.477992370076759321e-01
+4.040404040404040747e-02 4.280884746475391855e-01
+5.050505050505051108e-02 4.074882658312278805e-01
+6.060606060606060774e-02 3.861507830642957884e-01
+7.070707070707071829e-02 3.642226954481366796e-01
+8.080808080808081495e-02 3.418447895726685060e-01
+9.090909090909091161e-02 3.191516413083217985e-01
+1.010101010101010222e-01 2.962713370496566911e-01
+1.111111111111111188e-01 2.733252428108397525e-01
+1.212121212121212155e-01 2.504278194378757871e-01
+1.313131313131313260e-01 2.276864820835683423e-01
+1.414141414141414366e-01 2.052015019882667823e-01
+1.515151515151515194e-01 1.830659485220967053e-01
+1.616161616161616299e-01 1.613656693720554314e-01
+1.717171717171717404e-01 1.401793066995395964e-01
+1.818181818181818232e-01 1.195783470499733880e-01
+1.919191919191919338e-01 9.962720276560653454e-02
+2.020202020202020443e-01 8.038332263460844229e-02
+2.121212121212121271e-01 6.189732950362884095e-02
+2.222222222222222376e-01 4.421318258634338721e-02
+2.323232323232323482e-01 2.736836221646109929e-02
+2.424242424242424310e-01 1.139407481951706241e-02
+2.525252525252525415e-01 -3.684524087184768305e-03
+2.626262626262626521e-01 -1.784809101361103933e-02
+2.727272727272727626e-01 -3.108284183089394734e-02
+2.828282828282828731e-01 -4.338028735764459798e-02
+2.929292929292929282e-01 -5.473695917159653729e-02
+3.030303030303030387e-01 -6.515412754918019356e-02
+3.131313131313131493e-01 -7.463751336033246087e-02
+3.232323232323232598e-01 -8.319699566623535436e-02
+3.333333333333333703e-01 -9.084631668437408158e-02
+3.434343434343434809e-01 -9.760278569894847989e-02
+3.535353535353535914e-01 -1.034869834058480820e-01
+3.636363636363636465e-01 -1.085224680906887867e-01
+3.737373737373737570e-01 -1.127354849463580166e-01
+3.838383838383838675e-01 -1.161546797436467660e-01
+3.939393939393939781e-01 -1.188108179753617905e-01
+4.040404040404040886e-01 -1.207365105012661172e-01
+4.141414141414141992e-01 -1.219659466287478511e-01
+4.242424242424242542e-01 -1.225346354726586373e-01
+4.343434343434343647e-01 -1.224791563476870931e-01
+4.444444444444444753e-01 -1.218369188582878598e-01
+4.545454545454545858e-01 -1.206459332648921745e-01
+4.646464646464646964e-01 -1.189445916211826354e-01
+4.747474747474748069e-01 -1.167714600958782850e-01
+4.848484848484848619e-01 -1.141650828139931795e-01
+4.949494949494949725e-01 -1.111637974770993686e-01
+5.050505050505050830e-01 -1.078055629499370810e-01
+5.151515151515152491e-01 -1.041277989319151775e-01
+5.252525252525253041e-01 -1.001672377667715969e-01
+5.353535353535353591e-01 -9.595978838201550676e-02
+5.454545454545455252e-01 -9.154041229183514095e-02
+5.555555555555555802e-01 -8.694301154298421375e-02
+5.656565656565657463e-01 -8.220032843279161117e-02
+5.757575757575758013e-01 -7.734385678189471813e-02
+5.858585858585858563e-01 -7.240376450156404964e-02
+5.959595959595960224e-01 -6.740882715655599489e-02
+6.060606060606060774e-01 -6.238637218925319194e-02
+6.161616161616162435e-01 -5.736223343937883051e-02
+6.262626262626262985e-01 -5.236071556573514141e-02
+6.363636363636364646e-01 -4.740456795212919655e-02
+6.464646464646465196e-01 -4.251496765882348261e-02
+6.565656565656565746e-01 -3.771151096337228836e-02
+6.666666666666667407e-01 -3.301221302047028378e-02
+6.767676767676767957e-01 -2.843351515931392959e-02
+6.868686868686869618e-01 -2.399029932883371685e-02
+6.969696969696970168e-01 -1.969590919585953101e-02
+7.070707070707071829e-01 -1.556217739867778345e-02
+7.171717171717172379e-01 -1.159945845839659151e-02
+7.272727272727272929e-01 -7.816666852882871858e-03
+7.373737373737374590e-01 -4.221319762637970423e-03
+7.474747474747475140e-01 -8.195840046643504406e-04
+7.575757575757576801e-01 2.383673321001708936e-03
+7.676767676767677351e-01 5.384830937016459387e-03
+7.777777777777777901e-01 8.181456699620734754e-03
+7.878787878787879562e-01 1.077224855411689636e-02
+7.979797979797980112e-01 1.315697355954898069e-02
+8.080808080808081773e-01 1.533640539123914612e-02
+8.181818181818182323e-01 1.731226071284763454e-02
+8.282828282828283983e-01 1.908713479176446168e-02
+8.383838383838384534e-01 2.066443671304065213e-02
+8.484848484848485084e-01 2.204832452786457606e-02
+8.585858585858586745e-01 2.324364065290935102e-02
+8.686868686868687295e-01 2.425584781684484575e-02
+8.787878787878788955e-01 2.509096583004076855e-02
+8.888888888888889506e-01 2.575550943309527080e-02
+8.989898989898991166e-01 2.625642745941495979e-02
+9.090909090909091717e-01 2.660104352674323366e-02
+9.191919191919192267e-01 2.679699845238049660e-02
+9.292929292929293927e-01 2.685219456694716220e-02
+9.393939393939394478e-01 2.677474208198871858e-02
+9.494949494949496138e-01 2.657290764758631768e-02
+9.595959595959596689e-01 2.625506521748296324e-02
+9.696969696969697239e-01 2.582964932112596923e-02
+9.797979797979798899e-01 2.530511082451557259e-02
+9.898989898989899450e-01 2.468987524488667346e-02
+1.000000000000000000e+00 2.399230366807731177e-02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fitting_fitreport.txt	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,11 @@
+Fitting process for fitting_data completed
+Success achieved: True
+Final absolute error <|f-f_targ|>: 0.0
+Number of simulations: 40
+Number of iterations: 20
+
+====================
+
+Values found for fitting variables:
+
+	g = 3.0368750000000104
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/fitting_input.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,100 @@
+0.000000000000000000e+00 5.005778399056657335e-01
+1.010101010101010187e-02 4.913142788391854365e-01
+2.020202020202020374e-02 4.625960774510225471e-01
+3.030303030303030387e-02 4.529727926470791810e-01
+4.040404040404040747e-02 4.201084135897126814e-01
+5.050505050505051108e-02 4.102951709644535039e-01
+6.060606060606060774e-02 3.943894674205472572e-01
+7.070707070707071829e-02 3.614924122022374342e-01
+8.080808080808081495e-02 3.335847485026482429e-01
+9.090909090909091161e-02 3.242904460614065565e-01
+1.010101010101010222e-01 2.947929241310389692e-01
+1.111111111111111188e-01 2.682338522764465272e-01
+1.212121212121212155e-01 2.499741447755643442e-01
+1.313131313131313260e-01 2.246842301024072619e-01
+1.414141414141414366e-01 2.054104137278633946e-01
+1.515151515151515194e-01 1.768606299542749838e-01
+1.616161616161616299e-01 1.571509466787300857e-01
+1.717171717171717404e-01 1.394992240477620771e-01
+1.818181818181818232e-01 1.208113647730562346e-01
+1.919191919191919338e-01 1.017481842913812301e-01
+2.020202020202020443e-01 7.761142858360846331e-02
+2.121212121212121271e-01 6.410013091446019329e-02
+2.222222222222222376e-01 3.975386175726899896e-02
+2.323232323232323482e-01 3.086974922326143900e-02
+2.424242424242424310e-01 9.161408771163311385e-03
+2.525252525252525415e-01 1.811618271503247918e-04
+2.626262626262626521e-01 -1.089231689057572859e-02
+2.727272727272727626e-01 -3.611410137367911805e-02
+2.828282828282828731e-01 -3.557403264203266163e-02
+2.929292929292929282e-01 -5.588252839143523915e-02
+3.030303030303030387e-01 -6.945501206777640602e-02
+3.131313131313131493e-01 -7.692369898000279982e-02
+3.232323232323232598e-01 -7.946056687665294105e-02
+3.333333333333333703e-01 -9.984630003175595792e-02
+3.434343434343434809e-01 -1.020561962196687433e-01
+3.535353535353535914e-01 -1.069392030325375526e-01
+3.636363636363636465e-01 -1.065046222388759123e-01
+3.737373737373737570e-01 -1.060773110739133829e-01
+3.838383838383838675e-01 -1.092459029307878832e-01
+3.939393939393939781e-01 -1.187956683377280886e-01
+4.040404040404040886e-01 -1.183132275072764639e-01
+4.141414141414141992e-01 -1.185330168454333671e-01
+4.242424242424242542e-01 -1.153280705718302129e-01
+4.343434343434343647e-01 -1.157561208782836026e-01
+4.444444444444444753e-01 -1.162230945056748066e-01
+4.545454545454545858e-01 -1.315728791918377716e-01
+4.646464646464646964e-01 -1.255221411056274550e-01
+4.747474747474748069e-01 -1.248741562875286121e-01
+4.848484848484848619e-01 -1.143533874693516555e-01
+4.949494949494949725e-01 -1.227202033240224754e-01
+5.050505050505050830e-01 -1.037750048493010224e-01
+5.151515151515152491e-01 -1.111183392954656207e-01
+5.252525252525253041e-01 -1.034044696616238934e-01
+5.353535353535353591e-01 -1.038026012968156359e-01
+5.454545454545455252e-01 -9.333574543107070465e-02
+5.555555555555555802e-01 -8.119043575888182374e-02
+5.656565656565657463e-01 -8.780715526363727652e-02
+5.757575757575758013e-01 -8.678757402752533545e-02
+5.858585858585858563e-01 -6.561193781199284314e-02
+5.959595959595960224e-01 -7.819537284931875332e-02
+6.060606060606060774e-01 -5.943809785495194481e-02
+6.161616161616162435e-01 -5.661945047010875920e-02
+6.262626262626262985e-01 -5.050281252925081094e-02
+6.363636363636364646e-01 -5.175403740852566048e-02
+6.464646464646465196e-01 -4.872824696376772818e-02
+6.565656565656565746e-01 -3.819216445914729030e-02
+6.666666666666667407e-01 -3.687545675512928639e-02
+6.767676767676767957e-01 -3.686197477560970714e-02
+6.868686868686869618e-01 -3.003067438142277903e-02
+6.969696969696970168e-01 -1.658939118843251806e-02
+7.070707070707071829e-01 -2.419886325838571661e-02
+7.171717171717172379e-01 -1.749710923657482944e-02
+7.272727272727272929e-01 -4.515936967325259732e-03
+7.373737373737374590e-01 -7.209833178823250172e-03
+7.474747474747475140e-01 -5.996664146736436010e-03
+7.575757575757576801e-01 4.146914696571531167e-03
+7.676767676767677351e-01 1.085995026796996235e-02
+7.777777777777777901e-01 1.122574572656667886e-02
+7.878787878787879562e-01 4.797691564737849995e-03
+7.979797979797980112e-01 1.160846007642780779e-02
+8.080808080808081773e-01 2.492767767864879913e-02
+8.181818181818182323e-01 1.437525093680377952e-02
+8.282828282828283983e-01 1.743612669587774056e-02
+8.383838383838384534e-01 1.966626934151189873e-02
+8.484848484848485084e-01 1.296194227363287738e-02
+8.585858585858586745e-01 3.349420140461304568e-02
+8.686868686868687295e-01 2.032633571368781811e-02
+8.787878787878788955e-01 3.197523032500756285e-02
+8.888888888888889506e-01 2.197314183479991481e-02
+8.989898989898991166e-01 3.365403812295356123e-02
+9.090909090909091717e-01 2.979919581225816752e-02
+9.191919191919192267e-01 2.304239947081147127e-02
+9.292929292929293927e-01 2.497743178699073086e-02
+9.393939393939394478e-01 2.961947122261034820e-02
+9.494949494949496138e-01 1.826282252184947136e-02
+9.595959595959596689e-01 2.396972947884037919e-02
+9.696969696969697239e-01 2.651899324456775606e-02
+9.797979797979798899e-01 2.162884710493336027e-02
+9.898989898989899450e-01 3.167384830249942579e-02
+1.000000000000000000e+00 2.097011271926497306e-02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/generic_out.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,5 @@
+# MUSPINSIM v.\d+.\d+.\d+
+# Output file written on [A-Za-z]{3} [A-Za-z]{3} [ 1-3][0-9] \d{2}:\d{2}:\d{2} \d{4}
+# Parameters used:
+# 
+(-?\d\.\d{18}e[+-]\d{2} -?\d\.\d{18}e[+-]\d{2}\n){100}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,104 @@
+# MUSPINSIM v.1.0.3
+# Output file written on Thu Mar 31 15:40:40 2022
+# Parameters used:
+# 
+0.000000000000000000e+00 4.999999999999998890e-01
+1.010101010101010100e-03 4.994966691179709706e-01
+2.020202020202020200e-03 4.979887032076987241e-01
+3.030303030303030300e-03 4.954821743156765934e-01
+4.040404040404040401e-03 4.919871753490889787e-01
+5.050505050505050067e-03 4.875177794352362204e-01
+6.060606060606060601e-03 4.820919832540180305e-01
+7.070707070707071135e-03 4.757316345716551820e-01
+8.080808080808080801e-03 4.684623442674461513e-01
+9.090909090909090468e-03 4.603133832077952459e-01
+1.010101010101010013e-02 4.513175643827646022e-01
+1.111111111111111154e-02 4.415111107797444201e-01
+1.212121212121212120e-02 4.309335095262674664e-01
+1.313131313131313087e-02 4.196273528892829896e-01
+1.414141414141414227e-02 4.076381667711305168e-01
+1.515151515151515194e-02 3.950142273927994552e-01
+1.616161616161616160e-02 3.818063669026254825e-01
+1.717171717171717127e-02 3.680677686931705939e-01
+1.818181818181818094e-02 3.538537532504715255e-01
+1.919191919191919060e-02 3.392215553979679443e-01
+2.020202020202020027e-02 3.242300938320686887e-01
+2.121212121212121340e-02 3.089397338773567370e-01
+2.222222222222222307e-02 2.934120444167325203e-01
+2.323232323232323274e-02 2.777095499752527119e-01
+2.424242424242424240e-02 2.618954789559355678e-01
+2.525252525252525207e-02 2.460335090412980041e-01
+2.626262626262626174e-02 2.301875107858028791e-01
+2.727272727272727140e-02 2.144212904316786794e-01
+2.828282828282828454e-02 1.987983329837022806e-01
+2.929292929292929420e-02 1.833815465774912001e-01
+3.030303030303030387e-02 1.682330091706445430e-01
+3.131313131313131354e-02 1.534137185767177891e-01
+3.232323232323232320e-02 1.389833468485564272e-01
+3.333333333333333287e-02 1.250000000000000278e-01
+3.434343434343434254e-02 1.115199840334724080e-01
+3.535353535353535220e-02 9.859757821558334800e-02
+3.636363636363636187e-02 8.628481651367872485e-02
+3.737373737373737154e-02 7.463127807341971010e-02
+3.838383838383838120e-02 6.368388758106133252e-02
+3.939393939393939087e-02 5.348672631430317903e-02
+4.040404040404040054e-02 4.408085464254181407e-02
+4.141414141414141714e-02 3.550414669125571965e-02
+4.242424242424242681e-02 2.779113783626911693e-02
+4.343434343434343647e-02 2.097288564198256100e-02
+4.444444444444444614e-02 1.507684480352292078e-02
+4.545454545454545581e-02 1.012675659637563008e-02
+4.646464646464646547e-02 6.142553278648238413e-03
+4.747474747474747514e-02 3.140277830901400113e-03
+4.848484848484848481e-02 1.132019356728866666e-03
+4.949494949494949447e-02 1.258644042037293520e-04
+5.050505050505050414e-02 1.258644042036738409e-04
+5.151515151515151381e-02 1.132019356728866666e-03
+5.252525252525252347e-02 3.140277830901400113e-03
+5.353535353535353314e-02 6.142553278648238413e-03
+5.454545454545454281e-02 1.012675659637560233e-02
+5.555555555555555247e-02 1.507684480352285139e-02
+5.656565656565656908e-02 2.097288564198256100e-02
+5.757575757575757874e-02 2.779113783626911693e-02
+5.858585858585858841e-02 3.550414669125571965e-02
+5.959595959595959808e-02 4.408085464254177244e-02
+6.060606060606060774e-02 5.348672631430315128e-02
+6.161616161616161741e-02 6.368388758106127701e-02
+6.262626262626262708e-02 7.463127807341965458e-02
+6.363636363636362980e-02 8.628481651367858607e-02
+6.464646464646464641e-02 9.859757821558332025e-02
+6.565656565656566301e-02 1.115199840334725467e-01
+6.666666666666666574e-02 1.249999999999998612e-01
+6.767676767676768235e-02 1.389833468485564827e-01
+6.868686868686868507e-02 1.534137185767177891e-01
+6.969696969696970168e-02 1.682330091706444875e-01
+7.070707070707070441e-02 1.833815465774910891e-01
+7.171717171717172101e-02 1.987983329837023083e-01
+7.272727272727272374e-02 2.144212904316786517e-01
+7.373737373737374035e-02 2.301875107858027680e-01
+7.474747474747474307e-02 2.460335090412978376e-01
+7.575757575757575968e-02 2.618954789559355123e-01
+7.676767676767676241e-02 2.777095499752526564e-01
+7.777777777777777901e-02 2.934120444167324093e-01
+7.878787878787878174e-02 3.089397338773566259e-01
+7.979797979797979834e-02 3.242300938320686887e-01
+8.080808080808080107e-02 3.392215553979678333e-01
+8.181818181818181768e-02 3.538537532504714145e-01
+8.282828282828283428e-02 3.680677686931706494e-01
+8.383838383838383701e-02 3.818063669026254825e-01
+8.484848484848485362e-02 3.950142273927993997e-01
+8.585858585858585634e-02 4.076381667711304058e-01
+8.686868686868687295e-02 4.196273528892829896e-01
+8.787878787878787568e-02 4.309335095262674109e-01
+8.888888888888889228e-02 4.415111107797443646e-01
+8.989898989898989501e-02 4.513175643827644912e-01
+9.090909090909091161e-02 4.603133832077952459e-01
+9.191919191919191434e-02 4.684623442674461513e-01
+9.292929292929293095e-02 4.757316345716551265e-01
+9.393939393939393367e-02 4.820919832540179750e-01
+9.494949494949495028e-02 4.875177794352362204e-01
+9.595959595959595301e-02 4.919871753490888677e-01
+9.696969696969696961e-02 4.954821743156765379e-01
+9.797979797979798622e-02 4.979887032076987241e-01
+9.898989898989898895e-02 4.994966691179709706e-01
+1.000000000000000056e-01 4.999999999999998890e-01
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine.in	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,12 @@
+name
+    hfine
+spins
+    mu e
+hyperfine 1
+    10   0    0
+    0    10   0
+    0    0    10
+time
+    range(0, 0.1)
+y_axis
+    asymmetry
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine.log	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,9 @@
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Launching MuSpinSim calculation from file: hfine.in
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Using X axis:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		t => 100 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Created spin system with spins:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		mu e
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding hyperfine term to spins 1-2
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to simulate: 1
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to average: 1
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Simulation completed in [\d\.]+ seconds
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine_powder.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,104 @@
+# MUSPINSIM v.1.0.3
+# Output file written on Thu Mar 31 15:53:05 2022
+# Parameters used:
+# 
+0.000000000000000000e+00 4.999999999999978906e-01
+1.010101010101010187e-02 4.898216198091702722e-01
+2.020202020202020374e-02 4.601457670929889887e-01
+3.030303030303030387e-02 4.134280246157800986e-01
+4.040404040404040747e-02 3.534061443706255079e-01
+5.050505050505051108e-02 2.847009690826324269e-01
+6.060606060606060774e-02 2.123996346828892212e-01
+7.070707070707071829e-02 1.416188793458658113e-01
+8.080808080808081495e-02 7.703667452850616881e-02
+9.090909090909091161e-02 2.243923686011758262e-02
+1.010101010101010222e-01 -1.961818153149216121e-02
+1.111111111111111188e-01 -4.795996320947538277e-02
+1.212121212121212155e-01 -6.274744672148406532e-02
+1.313131313131313260e-01 -6.530158863075111175e-02
+1.414141414141414366e-01 -5.784563669914950801e-02
+1.515151515151515194e-01 -4.318881024320503359e-02
+1.616161616161616299e-01 -2.435953288228472069e-02
+1.717171717171717404e-01 -4.221383713715486444e-03
+1.818181818181818232e-01 1.486478152761657422e-02
+1.919191919191919338e-01 3.127029875868032882e-02
+2.020202020202020443e-01 4.419331762185332163e-02
+2.121212121212121271e-01 5.363272133936923536e-02
+2.222222222222222376e-01 6.027127432932351953e-02
+2.323232323232323482e-01 6.528821197104517360e-02
+2.424242424242424310e-01 7.011188156210440559e-02
+2.525252525252525415e-01 7.613575246369558291e-02
+2.626262626262626521e-01 8.444817182204518435e-02
+2.727272727272727626e-01 9.563577062830612430e-02
+2.828282828282828731e-01 1.096931862227517596e-01
+2.929292929292929282e-01 1.260279428651419342e-01
+3.030303030303030387e-01 1.435297585969750045e-01
+3.131313131313131493e-01 1.606918735246903873e-01
+3.232323232323232598e-01 1.757953664331906307e-01
+3.333333333333333703e-01 1.871548112680196385e-01
+3.434343434343434809e-01 1.933789487153362019e-01
+3.535353535353535914e-01 1.935727086271414044e-01
+3.636363636363636465e-01 1.874339379475772616e-01
+3.737373737373737570e-01 1.752569998814878238e-01
+3.838383838383838675e-01 1.578871597303210528e-01
+3.939393939393939781e-01 1.366472150732664925e-01
+4.040404040404040886e-01 1.132169113311860126e-01
+4.141414141414141992e-01 8.944212962407142864e-02
+4.242424242424242542e-01 6.709521244007878027e-02
+4.343434343434343647e-01 4.765375400148660207e-02
+4.444444444444444753e-01 3.216236200935281703e-02
+4.545454545454545858e-01 2.119108250935146723e-02
+4.646464646464646964e-01 1.485461776866003197e-02
+4.747474747474748069e-01 1.285237759510375610e-02
+4.848484848484848619e-01 1.452529053284205666e-02
+4.949494949494949725e-01 1.895511481559433373e-02
+5.050505050505050830e-01 2.511911949135056665e-02
+5.151515151515152491e-01 3.206842425431336019e-02
+5.252525252525253041e-01 3.906864140961663345e-02
+5.353535353535353591e-01 4.565996161080773663e-02
+5.454545454545455252e-01 5.164465988530642093e-02
+5.555555555555555802e-01 5.704429945245992339e-02
+5.656565656565657463e-01 6.205664553522256821e-02
+5.757575757575758013e-01 6.700433700076509347e-02
+5.858585858585858563e-01 7.225132003256502788e-02
+5.959595959595960224e-01 7.808903515243817428e-02
+6.060606060606060774e-01 8.463238709209641719e-02
+6.161616161616162435e-01 9.177091608535994927e-02
+6.262626262626262985e-01 9.918571799467909567e-02
+6.363636363636364646e-01 1.064045206739127336e-01
+6.464646464646465196e-01 1.128633240781412583e-01
+6.565656565656565746e-01 1.179689064522506659e-01
+6.666666666666667407e-01 1.211753182283995256e-01
+6.767676767676767957e-01 1.220755601406841584e-01
+6.868686868686869618e-01 1.204832136391615627e-01
+6.969696969696970168e-01 1.164717030345172183e-01
+7.070707070707071829e-01 1.103613435445515573e-01
+7.171717171717172379e-01 1.026722985657323867e-01
+7.272727272727272929e-01 9.406649852263578027e-02
+7.373737373737374590e-01 8.528342870344972348e-02
+7.474747474747475140e-01 7.706007698622778512e-02
+7.575757575757576801e-01 7.003495984467997260e-02
+7.676767676767677351e-01 6.466011389171268109e-02
+7.777777777777777901e-01 6.115386540946195909e-02
+7.878787878787879562e-01 5.950642592610105863e-02
+7.979797979797980112e-01 5.951852696575182788e-02
+8.080808080808081773e-01 6.084309889994913428e-02
+8.181818181818182323e-01 6.302125184230578103e-02
+8.282828282828283983e-01 6.553053604293948564e-02
+8.383838383838384534e-01 6.786195975736343533e-02
+8.484848484848485084e-01 6.961069493820057352e-02
+8.585858585858586745e-01 7.053884073016886136e-02
+8.686868686868687295e-01 7.058044177349344361e-02
+8.787878787878788955e-01 6.980118856901003366e-02
+8.888888888888889506e-01 6.835461571914719370e-02
+8.989898989898991166e-01 6.646239525826239114e-02
+9.090909090909091717e-01 6.440572492873612720e-02
+9.191919191919192267e-01 6.249450370225932000e-02
+9.292929292929293927e-01 6.100450723160437405e-02
+9.393939393939394478e-01 6.011377189968813289e-02
+9.494949494949496138e-01 5.988117728733665518e-02
+9.595959595959596689e-01 6.027790852948173433e-02
+9.696969696969697239e-01 6.123922365651523342e-02
+9.797979797979798899e-01 6.269414643787388219e-02
+9.898989898989899450e-01 6.456212771807727513e-02
+1.000000000000000000e+00 6.674271208912255227e-02
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine_powder.in	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,12 @@
+spins
+    mu e
+hyperfine 1
+    5    2    3
+    2    5    2
+    3    2    5
+field
+    0.01
+time
+    range(0, 1.0)
+orientation
+    eulrange(10)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/hfine_powder.log	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,11 @@
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Launching MuSpinSim calculation from file: hfine_powder.in
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Using X axis:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		t => 100 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Averaging over:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		orient => 1000 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Created spin system with spins:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		mu e
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding hyperfine term to spins 1-2
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to simulate: 1000
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to average: 1000
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Simulation completed in [\d\.]+ seconds
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out.in	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,31 @@
+name
+    multi_out
+spins
+    mu 2H e
+field
+    0
+    10
+temperature
+    inf
+    0
+time
+    range(0, 10, 20)
+orientation
+    0 0
+    0 180
+polarization
+    0 1 1
+zeeman 1
+    1 0 0
+dipolar 1 2
+    0 1 0
+hyperfine 1 3
+    10 2 2
+    2 10 2
+    2 2 10
+quadrupolar 2
+    -2 0 0
+    0  1 0
+    0  0 1
+dissipation 2
+    0.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out.log	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,19 @@
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Launching MuSpinSim calculation from file: multi_out.in
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Using X axis:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		t => 20 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Averaging over:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		orient => 2 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Scanning over:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		B => 2 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		T => 2 points
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Created spin system with spins:
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] 		mu 2H e
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding dipolar term to spins 1-2
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding hyperfine term to spins 1-3
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding quadrupolar term to spin 2
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Adding Zeeman term to spin 1
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to simulate: 8
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Total number of configurations to average: 2
+\[WARNING\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] WARNING: initial density matrix is computed with an approximation that can fail at low fields and finite temperature
+\[WARNING\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] WARNING: initial density matrix is computed with an approximation that can fail at low fields and finite temperature
+\[INFO\] \[MainThread\] \[\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\] Simulation completed in [\d\.]+ seconds
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out_0_0.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,7 @@
+# MUSPINSIM v.\d+.\d+.\d+
+# Output file written on [A-Za-z]{3} [A-Za-z]{3} [ 1-3][0-9] \d{2}:\d{2}:\d{2} \d{4}
+# Parameters used:
+# 	B                    = \[0. 0. 0.\] T
+# 	T                    = inf
+# 
+(-?\d\.\d{18}e[+-]\d{2} -?\d\.\d{18}e[+-]\d{2}\n){20}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out_0_1.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,7 @@
+# MUSPINSIM v.\d+.\d+.\d+
+# Output file written on [A-Za-z]{3} [A-Za-z]{3} [ 1-3][0-9] \d{2}:\d{2}:\d{2} \d{4}
+# Parameters used:
+# 	B                    = \[0. 0. 0.\] T
+# 	T                    = 0.0
+# 
+(-?\d\.\d{18}e[+-]\d{2} -?\d\.\d{18}e[+-]\d{2}\n){20}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out_1_0.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,7 @@
+# MUSPINSIM v.\d+.\d+.\d+
+# Output file written on [A-Za-z]{3} [A-Za-z]{3} [ 1-3][0-9] \d{2}:\d{2}:\d{2} \d{4}
+# Parameters used:
+# 	B                    = \[ 0.  0. 10.\] T
+# 	T                    = inf
+# 
+(-?\d\.\d{18}e[+-]\d{2} -?\d\.\d{18}e[+-]\d{2}\n){20}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/multi_out_1_1.dat	Thu Aug 25 16:16:19 2022 +0000
@@ -0,0 +1,7 @@
+# MUSPINSIM v.\d+.\d+.\d+
+# Output file written on [A-Za-z]{3} [A-Za-z]{3} [ 1-3][0-9] \d{2}:\d{2}:\d{2} \d{4}
+# Parameters used:
+# 	B                    = \[ 0.  0. 10.\] T
+# 	T                    = 0.0
+# 
+(-?\d\.\d{18}e[+-]\d{2} -?\d\.\d{18}e[+-]\d{2}\n){20}
\ No newline at end of file