StollLab / EasySpin

MATLAB toolbox for Electron Paramagnetic Resonance (EPR) spectroscopy
http://easyspin.org
MIT License
48 stars 25 forks source link

[documentation, enhancement] Ryabov equation notebook? #287

Closed abehersan closed 5 months ago

abehersan commented 1 year ago

Hi!

In the comments found in stev.m it is mentioned that a Mathematica notebook was used to generate the $F_{k, q}$ coefficients from Ryabov's (1999) formula for the explicit expressions of the crystal field operators.

https://github.com/StollLab/EasySpin/blob/3a79b9a864e8a18dd55b9ce4efaa45b3351b0195/easyspin/stev.m#L75-L78

Could this Mathematica notebook be shared for completeness in the documentation?

In my experience, Ryabov's expression (Eqns. [8, 10] from this 1999 paper) seems straightforward to write but non-trivial to implement without introducing errors while considering the edge cases of recursion. The community would benefit greatly from having a formulaic approach to generating the "conventional" Stevens operators, see for example the following comment from the from Sunny.jl source code:

https://github.com/SunnySuite/Sunny.jl/blob/8a98cfd00f2eee5b66a814b2c5b3d2c184425039/src/Operators/Stevens.jl#L61-L63

Many thanks! Abraham

stestoll commented 1 year ago

Unfortunately, I don't have that Mathematica notebook anymore.

If you are interested in explicit equations for the operators, there are two places in EasySpin:

The reason we chose to implement the operators using Ryabov's approach is that it is extensible to higher orders. Explicit expression get really unwieldy for orders beyond 6. The other reason is that it is really easy to have typos in these long expressions.

The stev function is well tested against explicit expressions up to order 6, but not for orders beyond that. You mention that the Ryabov approach could introduce errors for edge cases. Can you clarify? Which edge cases are these? We can add tests to make sure EasySpin provides correct values for these edge cases.