Units of energies when calling sample.get_energy() are probably wrong
For example, the two lines
sample.get_energy("exchange")
sample.get_interaction("exchange").energy(sample.mag.to_flattened())
do not give the same result (they do not just differ by an order of magnitude).