nanoHUB will have scheduled maintenance starting at 7:30pm EST on Wednesday, January 27, 2021 which may result in a brief impact on some tool session performance. We ask that you plan accordingly and do apologize for any inconvenience. close




This effort is supported by C-SPIN and by the NEEDS initiative to advance device science and connect it to applications.


There has been enormous progress in the last two decades, effectively combining spintronics and magnetics into a powerful force that is shaping the field of memory devices, but the impact on logic devices remains uncertain. New materials and phenomena continue to be discovered at an impressive rate and it presents a formidable challenge to integrate new discoveries into composite structures that can be analyzed and evaluated.

To meet this challenge, we have created a library of elemental modules each of which represents a specific physical phenomenon, and can be used to build spin-circuit models for more complex devices and structures.

We view this library as an evolving entity where existing modules can be refined and new modules can be added as the field of spintronics develops. We welcome contributions from other groups, in terms of new modules as well as alternative modules for the existing ones, as long as the details are adequately documented.


The library is available in three languages: MATLAB, SPICE, and Verilog-A. It can be downloaded as a single bundle here.


The thesis titled "Modular Approach to Spintronics" serves as an extensive documentation of the approach discussed here. 

The journal paper with the same title serves as a compact documentation of the approach, along with its Supplementary Information.

License and citation

The SPICE codes and modules within Modular Approach is open-source software. If you use Modular Approach in any work or publication,

we kindly ask you to cite the SREP paper.

Elemental Modules

The following table shows at a glance the elemental modules available at present. Detailed description of each module and their underlying circuit model can be viewed by clicking on their names.





Transport Modules

Non-Magnet (Cu, Si, graphene)

Ferromagnet (CoFeB, NiFe)

Ferromagnet|Non-Magnet Interface


Magnetic Tunnel Junction

Rashba Spin-Orbit (GaAs)

Giant Spin Hall Effect

(Pt, W, Ta)

Topological Insulator


  Spin Pumping

Pure Spin Conductor

Magnon Transport in FMI (YIG)

Transmission Line Model for Spin-Momentum Locking (SML)

Topological Insulators, Transition Metals, III-V Semiconductors, Perovskite Oxides, etc.



Magnetics Modules

LLG Solver (magnetization dynamics)

Magnetic Coupling (Exchange, Dipolar)

Voltage Controlled Magnetic Anisotropy

Stochastic LLG

These modules:

  • Have been carefully benchmarked against available theoretical simulations and/or experimental data.
  • Represent a multiphysics framework incorporating a wide range of physical models such as Non-Equilibrium Green's Functions (NEGF) for quantum transport, spin diffusion eqn. for semiclassical transport, Landau-Lifshitz-Gilbert (LLG) eqn. for magnetization dynamics.
  • Can be combined to build spin-circuits for larger and more complex structures which can then be simulated using either MATLAB or SPICE like circuit simulators.

Spin-Circuit Examples

The elemental module can connected together to build spin-circuit models for more complex and larger spintronic devices and structures, much like lego blocks. The table below shows a few of such possible complex structures built using the elemental modules. Click on the name of the example to see more details about the particular device and structure.

Example Physical Structure Spin-Circuit
Spin Valve

Non-Local Spin-Torque Switching  





Non-Local RSO Spin Transistor


Non-Local ISHE Experiment



Non-Local Graphene Spin Valve



Giant Spin Hall driven MTJ 




Spin Switch







Circular Magnets




Magnon Diffusion in Yttrium-Iron-Garnet
Spin Funneling: Enhanced Spin Hall Angle

Nodes of Spin-Circuits

The spin-circuits require 4 types of nodes to connect the elemental modules with each other. These types are:

  1. Transport Nodes, which connect two transport blocks. These nodes carry 4-component voltages and currents related using 4x4 conductance matrices.
  2. Magnetization Nodes, which is a 3-component node and used to provide the magnetization direction to a transport block, e.g. from an LLG module to an FM module.
  3. Field Nodes, which are 3-component nodes used to pass magnetic field between two magnetics modules, e.g. Magnetic Coupling to LLG.
  4. Spin-Torque Nodes, which are 3-component nodes used to carry the spin-torque current from a transport block (e.g. MTJ) to LLG module.

Discussion Forum

Any comments, suggestions, new module/enhancement requests, and bug reports maybe be filed in the discussion forum