C++ main module for emicrom Package  1.0
ODE Package for E-MicroM

ODE Package for E-MicroM contains classes to solve the Landau Lifshitz Systems by ODE integrations as Runge Kutta... More...

ODE Package for E-MicroM contains classes to solve the Landau Lifshitz Systems by ODE integrations as Runge Kutta...

All systems inherit classes from EMM_LandauLifschitzODE which implement the resolution of EMM_LandauLifschitzSystem . All the ODE implemented methods need to compute a new time step by calculating on error on solving $ \frac{dM}{dt}=F(M) $. The class EMM_ODETimeStep manages the time step computing. The different implemented integration methods are :

The main method to integrate the Landau-Lifschitz system is EMM_LandauLifschitzODE::solveODE() :

From an initial magnetization field M, an initial time step $ dt=T/I $ (where T is the target time and I is the number of steppers) and initial energy $ E_{old}=\infty $ it computes:

The computing of the new fields at time EMM_LandauLifschitzODE::computeFieldsAtTime() depends on the evolution scheme:

The computing of the new time step is done by EMM_ODETimeStep::computeNewTimeStep() :

The magnetization field at t+dt is stored within the EMM_ODETimeStep class : EMM_ODETimeStep::getMagnetizationFieldAtTime().

The EMM_ODEClassFactory class manages the creation of the class of the package

The method EMM_ODETest class manages the tests of the package.

emicrom_ode.jpg