The parallels and usefulness to paleomagnetic and rock magnetic studies should be clear. Not all of these, however, used the scripting interface presented here. The simple scripting language makes it particularly friendly to nontechnical users. The fast and efficient minimization scheme means simple computer experiments can be run quite quickly.

The scripts presented here represent the sort of scripts run by the authors day to day. For viewing solutions, the authors recommend ParaView. We acknowledge Ron T. Merrill for giving his blessings to our naming of the code. We also gratefully acknowledge the following funding that has supported this work.

It was introduced in In Standard Problem 3, the material parameters of the cube: the saturation magnetization M s , and the uniaxial anisotropy constant K u , are related by the relation:. Existing results suggest the critical edge length, where a flower state and a vortex state should have the same energy is in the region of 8. To nucleate a flower state, the mesh is scaled to 7.

This two step approach to nucleation is needed, since a flower state is not guaranteed to nucleate at 8.

For any particular domain state, its form will change slightly with grain size. A flower at a larger grain size, for example, will have a more divergent magnetization at the grain surface than a flower state at a smaller grain size. Since the size 8. An initial flower state at 8. An initial flower solution at edge length 8. Again, reminimization saves a lot of time as the vortex at 8. An initial vortex state at 8. An initial vortex state at edge length 8.

To evaluate, say, the flower state energy at a certain cube size, say L , the mesh is scaled to length L , the flower state at is loaded from disk, which for the flower was found for 8. The energy is then found and written to disk. This is done for the flower and vortex states for a range of cube sizes about the expected critical point of 8.

The critical length for the cube is then found by finding the iteration just before the flower state energy passes the single vortex energy and the iteration just after, and using a linear interpolation between the energies of each iteration to find the edge length where they intercept. This assumes the energies scale linearly with the edge length, which is incorrect, but for sufficiently small steps of the edge length, it should be accurate enough for this application. This entire process is then repeated for an increasingly fine mesh.

The critical edge length of the cube should scale as the square of the mesh spacing. This is due to higher resolution of the derivatives, which, for the demagnetization and exchange calculations are of the order two. By performing a linear fit on the mesh spacing 2 versus the intercept length, it is be possible to extrapolate the intercept length for an infinitely fine mesh, i.

For each mesh, the energies were found for the flower and vortex states for 8. The mesh spacings used were 1. An example mesh at node spacing 0. Cube mesh with a node spacing of 0. Critical edge length versus node spacing. A break down of the demag, exchange, and anisotropy energies at the critical length for the flower and vortex states is in Table A1.

The average magnetization for these states at the critical length is in Table A2. The critical length versus the node spacing of the mesh, and linear fit extrapolating the node spacing to 0. Critical energy versus node spacing. The critical energy versus the node spacing of the mesh, and linear extrapolating the node spacing to 0. This is good evidence that the energy terms in MERRILL are correctly determined and converge to the true continuum value when mesh size approaches zero. There are many sources of error unaccounted for by this approach, including material parameters, mesh geometry, numerical errors, and approximation errors.

A particle geometry e. This geometry is translated into a tetrahedral mesh with a large set of model nodes by a mesh generator. The distance between the nodes defines the resolution of the model. Several ready to use meshes are provided together with MERRILL, but arbitrary meshes can be loaded as long as they fulfill some minimal quality criteria. Besides commercial software, there exist several professional open source mesh generators that are more than sufficient for generating simple particle meshes.

Material properties of the magnetic material to be modeled and the scaling constant determining the particle size. With the above prerequisites it is already possible to do very sophisticated model runs resulting, e. MERRILL is operated through an interpreter language script that determines all aspects of the micromagnetic calculation. Empty lines, leading, trailing, and multiple spaces or tabs are ignored, as well as anything behind an exclamation mark! A number of keywords are used to call subroutines or perform simple assignments.

All keywords are case insensitive, e. The script file is parsed line by line. Each valid line is immediately interpreted and executed. The following variables are supported:. Internally Ls 2 is used. MaxMeshNumber Maximal number of finite element meshes stored. Must be set once before loading meshes. PathN Number of structures along the magnetization path. Warning: The mesh must have been defined previously!

Use only after ReadMesh. ExchangeCalculator Chooses the exchange energy discretization method used. MaxRestarts Maximum number of restarts during energy minimization. MaxEnergyEvaluations Maximum number of energy calculations during energy minimization typical: 5,—10, Afterward energy minimization is aborted. MaxPathEvaluations Maximum number of path energy calculations during path minimization typical: —2, Zone Current Zone to be written into the TecPlot output file double.

Zone can be set before each output, or c an be used with automatic increment. AllExchange Values greater zero imply that all exchange energy calculations are performed and logged. This slows the program down. Cubic Uniaxial Anisotropy Defines the symmetry of the anisotropy energy.

