Generating A Magnetoresistive RAM (MRAM) Stack using the MRAM-Builder¶
Version: U-2022.12
Introduction¶
Magnetoresistive RAM has become of increased interest for memory technology in the recent years. This device uses magnetic states to store information. It writes and reads electronically, hence enables to integrate in semiconductor chips. Understanding the configuration at the atomic level will help to engineer different properties i.e. MagneticAnisotropyEnergy (MAE). To understand the correlation between changes in the atomic structure and stack composition, it is often needed to create multiple configurations. However constructing such configurations at DFT level is very time consuming. Here we use moment tensor potential (MTP) which is a machine learned interatomic potential, to construct such configurations. Machine learned interatomic potentials (MLIPs) have emerged popular in recent years since they can provide ab initio level of accuracy within a realistic timescale, even for relatively complex materials. More information about the MTP can be found here .
Workflow to generate the MgO-FeCo-MgO MRAM structure¶
We begin by setting up the atomic structure of a MgO-FeCo-MgO structure. Start by opening the MRAM Builder. The MRAM Builder can be found in the Nanolab. In the MRAM Builder do the following (see image below):
Press the Add icon. This will add new layers.

In the layers you can do the following changes (see image below):
You can change the material, miller indices and the thickness of the layer.
If the material type is alloy then you can select the percentage of Cobalt.
After the changes you need to click Update. This will create multiple stack candidates with different ratio of strain vs. number of atoms.

Next you can do the following steps:
you can select the configuration based on mean average strain and number of atoms from the mean average strain vs number of atoms plot.
You can also change the Displacement vector with the mouse wheel or arrow keys to move a certain layer laterally in the AB-plane. This can be used to control the interface alignment, e.g. which atoms above each other. This will help to create a better initial configuration to obtain configurations with less defects.
You can modify the strain method as well as the layer that you want to strain from Lattice Matching Parameters.

Send the calculation to the Job Manager using the icon and run the calculation.
If needed some modification in the script, you can generate a script using the
Send-to button and run the calculation.
Note
The builder for this type of stack is primarily designed to work with CrystalLayer and AlloyLayer types. Pre-trained MTP models for Fe-MgO, FeCo-MgO, Ta-Fe, Ta-FeCo, W-Fe, W-FeCo interfaces and FeCo alloy are provided in the MRAM builder. Other interfaces can be used in scripting, if a suitable interface calculator is specified. This could be a DFT calculator, a force-field calculator, or a user-trained MTP model.
The
relaxation_length
andinteraction_length
can be tuned according to the need of the interface. If the layer thickness is less than therelaxation_length
then the optimization will not be done for the interface. By default, interfaces are not annealed, but this can be activated if needed.
Tip
To run the MultilayerBuilder efficiently in parallel we recommend using the OpenMP parallelization.
If you have multiple alloy layers in the stack, you should provide different values for the
random_seed
parameter in AlloyLayer. This will ensure that all the alloy layers in the stack are different.If you increase the thickness of the layer from the default values, increasing the
relaxation_length
andinteraction_length
parameters in the script can help to achieve better configuration. For more details on these parameters please check the MultilayerBuilder study object.
The final MRAM stack configuration can be accessed using the
configuration()
method in MultilayerBuilder. A MgO-FeCo-MgO MRAM stack obtained from such calculation is shown below.
Download the provided script (MRAM_builder_example.py
) to generate such a configuration.
This configuration is now ready for further
DFT calculation for different electronic and magnetic properties.
One can also use it as a starting configuration to manually add defects or dopant atoms in the
Builder to investigate their effect on the magnetic properties.
