computationalmodelling / fidimag

Finite DIfference microMAGnetic code, based on Python, Cython and C
http://computationalmodelling.github.io/fidimag/
Other
60 stars 24 forks source link

doubt about features implemented on Fidimag #141

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hi,

I would like to know if this code allow to put 3D current using Zhang-Li torque (spatially variable like mumax3), a variable uniaxial anisotropy like radial anisotropy or something like this and the bulk or interfacial DMI.

Thanks so much

davidcortesortuno commented 4 years ago

Hi, those 3 properties can be used in Fidimag. For the Zhang-Li STT you can set a function for the current. In the case of anisotropy, you can also pass a space dependent function to define the anisotropy vectors (in your case you would have to compute the radial direction as function of space, which should be straightforward. And regarding DMI, you have the choice of interfacial, bulk and D_2d group symmetry DMI. You can also define your own DMI by implementing the finite difference version of the DMI term.

The doctrings in the corresponding energy terms in https://github.com/computationalmodelling/fidimag/tree/master/fidimag/micro might be of help. For STT, check the llg_stt file.

To set a specific driver, when creating a simuation yo do something like sim = fidimag.micro.Sim(mesh, driver='llg_stt') and then set the current functions as sim.driver.jx = ...

ghost commented 4 years ago

That is great, by chance do you know for which mesh size it is recommended to perform an atomistic simulation?,

Thanks you

davidcortesortuno commented 4 years ago

That depends on the material you are analysing, the magnetic structures you are studying and the memory available in your machine. In an atomistic simulation you have a lattice spacing of a few Angstrom, thus you can do the maths to check how many atomic positions you need for a system of a few nanometres or larger in size.