Users should ensure the axes are mutually orthogonal. Can be used for hysteresis modeling. The index must be less or equal to the previously set MaxMeshNumber. This mesh will then be used in subsequent operations. Make sure that it was created for the currently active mesh! The magnetization read is used in subsequent operations. By definition block 1 contains the free nodes, while higher block numbers can be used to define fixed nodes.

These blocks have to be defined in the Patran file. Any previous magnetization is lost. The previous magnetization is partially lost. Randomize all moments Replaces the current magnetization by randomly distributed unit vectors. Any previous magnetization is lost! ConjugateGradient Uses conjugate gradient steps during the accelerated descent.

SteepestDescent Uses normal gradient steps during the accelerated descent.

- PhD project on High Performance Computing for Computational Micromagnetics;
- There Is No Long Distance Now: Very Short Stories!
- Self-Stabilizing Systems: 5th International Workshop, WSS 2001 Lisbon, Portugal, October 1–2, 2001 Proceedings.
- Phys. Rev. B 97, () - Micromagnetics of antiskyrmions in ultrathin films.
- Tourism in Destination Communities;
- Introduction;

Minimize Calls the minimization routine for the current mesh and initial magnetization. This call does not save the final result! Logging can be stopped by EndLog or CloseLogfile. CloseLogfile ends the previous logging of energy calculations or path minimizations. Contains mesh geometry and one or more magnetization states. No guarantee can be given for correct behavior. Stop End Stops script evaluation. The following contains all path related commands available for NEB calculations. This allows to assemble a path from individual magnetization states that have to fit to the current mesh!

After assembling a path it must be renewed before further operations can be performed. This allows to change individual magnetizations in the path. For example, Initial and final states of a path read from a file can be minimized for new material constants. RenewPath Defines all path variables, like distances and tangent vectors, assuming that all magnetizations have been correctly filled. This also resets PathN to the new value and renews the path. Of course, the new number of states can also be less than the previous PathN.

All states along the path are individual zones in the TecPlotFile. Because this also reads in the mesh, all mesh related quantities are recalculated. Sets PathN and allocates necessary space for mesh and path arrays. Make sure that all material parameters are correctly assigned, since those are not read!

Then proceeds by stepwise minimization to construct an initial path for subsequent optimization by the NEB method. PathMinimize Assumes that an initial path is defined and minimizes the action integral using a variant of the NEB method. They contain energies along the path, norms of the gradients along the path and cumulative distances along the path. Energy Calculates the energy in Joule of the currently loaded magnetization structure.

The following commands are simple options of the interpreter language to implement loops or script variables. Note that they cannot be nested or used recursively. Nested loops are not yet supported. This is so because currently the parsing for replacing variables is performed only after unravelling the loops. EndLoop Delimits the set of commands inside the active loop. Each parameter is represented by a polynomial, based on the best fit to experimental data. For magnetite the experimental data was derived from Heider and Williams for the exchange constant, Fletcher and O'Reilly for the crystalline anisotropy and Heider et al.

For K 1 , the experimental data are taken from Honda et al. Although this K 1 material parameters fall to zero as the temperature approached the Curie point, more recent studies e. In order to reconcile this discrepancy, the data from Honda et al. Finally the exchange constant, A , for iron was obtained following the method outlined in Heider and Williams , using the stiffness constant values reported by Stringfellow The conversion to Kelvin is done internally.

Geochemistry, Geophysics, Geosystems , 19 , — National Center for Biotechnology Information , U. Geochemistry, Geophysics, Geosystems : G 3. Geochem Geophys Geosyst. Published online Apr 6. Muxworthy 5. Adrian R. Author information Article notes Copyright and License information Disclaimer. Corresponding author. Received Oct 6; Accepted Feb 3. The Authors. This article has been cited by other articles in PMC. Keywords: micromagnetism, micromagnetic modeling, rock magnetism, mineral magnetism, paleomagnetism. Open in a separate window. Figure 1. Zeeman Field The Zeeman field represents the interaction of external sources of magnetic field with the magnetic system under investigation.

Anisotropy Field The anisotropy field couples the magnetization to the crystal lattice. Exchange Field The exchange field serves to align nearest neighbor magnetizations. Minimum Energy Solutions Using Finite Elements There are a variety of numerical micromagnetic approaches than can be used to solve for locally stable magnetic domain structures. Mesh Generation MERRILL requires that the geometry of the magnetic particle is described using a linear tetrahedral mesh by default defined in micron units.

Model Validation Validation of micromagnetic models should ultimately be done against experimental observations. Loop myvalue 0 10 Print myvalue EndLoop. Minimization A basic minimization from a random start, or a uniformly magnetized start can be a quick way to tell if a grain is in the SD or PSD size range.

