# Codes

The CCP-mag community uses a variety of codes, many of which are developed by community members. The codes span different length scales, from the atomistic scale up to the device scale, and utilise various physical simulation techniques, from quantum mechanical calculations to finite-element methods.

- Quantum mechanical,
*ab initio*codes:The Korringa Kohn-Rostoker (KKR) multiple scattering method for

*ab initio*electronic structure calculations is particularly well suited for the study of magnetic materials. It is an all-electron method, which does not rely on pseudo potentials, and therefore provides a robust method, in particular for transition metal compounds, but also for f-electron systems, such the rare earths. Multiple scattering theory naturally allows for the calculation of magnetic exchange interactions and magnetic anisotropies. Using the so-called coherent potential approximation (CPA), it also allows applications to disordered materials, such as substitutional alloys.In an extension to the standard KKR method, this coherent potential approximation can also be applied to spin disorder, corresponding to a disordered local moment (DLM) picture. In this DLM state, the spin susceptibility can be calculated, which then provides information about the onset of magnetism, i.e. the critical temperature and the magnetic order.

Several KKR packages are used within the community. Amongst others there are:

- SPR-KKR
- HUTSEPOT (aka "Arthur's code")
- "Laszlo's code"
- "Julie's DLM code"

- Atomistic Spin Models
- Vampire
Most magnetic simulations today utilise micromagnetics to predict and understand the behaviour of magnetic nano materials. However developments in the complexity of magnetic materials and the increasing importance of complex physical effects such as exchange bias, spin transport, and heat assisted magnetic recording push the boundaries of what can be realistically modelled with micromagnetics. Atomistic simulation bridges the gap between micromagnetics approaches and electronic structure by treating a magnetic material at the natural atomic length scale. Vampire is a free, open source software package which makes atomistic simulations of magnetic materials easily accessible to both theoretical and experimental researchers alike.

- SpinW
SpinW is a Matlab library that can plot and numerically simulate magnetic structures and excitations of given spin Hamiltonian using classical Monte Carlo simulation and linear spin wave theory.

- Vampire
- Micromagnetic Modelling
- Nmag
Nmag is a micromagnetic simulation package. It has been developed at the University of Southampton with substantial contributions from Hans Fangohr, Thomas Fischbacher, Matteo Franchin.

Features in brief:

- based on finite elements (suitable for non-cuboidal structures)
- problem description in Python, therefore high degree of flexibility
- inbuilt mesh post processing tools
- efficient data storage (binary compressed) and extraction into vtk files (of course the raw data can be extracted)
- arbitrary crystal anisotropy
- (pseudo) periodic boundary conditions ("macro geometry approach")
- Spin torque transfer (Zhang-Li model for uniform current density)
- Supports use of matrix compression library (HLib) for BEM
- extensive documentation in html and pdf, including Tutorial
- download as source tarball with all libraries, or only the core nmag code (see installation)

- Oommf
OOMMF is a project in the Applied and Computational Mathematics Division (ACMD) of ITL/NIST, in close cooperation with µMAG, aimed at developing portable, extensible public domain programs and tools for micromagnetics. This code forms a completely functional micromagnetics package, with the additional capability to be extended by other programmers so that people developing new code can build on the OOMMF foundation. OOMMF is written in C++, a widely-available, object-oriented language that can produce programs with good performance as well as extensibility. For portable user interfaces, we make use of Tcl/Tk so that OOMMF operates across a wide range of Unix, Windows, and MacOSX platforms. The main contributors to OOMMF are Mike Donahue, and Don Porter.

- Nmag