Our aim is to have SpinDynamica community members share Mathematica code as “add–ons“, in order to enhance functionality not yet incorporated into the main SpinDynamica release.
Examples of current add–ons:
• Graphical representation of pulse sequences
• Tools to visualise matrices in 3D
• Data import and processing routines for common spectrometer platforms
Submitting an add-on
Whenever you would like to contribute an add-on, you must submit your code as detailed below. Note: this convention will be applied rigorously.
You need to create the following files:
1. [“nameofmyaddon.nb”] This is your Mathematica code written to notebook (.nb) file, saving all code as initialization cells. Please idiot-proof the code as far as possible. Also include help and error-identification messages where possible.
You can find information about writing Mathematica package files here:
http://reference.wolfram.com/mathematica/tutorial/SettingUpMathematicaPackages.html
http://reference.wolfram.com/mathematica/tutorial/MathematicaPackages.html
We will be strict on the following, in particular:
• Always begin packages with BeginPackage[<new package context>,{“Global`”, <contexts of required packages..>], and end with EndPackage[]
• Always ensure all prerequired SpinDynamica packages are loaded in the BeginPackage declaration
• Always use Begin[“Private`”] and End[] before and after declaring the exported symbols. This should avoid any possible interference with declarations within SpinDynamica
In the above links you will also find guidance on where to store a downloaded package, and how to put it on the path.
2. [“myaddon.m”] This is a Mathematica package file that will be autogenerated when you save [“nameofmyaddon.nb”]
3. [“myaddon_examples.nb”] A Mathematica notebook containing basic usage examples for the add-on functions (“.nb” extension)
4. [“myaddon_examples.pdf”] Item 3 saved as a PDF (i.e. so there is a PDF example file as well)
5. [“myaddon<ext>” where <ext> can be .png, .gif, or .jpg] For illustration purposes, a graphical abstract that will “tease” the reader’s interest (strict width 800px, height 270px, nontransparent background, make sure resolution is decent)
6. [“myaddon.txt”] Notes on your package: plain text file is fine, can contain links but no other HTML, etc. please. Details should include:
• Package name and version (same name as file), plus revision date
• Brief description of package contents: i.e. what does the add-on facilitate?
• SpinDynamica version compatibility
• Names of SpinDynamica packages to be preloaded
• Persons who should be acknowledged for the add-on
• Any other notes
Simply ZIP or TAR files 1-5 and send to the administrator . The rest will be taken care of (magically).
Thanks for reading!