A simple minimization script to determine a LEM state from a random initial state for a meshed geometry can be given as follows:! Setup material constants for Iron! Load the meshed geometry from a! Patran Neutral file ReadMesh 1 mesh. Randomize the magnetization Randomize All Moments! Critical energy versus node spacing. The critical energy versus the node spacing of the mesh, and linear extrapolating the node spacing to 0. This is good evidence that the energy terms in MERRILL are correctly determined and converge to the true continuum value when mesh size approaches zero.

There are many sources of error unaccounted for by this approach, including material parameters, mesh geometry, numerical errors, and approximation errors. A particle geometry e. This geometry is translated into a tetrahedral mesh with a large set of model nodes by a mesh generator. The distance between the nodes defines the resolution of the model. Several ready to use meshes are provided together with MERRILL, but arbitrary meshes can be loaded as long as they fulfill some minimal quality criteria. Besides commercial software, there exist several professional open source mesh generators that are more than sufficient for generating simple particle meshes.

Material properties of the magnetic material to be modeled and the scaling constant determining the particle size. With the above prerequisites it is already possible to do very sophisticated model runs resulting, e. MERRILL is operated through an interpreter language script that determines all aspects of the micromagnetic calculation. Empty lines, leading, trailing, and multiple spaces or tabs are ignored, as well as anything behind an exclamation mark!

A number of keywords are used to call subroutines or perform simple assignments.

## Research project: Computational Micromagnetics

All keywords are case insensitive, e. The script file is parsed line by line. Each valid line is immediately interpreted and executed. The following variables are supported:. Internally Ls 2 is used. MaxMeshNumber Maximal number of finite element meshes stored. Must be set once before loading meshes. PathN Number of structures along the magnetization path.

Warning: The mesh must have been defined previously! Use only after ReadMesh. ExchangeCalculator Chooses the exchange energy discretization method used. MaxRestarts Maximum number of restarts during energy minimization.

MaxEnergyEvaluations Maximum number of energy calculations during energy minimization typical: 5,—10, Afterward energy minimization is aborted. MaxPathEvaluations Maximum number of path energy calculations during path minimization typical: —2, Zone Current Zone to be written into the TecPlot output file double. Zone can be set before each output, or c an be used with automatic increment. AllExchange Values greater zero imply that all exchange energy calculations are performed and logged.

This slows the program down. Cubic Uniaxial Anisotropy Defines the symmetry of the anisotropy energy. Users should ensure the axes are mutually orthogonal. Can be used for hysteresis modeling. The index must be less or equal to the previously set MaxMeshNumber. This mesh will then be used in subsequent operations. Make sure that it was created for the currently active mesh! The magnetization read is used in subsequent operations.

By definition block 1 contains the free nodes, while higher block numbers can be used to define fixed nodes. These blocks have to be defined in the Patran file. Any previous magnetization is lost. The previous magnetization is partially lost. Randomize all moments Replaces the current magnetization by randomly distributed unit vectors. Any previous magnetization is lost! ConjugateGradient Uses conjugate gradient steps during the accelerated descent.

SteepestDescent Uses normal gradient steps during the accelerated descent. Minimize Calls the minimization routine for the current mesh and initial magnetization. This call does not save the final result! Logging can be stopped by EndLog or CloseLogfile. CloseLogfile ends the previous logging of energy calculations or path minimizations. Contains mesh geometry and one or more magnetization states.

No guarantee can be given for correct behavior. Stop End Stops script evaluation. The following contains all path related commands available for NEB calculations. This allows to assemble a path from individual magnetization states that have to fit to the current mesh!

After assembling a path it must be renewed before further operations can be performed. This allows to change individual magnetizations in the path. For example, Initial and final states of a path read from a file can be minimized for new material constants.

RenewPath Defines all path variables, like distances and tangent vectors, assuming that all magnetizations have been correctly filled. This also resets PathN to the new value and renews the path. Of course, the new number of states can also be less than the previous PathN. All states along the path are individual zones in the TecPlotFile. Because this also reads in the mesh, all mesh related quantities are recalculated. Sets PathN and allocates necessary space for mesh and path arrays.

Make sure that all material parameters are correctly assigned, since those are not read! Then proceeds by stepwise minimization to construct an initial path for subsequent optimization by the NEB method. PathMinimize Assumes that an initial path is defined and minimizes the action integral using a variant of the NEB method. They contain energies along the path, norms of the gradients along the path and cumulative distances along the path.

Energy Calculates the energy in Joule of the currently loaded magnetization structure. The following commands are simple options of the interpreter language to implement loops or script variables. Note that they cannot be nested or used recursively. Nested loops are not yet supported. This is so because currently the parsing for replacing variables is performed only after unravelling the loops. EndLoop Delimits the set of commands inside the active loop. Each parameter is represented by a polynomial, based on the best fit to experimental data.

