Difference between 'no_dip' and 'ho_dip' in eigenmodes calculation

Dear all,
it is not completely clear to me what is the difference between ‘no_dip’ and ‘h0_dip’ in eigenmodes(…). I would like to turn off the dipolar contributions for the dispersion calculations by doing ‘no_dip = True’, but what is the contribution of changing the value of ‘h0_dip’ in calculations using eigenmodes(…)?

Thank you!

Hi Felipe,

First, the short answer: If you call eigenmodes(..., no_dip=True) in the current version of TetraX (1.x), dipolar interactions will not be considered in the dispersion calculations.

Now, the long answer: As you know, the magnon eigenmodes’ eigenvalue problem / dynamic matrix contains dynamic and equilibrium effective fields (the latter is in h0 = … + h0_dip). Currently, it is possible to enable these contributions somewhat independently. Once you set no_dip=True to disable dipolar fields, you can still switch the equilibrium contribution back on (we needed this at some point for perturbation analysis). Since this is quite artificial and only works for the dipolar interaction, this feature is removed in the upcoming version 2 of TetraX. In the future, you will be able to flexibly select the interactions that you want to use for any computation, for example, eigenmodes(..., interactions=my_interactions) or relax(..., interactions=my_list).

Best,
Lukas