spirit-code / spirit

Atomistic Spin Simulation Framework
http://spirit-code.github.io
MIT License
118 stars 52 forks source link

Feature request: topological charge for 3D systems #540

Open SpiritSuperUser opened 5 years ago

SpiritSuperUser commented 5 years ago

It might be useful to be able to calculate topological charges in 3D systems. This would for example allow to detect bobbers vs. skyrmion tubes. A layer-wise calculation of the charge would be needed for this.

In the case of one atom per unit cell with 3 lattice vectors one could simply choose two of them and calculate the charge for all the layers parallel to the plane spanned by them. In the case of more atoms per cell, one might have to specify again a plane plus layer positions along the direction normal to it.

GPMueller commented 4 years ago

In my opinion, this kind of feature would be better suited for post-processing scripts. Since it would be a complicated feature to add to the GUI, I would advise against that, i.e. it would be only in the API anyways.

There are infinite ways to determine some sort of topological charge in 3D and I don't think it would be sensible to expose an API for this. In particular, there isn't an obvious way to define a "layer" (if there are multiple atoms in the basis) and it could lead to confusion for the user. All this is avoided if the user defines the topological charge themself.