numerical methods for LLG ( micromagnetics framework )
This publication https://arxiv.org/abs/1411.7188 contains very basic, working with python2 code for micromagnetics. I deided to improve upon it to learn more about micromagnetics :
the whole changelist :
- Calculation of the demagnetization tensor was ported to GPU (very expensive calculation done before on CPU, taking a lot of time)
- solver was changed from Euler to adaptive timestep ( Dormand-Prince / Bogacki-Shampine) and higher order methods like (RK4)
- more physics terms were added : Magnetocrystalline anistropy and DMI
- various optimizations of code, like using JIT ( Just-In-Time) compliation using numba and porting timestepping to run on GPU
prototyping/ :
- contains basically all the code developed ( all the different features are labelled). For example paper_code.py is the starting code. adaptive_solver.py is a an improvement from paper_code.py, where I use the adaptive timestep method (BS or DOPRI). Final code with all features is in "adaptive_solver_extra_physics_demag_gpu.py" mumax3/ :
- contains some mumax3 standard problem3 simulations, and interaction with mumax3 through python refactored :
- making the outputs from prototyping look much better and be reusable ( in OOP way)