OOMMF User's Guide
Total Page:16
File Type:pdf, Size:1020Kb
OOMMF User's Guide September 30, 2020 This manual documents release 1.2b4. Abstract This manual describes OOMMF (Object Oriented Micromagnetic Framework), a public domain micromagnetics program developed at the National Institute of Stan- dards and Technology. The program is designed to be portable, flexible, and extensible, with a user-friendly graphical interface. The code is written in C++ and Tcl/Tk. Tar- get systems include a wide range of Unix, Windows, and Mac OS X platforms. Contents Disclaimer iv 1 Overview of OOMMF1 2 Installation2 2.1 Requirements .................................. 2 2.2 Basic Installation ................................ 3 2.2.1 Download................................. 3 2.2.2 Effects of the Installed Tcl/Tk...................... 4 2.2.3 Check Your Platform Configuration................... 4 2.2.4 Compiling and Linking.......................... 8 2.2.5 Installing ................................. 9 2.2.6 Using OOMMF Software......................... 9 2.2.7 Reporting Problems ........................... 10 2.3 Advanced Installation.............................. 10 2.3.1 Reducing Disk Space Usage ....................... 10 2.3.2 Local Customizations........................... 10 2.3.3 Optimization ............................... 11 2.3.4 Parallelization............................... 11 2.3.5 Managing OOMMF Platform Names.................. 13 2.4 Platform Specific Installation Issues...................... 14 2.4.1 Unix Configuration............................ 15 2.4.2 Mac OS X Configuration......................... 16 2.4.3 Microsoft Windows Options....................... 16 3 Quick Start: Example OOMMF Session 20 4 OOMMF Architecture Overview 26 5 Command Line Launching 28 6 OOMMF Launcher/Control Interface: mmLaunch 31 7 OOMMF eXtensible Solver 33 7.1 OOMMF eXtensible Solver Interactive Interface: Oxsii............ 33 7.2 OOMMF eXtensible Solver Batch Interface: boxsi .............. 39 7.3 Standard Oxs Ext Child Classes........................ 45 7.3.1 Atlases................................... 46 7.3.2 Meshes................................... 52 7.3.3 Energies.................................. 53 7.3.4 Evolvers.................................. 69 7.3.5 Drivers................................... 80 i 7.3.6 Field Objects............................... 86 7.3.7 MIF Support Classes........................... 105 8 Micromagnetic Problem Editor: mmProbEd 106 9 Micromagnetic Problem File Source: FileSource 108 10 The 2D Micromagnetic Solver 110 10.1 The 2D Micromagnetic Interactive Solver: mmSolve2D . 110 10.2 OOMMF 2D Micromagnetic Solver Batch System . 116 10.2.1 2D Micromagnetic Solver Batch Interface: batchsolve . 117 10.2.2 2D Micromagnetic Solver Batch Scheduling System . 120 11 Data Table Display: mmDataTable 129 12 Data Graph Display: mmGraph 132 13 Vector Field Display: mmDisp 137 14 Data Archive: mmArchive 150 15 Documentation Viewer: mmHelp 152 16 Command Line Utilities 154 16.1 Bitmap File Format Conversion: any2ppm .................. 154 16.2 Making Data Tables from Vector Fields: avf2odt . 155 16.3 Vector Field File Format Conversion: avf2ovf . 159 16.4 Making Bitmaps from Vector Fields: avf2ppm . 162 16.5 Making PostScript from Vector Fields: avf2ps . 165 16.6 Vector Field File Difference: avfdiff ...................... 168 16.7 Cyclic Redundancy Check: crc32........................ 170 16.8 Killing OOMMF Processes: killoommf..................... 171 16.9 Last Oxsii/Boxsi run: lastjob.......................... 172 16.10 Launching the OOMMF host server: launchhost . 173 16.11 Calculating H Fields from Magnetization: mag2hfield . 175 16.12 MIF Format Conversion: mifconvert...................... 176 16.13 Process Nicknames: nickname ......................... 176 16.14 ODT Derived Quantity Calculator: odtcalc.................. 177 16.15 ODT Table Concatenation: odtcat....................... 178 16.16 ODT Column Extraction: odtcols ....................... 180 16.17 Oxs package management: oxspkg....................... 181 16.18 Oxs regression tests: oxsregression....................... 183 16.19 OOMMF and Process ID Information: pidinfo . 184 16.20 Platform-Independent Make: pimake...................... 185 ii 17 Problem Specification File Formats (MIF) 187 17.1 MIF 1.1...................................... 187 17.1.1 Material parameters ........................... 188 17.1.2 Demag specification............................ 189 17.1.3 Part geometry............................... 190 17.1.4 Initial magnetization........................... 191 17.1.5 Experiment parameters.......................... 192 17.1.6 Output specification ........................... 194 17.1.7 Miscellaneous............................... 194 17.2 MIF 1.2...................................... 196 17.3 MIF 2.1...................................... 197 17.3.1 MIF 2.1 File Overview.......................... 197 17.3.2 MIF 2.1 Extension Commands...................... 199 17.3.3 Specify Conventions ........................... 205 17.3.4 Variable Substitution........................... 215 17.3.5 Sample MIF 2.1 File ........................... 216 17.4 MIF 2.2...................................... 219 17.4.1 Differences between MIF 2.2 and MIF 2.1 Formats . 219 17.4.2 MIF 2.2 New Extension Commands................... 220 17.4.3 Sample MIF 2.2 File ........................... 222 18 Data Table File Format (ODT) 227 19 Vector Field File Format (OVF) 228 19.1 The OVF 0.0 format............................... 229 19.2 The OVF 1.0 format............................... 230 19.2.1 Segment Header block .......................... 231 19.2.2 Data block................................. 232 19.3 The OVF 2.0 format............................... 235 20 Troubleshooting 238 21 References 241 22 Credits 243 iii Disclaimer The research software described in this manual (\software") is provided by NIST as a public service. You may use, copy and distribute copies of the software in any medium, provided that you keep intact this entire notice. You may improve, modify and create derivative works of the software or any portion of the software, and you may copy and distribute such modifi- cations or works. Modified works should carry a notice stating that you changed the software and should note the date and nature of any such change. Please explicitly acknowledge the National Institute of Standards and Technology as the source of the software. The software is expressly provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION OF LAW, IN- CLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABIL- ITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST NEITHER REPRESENTS NOR WARRANTS THAT THE OPER- ATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECT- NESS, ACCURACY, RELIABILITY, OR USEFULNESS OF THE SOFTWARE. You are solely responsible for determining the appropriateness of using and distributing the software and you assume all risks associated with its use, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and the unavailability or interruption of operation. This software is not intended to be used in any situation where a failure could cause risk of injury or damage to property. The software was developed by NIST employees. NIST employee contributions are not subject to copyright protection within the United States. We would appreciate acknowledgement if the software is used. When referencing OOMMF software, we recommend citing the NIST technical report, M. J. Donahue and D. G. Porter, \OOMMF User's Guide, Version 1.0," NISTIR 6376, National Institute of Standards and Technology, Gaithersburg, MD (Sept 1999). Commercial equipment and software referred to on these pages are identified for informa- tional purposes only, and does not imply recommendation of or endorsement by the National Institute of Standards and Technology, nor does it imply that the products so identified are necessarily the best available for the purpose. iv 1 Overview of OOMMF The goal of the OOMMF1 (Object Oriented MicroMagnetic Framework) project in the Infor- mation Technology Laboratory (ITL) at the National Institute of Standards and Technology (NIST) is to develop a portable, extensible public domain micromagnetic program and as- sociated tools. 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. The main contributors to OOMMF are Mike Donahue and Don Porter. OOMMF is written in C++, a widely-available, object-oriented language that can pro- duce 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 Mac OS X platforms. The code may be modified at three distinct levels. At the top level, individual programs interact via well-defined protocols across network sockets. One may connect these modules together in various ways from the user interface, and new modules can interoperate by supporting the same protocols. The second level of modification is at the Tcl/Tk script level. Some modules allow Tcl/Tk scripts to be imported and executed at run time, and the