For magnetite the experimental data was derived from Heider and Williams for the exchange constant, Fletcher and O'Reilly for the crystalline anisotropy and Heider et al.

- Micromagnetics of anti-skyrmions in ultrathin films?
- Economic Protectionism?
- Dying Declaration.
- A self-consistent spin-diffusion model for micromagnetics;
- MERRILL - Mineral Micromagnetics for the Earth Science Community | School of GeoSciences.
- Efficient micromagnetics for magnetic storage devices!

For K 1 , the experimental data are taken from Honda et al. Although this K 1 material parameters fall to zero as the temperature approached the Curie point, more recent studies e. In order to reconcile this discrepancy, the data from Honda et al. Finally the exchange constant, A , for iron was obtained following the method outlined in Heider and Williams , using the stiffness constant values reported by Stringfellow The conversion to Kelvin is done internally. Geochemistry, Geophysics, Geosystems , 19 , — National Center for Biotechnology Information , U.

Geochemistry, Geophysics, Geosystems : G 3. Geochem Geophys Geosyst. Published online Apr 6. Muxworthy 5. Adrian R.

## Donate to arXiv

Author information Article notes Copyright and License information Disclaimer. Corresponding author. Received Oct 6; Accepted Feb 3. The Authors. This article has been cited by other articles in PMC.

## MERRILL: Micromagnetic Earth Related Robust Interpreted Language Laboratory

Keywords: micromagnetism, micromagnetic modeling, rock magnetism, mineral magnetism, paleomagnetism. Open in a separate window. Figure 1. Zeeman Field The Zeeman field represents the interaction of external sources of magnetic field with the magnetic system under investigation. Anisotropy Field The anisotropy field couples the magnetization to the crystal lattice. Exchange Field The exchange field serves to align nearest neighbor magnetizations.

Minimum Energy Solutions Using Finite Elements There are a variety of numerical micromagnetic approaches than can be used to solve for locally stable magnetic domain structures. Mesh Generation MERRILL requires that the geometry of the magnetic particle is described using a linear tetrahedral mesh by default defined in micron units. Model Validation Validation of micromagnetic models should ultimately be done against experimental observations.

### Simple energy...

Loop myvalue 0 10 Print myvalue EndLoop. Minimization A basic minimization from a random start, or a uniformly magnetized start can be a quick way to tell if a grain is in the SD or PSD size range. A simple minimization script to determine a LEM state from a random initial state for a meshed geometry can be given as follows:! Setup material constants for Iron! Load the meshed geometry from a! Patran Neutral file ReadMesh 1 mesh. Randomize the magnetization Randomize All Moments! Run the minimizer Minimize!

Output the solution M to two files :! The soln. TecPlot format file which can be used! WriteMagnetization soln. Figure 2. Setup material constants for Magnetite! Generate a. A flower state will nucleate from a! Figure 3. Magnetite 20 C GenerateCubeMesh 0. A vortex state will nucleate from a! The 1 1 1 refers to the direction,!

LH will produce a left hand vortex. Vortex Magnetization 1 1 1 0. Figure 4. Hysteresis Loops Hysteresis loops are a useful tool when a magnetic material has several remanent magnetization states for a given set of parameters. Magnetic Field Hysteresis A magnetic hysteresis loop has several uses. Find LEM. Write current value to disk ,! Figure 5. Figure 6.

Size Hysteresis A hysteresis loop where the size of the grain is varied rather than an external field can be a useful tool for determining SD and PSD ranges, and the evolution of magnetic domain states. An example size hysteresis script incorporating all of this is! Use magnetite material parameters Magnetite 20 C! Ensure we can load at least 2 meshes! Load 0.

### Please note:

Set reference size of the meshes to We'll be scaling from 10 to In this case, will be 0. Make sure mesh 1 is loaded LoadMesh 1! Set initial magnetization to [] Uniform Magnetization 1 1 1! Loop from 10 to in steps of 10 for! Resize our mesh to the current! For meshsize 20, for example ,! Resize refsize meshsize! Give the magnetization a small kick Randomize Magnetization 5! Run the minimization Minimize! Resize the mesh back to its original!

They offer unmatched spatial resolution, superior field sensitivity, and the ability to withstand extreme environmental conditions. These sensors are available in a number of packages and electrical configurations. Our engineers will work closely with you to understand and interpret the results in order to determine the root cause of failures. Custom Sensing and Imaging Solutions: We offer specialized solutions, including single magnetic sensors, sensor arrays, custom electronics and packaging solutions, sensor processing polishing, dicing, and lapping , and custom thin-film and device fabrication.