Skip to content

Latest commit

 

History

History
289 lines (272 loc) · 13.7 KB

File metadata and controls

289 lines (272 loc) · 13.7 KB
layout page
title Project
permalink /project/
description Research in magnon and spin-phonon transport, alongside scientific software and research tools developed by Won-Young Choi.

Projects

Explore my work across fundamental spin-transport research and scientific software development.

Research Develop
Spin–Orbit Coupling · Spin–Charge Conversion

Spin–Orbit Coupling Phenomena and Spin Transport

Spin–orbit coupling links an electron's spin to its motion through electric fields in solids. My research uses SOC-driven transport to generate, manipulate, and detect spin currents in magnetic heterostructures, connecting microscopic spin-dependent scattering to measurable electrical signals and magnetization dynamics.

  • Spin-current generation and spin–charge conversion
  • Spin Hall magnetoresistance and nonlinear transport
  • Spin–orbit torques and current-driven magnetization switching
Antiferromagnets · Magnonics · Spin Torque

Magnon Transport

Magnons—collective excitations of ordered spins—can carry angular momentum through electrically insulating antiferromagnets. My research examines how the Néel-vector orientation and magnon coherence govern spin transmission across antiferromagnet/ferromagnet heterostructures.

  • Spin-polarization filtering by antiferromagnetic order
  • Magnon-mediated spin–orbit torque and magnetization switching
  • Low-dissipation transport for energy-efficient spintronic devices
Spin–Lattice Coupling · Thermal Transport

Spin–Phonon Transport

Spin–phonon coupling links electronic spin dynamics to lattice vibrations, enabling angular momentum and energy to move between spin and phonon channels. I study how this conversion influences nonequilibrium spin flow, damping, and thermal transport in magnetic heterostructures.

  • Angular-momentum exchange between spins and the lattice
  • Separation of electronic, magnonic, and phononic signals
  • Thermal pathways for controlling spin transport and device response
Research Tool · IMA/PMA · Python

Second-harmonic Hall SOT Analyzer

English interface of the second-harmonic Hall SOT Analyzer showing analysis settings and extracted torque efficiencies

A desktop tool for extracting x-, y-, and z-spin damping-like and field-like torque efficiencies from angular first- and second-harmonic Hall measurements. It supports both in-plane and perpendicular magnetic anisotropy samples.

The application and source code are available upon request.

macOS · Version 7

Figure Creator

Colorful three-dimensional surface plot created with Figure Creator

A desktop application for turning measurement data into clean, publication-ready scientific figures with a live, interactive canvas.

  • 2D, polar, 3D, heatmap, surface, bar, and multi-panel figures
  • Drag-to-edit layouts, legends, annotations, axes, and colorbars
  • Journal size presets, LaTeX labels, error bars, broken axes, and high-resolution export
  • English and Korean interface with searchable settings

System requirement: Apple Silicon Mac (M1 or later). The current build is not notarized; follow the first-launch instructions in the manual to allow it in System Settings → Privacy & Security.

In Development · Python

Macrospin Simulator

Simulated in-plane magnetization trajectory on a Bloch sphere In-plane magnetization trajectory Animated macrospin precession around an applied magnetic field Macrospin precession dynamics

A desktop simulator for exploring magnetization dynamics within the macrospin approximation. It numerically solves the Landau–Lifshitz–Gilbert equation and visualizes precession, spin–orbit-torque switching, and time-resolved trajectories.

Currently under active development — the AFM (antiferromagnet) mode is incomplete; the FM feature set is validated and stable.

macOS · Version 0.1

TopDock

A native menu-bar utility that turns the MacBook notch into a quick launcher: push the cursor into the notch (or press ⌥Space) and a floating panel of your folders and apps appears — launch, browse, and file things away without leaving the current app.

  • Trigger by shoving the cursor into the notch, the top-center of external displays, or a global hotkey
  • In-panel folder browsing with search, sorting, and Quick Look preview
  • Drag & drop both ways — drop a file onto a folder tile to copy it there in one motion
  • Multiple workspaces for different sets of folders, Korean and English interface

System requirement: Apple Silicon Mac, macOS 14 or later. The build is not notarized, so macOS blocks the first launch: open System Settings → Privacy & Security, scroll down, and click Open Anyway. Built with SwiftUI/AppKit, assisted by Claude Code.

<script> (function () { var tablist = document.querySelector('[data-project-tabs]'); if (!tablist) return; var tabs = Array.prototype.slice.call(tablist.querySelectorAll('[role="tab"]')); var panels = Array.prototype.slice.call(document.querySelectorAll('[data-project-panel]')); function activate(tab, updateHash) { tabs.forEach(function (item) { var selected = item === tab; item.classList.toggle('is-active', selected); item.setAttribute('aria-selected', selected ? 'true' : 'false'); item.setAttribute('tabindex', selected ? '0' : '-1'); }); panels.forEach(function (panel) { var selected = panel.id === tab.getAttribute('aria-controls'); panel.hidden = !selected; panel.querySelectorAll('video').forEach(function (video) { if (selected) { var playAttempt = video.play(); if (playAttempt && playAttempt.catch) playAttempt.catch(function () {}); } else { video.pause(); } }); }); if (updateHash && window.history && window.history.replaceState) { window.history.replaceState(null, '', '#' + tab.id.replace('tab-', '')); } } tabs.forEach(function (tab, index) { tab.addEventListener('click', function () { activate(tab, true); }); tab.addEventListener('keydown', function (event) { var targetIndex = index; if (event.key === 'ArrowRight') targetIndex = (index + 1) % tabs.length; else if (event.key === 'ArrowLeft') targetIndex = (index - 1 + tabs.length) % tabs.length; else if (event.key === 'Home') targetIndex = 0; else if (event.key === 'End') targetIndex = tabs.length - 1; else return; event.preventDefault(); tabs[targetIndex].focus(); activate(tabs[targetIndex], true); }); }); tablist.classList.add('is-ready'); var requested = window.location.hash === '#develop' ? tabs[1] : tabs[0]; activate(requested, false); }()); </script>