Inspiration

Moore's law is running into problems as CMOS architecture poses challenges to scalability and low power computation. The emerging field of spintronics seeks to continue innovation in computing technology by using magnetic architectures to provide low power, compact, and more stable computing through the form of low operating voltages, smaller device architectures, and non-volatile operation. A widely available and open source tool used to study such architectures was developed by NIST decades ago. Although it is currently being used widely in the micro-magnetics community, its old architecture means that device modeling must be done using a 2.5D space, limiting the creative freedom of the micro-magneticist. My extension seeks to expand the current abilities of OOMMF by allowing high resolution 3D modeling. This was a re-write of my formerly failed and lost software which I lost during a backup. I'm happy to have it back.

What it does

My software accepts 3D models (currently in ASCII .stl format) and converts them into slices while preparing the file in a MIF (Magnetization Initialization Format) file for ready use in OOMMF software.

How I built it

I used Java for the file IO, slicing, and output of slices in the form of images while preparing the MIF file to accept the images for the magnetic part setup in OOMMF simulations.

Challenges I ran into

Slicing is a geometrically and mathematically difficult problem to solve. Although I can easily get a point outline from slices of the geometry, turning this into a closed polygon is difficult as the geometries could involve convex and concave features, meaning the problem isn't as simple as computing the convex hull of the point-set. Using a greedy algorithm, I was able to complete the determination of the outline of the part, and because the algorithm got erratic and jumped around, not completing the geometry fully, and instead randomly, I used this to my advantage and sliced each cross section a dozen times and overlayed the crossings to fill the shape.

Accomplishments that I'm proud of

I was able to slice it! And simulate it!

What I learned

When you run into a road-block and have no idea what to do, just re-write parts of your code that you can't explain and argue for confidently.

What's next for OOMMF3D

I want to create a GUI for this (still in Java), then publish on NanoHUB for the micro-magnetic community to use alongside the online supercomputers offered for use with OOMMF. The community will certainly appreciate my efforts.

Built With

Share this project:

Updates