{ "cells": [ { "cell_type": "markdown", "id": "8a06af64", "metadata": {}, "source": [ "# Softmagnetic Composite\n" ] }, { "cell_type": "markdown", "id": "ecb6916c", "metadata": {}, "source": [ "## Google Colab Link\n", "\n", "The demo can be run on Google Colab without any local installation.\n", "Use the following [link](https://colab.research.google.com/drive/1HazB7ydSYZKbtrQoPc9xE3U0d7uc-1Ir) to try it out." ] }, { "cell_type": "code", "execution_count": 6, "id": "c0968958", "metadata": {}, "outputs": [], "source": [ "!pip install -q magnumnp numpy==1.22.4" ] }, { "cell_type": "markdown", "id": "c04b0017", "metadata": {}, "source": [ "## Run Demo:" ] }, { "cell_type": "code", "execution_count": 7, "id": "72e82794", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2023-05-08 12:31:43 magnum.np:INFO \u001b[1;37;32m[State] running on device: cpu (dtype = float64)\u001b[0m\n", "2023-05-08 12:31:43 magnum.np:INFO \u001b[1;37;32m[Mesh] 40x40x40 (size= 2.30769e-08 x 2.30769e-08 x 2.30769e-08)\u001b[0m\n", "2023-05-08 12:31:43 magnum.np:INFO \u001b[1;37;32m[LLGSolver] using RKF45 solver (atol = 1e-05)\u001b[0m\n", "2023-05-08 12:31:48 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1e-10\u001b[0m\n", "2023-05-08 12:31:50 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2e-10\u001b[0m\n", "2023-05-08 12:31:52 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3e-10\u001b[0m\n", "2023-05-08 12:31:55 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4e-10\u001b[0m\n", "2023-05-08 12:31:58 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5e-10\u001b[0m\n", "2023-05-08 12:32:02 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=6e-10\u001b[0m\n", "2023-05-08 12:32:05 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=7e-10\u001b[0m\n", "2023-05-08 12:32:07 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=8e-10\u001b[0m\n", "2023-05-08 12:32:10 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=9e-10\u001b[0m\n", "2023-05-08 12:32:12 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1e-09\u001b[0m\n", "2023-05-08 12:32:14 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.1e-09\u001b[0m\n", "2023-05-08 12:32:17 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.2e-09\u001b[0m\n", "2023-05-08 12:32:19 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.3e-09\u001b[0m\n", "2023-05-08 12:32:23 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.4e-09\u001b[0m\n", "2023-05-08 12:32:26 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.5e-09\u001b[0m\n", "2023-05-08 12:32:30 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.6e-09\u001b[0m\n", "2023-05-08 12:32:33 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.7e-09\u001b[0m\n", "2023-05-08 12:32:36 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.8e-09\u001b[0m\n", "2023-05-08 12:32:41 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=1.9e-09\u001b[0m\n", "2023-05-08 12:32:45 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2e-09\u001b[0m\n", "2023-05-08 12:32:48 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.1e-09\u001b[0m\n", "2023-05-08 12:32:52 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.2e-09\u001b[0m\n", "2023-05-08 12:32:55 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.3e-09\u001b[0m\n", "2023-05-08 12:32:59 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.4e-09\u001b[0m\n", "2023-05-08 12:33:03 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.5e-09\u001b[0m\n", "2023-05-08 12:33:07 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.6e-09\u001b[0m\n", "2023-05-08 12:33:12 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.7e-09\u001b[0m\n", "2023-05-08 12:33:17 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.8e-09\u001b[0m\n", "2023-05-08 12:33:21 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=2.9e-09\u001b[0m\n", "2023-05-08 12:33:25 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3e-09\u001b[0m\n", "2023-05-08 12:33:29 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.1e-09\u001b[0m\n", "2023-05-08 12:33:33 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.2e-09\u001b[0m\n", "2023-05-08 12:33:37 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.3e-09\u001b[0m\n", "2023-05-08 12:33:43 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.4e-09\u001b[0m\n", "2023-05-08 12:33:46 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.5e-09\u001b[0m\n", "2023-05-08 12:33:49 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.6e-09\u001b[0m\n", "2023-05-08 12:33:51 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.7e-09\u001b[0m\n", "2023-05-08 12:33:55 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.8e-09\u001b[0m\n", "2023-05-08 12:33:57 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=3.9e-09\u001b[0m\n", "2023-05-08 12:34:00 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4e-09\u001b[0m\n", "2023-05-08 12:34:02 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.1e-09\u001b[0m\n", "2023-05-08 12:34:05 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.2e-09\u001b[0m\n", "2023-05-08 12:34:08 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.3e-09\u001b[0m\n", "2023-05-08 12:34:10 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.4e-09\u001b[0m\n", "2023-05-08 12:34:12 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.5e-09\u001b[0m\n", "2023-05-08 12:34:14 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.6e-09\u001b[0m\n", "2023-05-08 12:34:16 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.7e-09\u001b[0m\n", "2023-05-08 12:34:19 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.8e-09\u001b[0m\n", "2023-05-08 12:34:21 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=4.9e-09\u001b[0m\n", "2023-05-08 12:34:23 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5e-09\u001b[0m\n", "2023-05-08 12:34:26 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.1e-09\u001b[0m\n", "2023-05-08 12:34:29 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.2e-09\u001b[0m\n", "2023-05-08 12:34:32 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.3e-09\u001b[0m\n", "2023-05-08 12:34:35 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.4e-09\u001b[0m\n", "2023-05-08 12:34:37 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.5e-09\u001b[0m\n", "2023-05-08 12:34:40 magnum.np:INFO \u001b[1;37;34m[LLG] step: dt= 1e-10 t=5.6e-09\u001b[0m\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "File \u001b[0;32m~/git/magnum.np/magnumnp/common/timer.py:236\u001b[0m, in \u001b[0;36mtimedmethod..timed\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 235\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Timer(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, method\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m)):\n\u001b[0;32m--> 236\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmethod\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/solvers/llg.py:49\u001b[0m, in \u001b[0;36mLLGSolver.step\u001b[0;34m(self, state, dt, **kwargs)\u001b[0m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;129m@timedmethod\u001b[39m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mstep\u001b[39m(\u001b[38;5;28mself\u001b[39m, state, dt, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 49\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_solver\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdt\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m logging\u001b[38;5;241m.\u001b[39minfo_blue(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m[LLG] step: dt= \u001b[39m\u001b[38;5;132;01m%g\u001b[39;00m\u001b[38;5;124m t=\u001b[39m\u001b[38;5;132;01m%g\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (dt, state\u001b[38;5;241m.\u001b[39mt))\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/solvers/ode_solvers/rkf45.py:92\u001b[0m, in \u001b[0;36mRKF45.step\u001b[0;34m(self, state, dt, rtol, atol, **llg_args)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m state\u001b[38;5;241m.\u001b[39mt \u001b[38;5;241m<\u001b[39m t1:\n\u001b[0;32m---> 92\u001b[0m _m1, _t1, err \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_try_step\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mllg_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 93\u001b[0m dt_opt \u001b[38;5;241m=\u001b[39m state\u001b[38;5;241m.\u001b[39m_tensor(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_optimal_stepsize(err, atol \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_atol))\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/solvers/ode_solvers/rkf45.py:52\u001b[0m, in \u001b[0;36mRKF45._try_step\u001b[0;34m(self, state, **llg_args)\u001b[0m\n\u001b[1;32m 51\u001b[0m f, m, t, dt \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_f_wrapper, state\u001b[38;5;241m.\u001b[39mm, state\u001b[38;5;241m.\u001b[39mt, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_dt\n\u001b[0;32m---> 52\u001b[0m k1 \u001b[38;5;241m=\u001b[39m dt \u001b[38;5;241m*\u001b[39m \u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mm\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mllg_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 53\u001b[0m k2 \u001b[38;5;241m=\u001b[39m dt \u001b[38;5;241m*\u001b[39m f(state, t \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1.\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m4.\u001b[39m\u001b[38;5;241m*\u001b[39mdt, m \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1.\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m4.\u001b[39m\u001b[38;5;241m*\u001b[39mk1, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mllg_args)\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/solvers/ode_solvers/rkf45.py:45\u001b[0m, in \u001b[0;36mRKF45._f_wrapper\u001b[0;34m(self, state, t, m, **llg_args)\u001b[0m\n\u001b[1;32m 44\u001b[0m state\u001b[38;5;241m.\u001b[39mm \u001b[38;5;241m=\u001b[39m m\n\u001b[0;32m---> 45\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_f\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mllg_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 46\u001b[0m state\u001b[38;5;241m.\u001b[39mt \u001b[38;5;241m=\u001b[39m t0\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/solvers/llg.py:36\u001b[0m, in \u001b[0;36mLLGSolver.dm\u001b[0;34m(self, state, alpha, no_precession)\u001b[0m\n\u001b[1;32m 34\u001b[0m alpha_prime \u001b[38;5;241m=\u001b[39m alpha \u001b[38;5;241m*\u001b[39m gamma_prime\n\u001b[0;32m---> 36\u001b[0m h \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msum\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m[\u001b[49m\u001b[43mterm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mh\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mterm\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_terms\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 38\u001b[0m dm \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m-\u001b[39malpha_prime \u001b[38;5;241m*\u001b[39m torch\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mcross(state\u001b[38;5;241m.\u001b[39mm, torch\u001b[38;5;241m.\u001b[39mlinalg\u001b[38;5;241m.\u001b[39mcross(state\u001b[38;5;241m.\u001b[39mm, h))\n", "File \u001b[0;32m~/git/magnum.np/venv/lib/python3.8/site-packages/torch/_tensor.py:1295\u001b[0m, in \u001b[0;36mTensor.__torch_function__\u001b[0;34m(cls, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m 1294\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m _C\u001b[38;5;241m.\u001b[39mDisableTorchFunctionSubclass():\n\u001b[0;32m-> 1295\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1296\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m func \u001b[38;5;129;01min\u001b[39;00m get_default_nowrap_functions():\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: ", "\nThe above exception was the direct cause of the following exception:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[7], line 81\u001b[0m\n\u001b[1;32m 78\u001b[0m logger \u001b[38;5;241m=\u001b[39m ScalarLogger(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdata/m.dat\u001b[39m\u001b[38;5;124m\"\u001b[39m, [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt\u001b[39m\u001b[38;5;124m'\u001b[39m, external\u001b[38;5;241m.\u001b[39mh, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mm\u001b[39m\u001b[38;5;124m'\u001b[39m])\n\u001b[1;32m 80\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m state\u001b[38;5;241m.\u001b[39mt \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m13.5e-9\u001b[39m\u001b[38;5;241m-\u001b[39meps:\n\u001b[0;32m---> 81\u001b[0m \u001b[43mllg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstate\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1e-10\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 82\u001b[0m logger \u001b[38;5;241m<<\u001b[39m state\n\u001b[1;32m 84\u001b[0m Timer\u001b[38;5;241m.\u001b[39mprint_report()\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/common/timer.py:236\u001b[0m, in \u001b[0;36mtimedmethod..timed\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(method)\n\u001b[1;32m 234\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mtimed\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 235\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Timer(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m (args[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, method\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m)):\n\u001b[0;32m--> 236\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m method(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", "File \u001b[0;32m~/git/magnum.np/magnumnp/common/timer.py:103\u001b[0m, in \u001b[0;36mTimer.__exit__\u001b[0;34m(self, e_typ, e_val, trcbak)\u001b[0m\n\u001b[1;32m 101\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__exit__\u001b[39m(\u001b[38;5;28mself\u001b[39m, e_typ, e_val, trcbak):\n\u001b[1;32m 102\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mall\u001b[39m((e_typ, e_val, trcbak)):\n\u001b[0;32m--> 103\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e_typ \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me_val\u001b[39;00m\n\u001b[1;32m 105\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m Timer\u001b[38;5;241m.\u001b[39m_options[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mactive\u001b[39m\u001b[38;5;124m'\u001b[39m]: \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n\u001b[1;32m 107\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m Timer\u001b[38;5;241m.\u001b[39m_options[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mskip\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcalls\u001b[39m\u001b[38;5;124m'\u001b[39m]:\n", "\u001b[0;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "from magnumnp import *\n", "import torch\n", "\n", "#SIZE_CUBE = 900e-9\n", "#gap = 23.08 14.29 9.09 6.98 4.35\n", "#Ni = 13 21 33 43 69\n", "#N = 3*Ni + 1 = 40 64 100 130 208\n", "\n", "N = 40\n", "Timer.enable()\n", "\n", "# initialize state\n", "eps = 1e-15\n", "Nx, Ny, Nz = 3, 3, 3\n", "nx, ny, nz = N, N, N\n", "dx, dy, dz = 900e-9 / (N-1), 900e-9 / (N-1), 900e-9 / (N-1)\n", "\n", "mesh = Mesh((nx,ny,nz), (dx,dy,dz))\n", "state = State(mesh)\n", "state.m = state.Constant((0,0,1))\n", "state.material = {\"alpha\": 1.0}\n", "\n", "state.material[\"Ms\"] = state.Constant([0.0001/constants.mu_0])\n", "state.material[\"Ms\"][nx%Nx:,ny%Ny:,nz%Nz:] = 1.5/constants.mu_0\n", "\n", "state.material[\"A\"] = state.Constant([0.])\n", "state.material[\"A\"][nx%Nx:,ny%Ny:,nz%Nz:] = 10e-12\n", "\n", "state.material[\"Ku\"] = state.Constant([0.])\n", "state.material[\"Ku\"][nx%Nx:,ny%Ny:,nz%Nz:] = 8e3\n", "\n", "k_dir = state.Tensor(((1.688281290426342229e-01, -7.18775080428410873e-01, 6.744326850020654351e-01),\n", " (-1.24488794472133734e-02, 8.827421556265807601e-01, 4.696927847862328309e-01),\n", " (4.360199027887372986e-02, 9.960452028850761419e-01, -7.74133079860866157e-02),\n", " (3.749512630383480816e-01, 6.881354883832631053e-01, -6.21193287128471327e-01),\n", " (8.860065554198717219e-01, 2.300892602270045995e-01, -4.02555978816864223e-01),\n", " (-7.89116308031293234e-02, -7.44290764462179010e-01, -6.63177361239280949e-01),\n", " (1.534426618908853179e-01, 6.661409155280296757e-01, 7.298709681658244186e-01),\n", " (3.629777351625293469e-02, 7.384491837339980380e-01, 6.733314745950575997e-01),\n", " (-6.22338299750334056e-01, -4.54495719851937984e-01, -6.37282261874698607e-01),\n", " (5.091810893444697061e-01, -7.86185846048253700e-01, 3.502091285608797122e-01),\n", " (-7.42309465286212555e-01, 5.245654409560085440e-01, 4.169025736321682052e-01),\n", " (2.976579786344664136e-01, 5.698206235530806074e-01, -7.65966177274703174e-01),\n", " (6.783747177775549531e-02, -5.13898942407917780e-01, 8.551642850440059895e-01),\n", " (-4.09811740153190107e-01, -6.51000036118079772e-01, -6.38947017057653221e-01),\n", " (-4.35391566957816666e-01, 7.000228998401875069e-01, -5.66040743340399221e-01),\n", " (-3.67275369838029608e-01, -9.06849357668608080e-01, -2.06719726214920074e-01),\n", " (-7.24876157150795674e-01, 2.752762585295002173e-01, -6.31488351661607993e-01),\n", " (7.999944917638109887e-01, -5.94809366836661745e-01, -7.88075521186358679e-02),\n", " (-6.38660840611896762e-01, -7.30613237722315789e-01, -2.41488359002706959e-01),\n", " (5.978837032381554284e-01, -9.09378167932159697e-02, 7.964078043810925989e-01),\n", " (-9.29805720633694821e-01, -3.57570345696486047e-01, 8.720533100304592167e-02),\n", " (4.682836169203208332e-01, -6.07627185281937154e-01, -6.41482390896564447e-01),\n", " (7.309975652323822404e-01, 1.317784064962062851e-01, -6.69534921572915164e-01),\n", " (-1.26449163913964823e-01, -9.90975538690972102e-01, -4.44757311530326326e-02),\n", " (4.076648517742982869e-01, 5.753823407754260488e-01, 7.090448015123099745e-01),\n", " (3.803260297965609382e-01, 9.217214425940288836e-01, 7.603744683751342825e-02),\n", " (-7.25468075571367832e-01, 2.563257490022778362e-01, -6.38743439672923241e-01))).reshape(3,3,3,3)\n", "k_dir = k_dir.repeat_interleave(nx//Nx,0).repeat_interleave(ny//Ny,1).repeat_interleave(nz//Nz,2)\n", "\n", "state.material[\"Ku_axis\"] = state.Constant([1,1,1])\n", "state.material[\"Ku_axis\"][nx%Nx:,ny%Ny:,nz%Nz:,:] = k_dir\n", "\n", "write_vti(state.material, \"data/material.vti\", state)\n", "\n", "# initialize field terms\n", "demag = DemagFieldPBC()\n", "exchange = ExchangeFieldPBC()\n", "aniso = UniaxialAnisotropyField()\n", "external = ExternalField(TimeInterpolator(state, {0.0e-9: [0.0, 0.0, 0.0],\n", " 1.0e-9: [0.0, 0.0, 0.0],\n", " 3.5e-9: [0.1/constants.mu_0, 0.0, 0.0],\n", " 8.5e-9: [-0.1/constants.mu_0, 0.0, 0.0],\n", " 13.5e-9: [0.1/constants.mu_0, 0.0, 0.0]}))\n", "\n", "# perform integration\n", "llg = LLGSolver([demag, exchange, aniso, external])\n", "logger = ScalarLogger(\"data/m.dat\", ['t', external.h, 'm'])\n", "\n", "while state.t < 13.5e-9-eps:\n", " llg.step(state, 1e-10)\n", " logger << state\n", "\n", "Timer.print_report()" ] }, { "cell_type": "markdown", "id": "ff38f817", "metadata": {}, "source": [ "## Plot Results" ] }, { "cell_type": "code", "execution_count": null, "id": "764c1293", "metadata": {}, "outputs": [], "source": [ "from os import path\n", "if not path.isdir(\"ref\"):\n", " !mkdir ref\n", " !wget -P ref https://gitlab.com/magnum.np/magnum.np/raw/main/demos/softmagnetic_composite/ref/m_ref.dat" ] }, { "cell_type": "code", "execution_count": 5, "id": "fd7c9dfa", "metadata": {}, "outputs": [ { "data": { "image/png": "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zAAgKysLRVHIzMxkyJAhXf6abeLi4rBareTn53d47PDhw2i12m55z0KI/kGmp4UQA8a6detOOWr28ccfA5xy2rXN3XffzaOPPsrvf//7M77Go48+iqIo3Hbbbeo08sl27drFa6+91smWB/h8Ph566CEOHTrEQw89pE6HX3/99eh0Oh5//PEO709RFOrq6s7r9b5Op9OxcOFC/v3vf3P8+HG1vqqqihUrVjBjxgy1TUKIi4+MNAohBowHH3wQh8PBddddx7Bhw3C73WzZsoWVK1eSkZHBnXfeedrnDho0iMcee+ysrzF9+nReeOEF7r//foYNGxZ0Isz69ev58MMPeeqpp856n6amJv75z38CgVQ+bSfCFBYWsnTpUp588kn12qysLJ566imWL1/O8ePHWbJkCWFhYRQVFfH+++9z77338sMf/vDsHXQOnnrqKVavXs2MGTO4//770ev1/L//9/9wuVw888wzXfIaQoj+SYJGIcSA8bvf/Y63336bjz/+mL/97W+43W7S09O5//77+dnPfnbKpN/n47vf/S6TJ0/m97//Pa+//jo1NTWEhoYyYcIEXnnllQ4nvZxKaWkpt912GxBYk5iUlMS0adP461//yoIFCzpc/5Of/IQhQ4bwxz/+kccffxyAtLQ0Fi5cyDXXXNMl7wtg5MiRfPHFFyxfvpynn34av9/P1KlT+ec//xm081oIcfHRKLICWgghhBBCnIWsaRRCCCGEEGclQaMQQgghhDgrCRqFEEIIIcRZ9augcePGjVx99dUkJyej0Wj44IMPzvqc9evXM2HCBEwmE9nZ2bz66qsdrnnhhRfIyMjAbDYzdepUtm/f3vWNF0IIIYTox/pV0NjS0sLYsWN54YUXzun6oqIirrzySubMmcOePXt4+OGHufvuu/n000/Va1auXMmyZct49NFH2b17N2PHjmXRokUdjuUSQgghhLiY9dvd0xqNhvfff58lS5ac9pof//jHfPTRR+qRXABLly6lsbGRVatWAYHjwyZPnszzzz8PBI7rSktL48EHH+QnP/lJt74HIYQQQoj+YkDnady6dSvz588Pqlu0aBEPP/wwAG63m127drF8+XL1ca1Wy/z589m6detp7+tyuXC5XGrZ7/dTX19PTEwMGo2ma9+EEEIIIcRJFEWhubmZ5ORktNqemzQe0EFjZWUlCQkJQXUJ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nj17YDKZEB8fD5lMhlOnTiEqKqpHn6dWqxEREcHTLYPBr776Co899hjy8/N5nkajgUajQVBQUI8+lxBybtTTSAjpFIVCgYiICMErODgYVVVViIiIwNNPP83L7tq1C3K5HL/88gtWrFiB7du349VXX+W9QsXFxQAAj8eD1atXIzExESqVChMmTMDatWv5eebMmYNVq1bhzjvvRGhoKBYsWMDz77jjDtx///3Q6/WIiIjAE088Iajvxo0bMWvWLOh0OoSEhGDRokUoKiryyXVLJBJej5Y9qB1dz9kaGhqwbNkyaDQaREZG4sUXX+ywPjt27IBMJkNjYyPPKy4uhkgkwokTJ7p8fZ0VERGBn376iacPHjwIACgtLcWf//xnbNmyBcXFxTh8+DBOnDiByMhIn39+0ysoKAgikUiQp9FofPp5hJDWKGgkhPSIwWDABx98gCeeeAJ79+5FfX09/vSnP2HVqlWYO3cuXn31VUyfPp0/biwvL0dsbCwAYPXq1fj444/x9ttvIycnB3fddRduuOEGbN++nZ//o48+glwux86dO/H2228L8gMCApCZmYnnnnsOTz75JDZv3syPNzQ04O6778bevXvxyy+/QCwWY/HixfB4PL3WFp25npbuu+8+bN++Hd999x02bdqEbdu2Yd++fe1+RnZ2NkaPHg2lUsnz9u/fj+DgYMTHx/v0elq68cYbYTabkZycjAkTJuDTTz+FzWbDVVddhddffx2JiYl46KGH8NRTT2Hs2LE4duwYxo0bRzOoCRlE6PE0IaRTfvzxx1a9OX/961/x17/+FQsXLsTKlSuxdOlSTJkyBQEBAVi9ejUAICgoCHK5vNXjRrvdjqeffho///wzpk+fDgBISkrCjh078M477+CCCy4AAIwYMQLPPfdcq/qMHz8ejz/+OC/zz3/+E7/88gsuvvhiAMCSJUsE5T/44AMYDAbk5ubycXLdue5LLrkEa9asaVWus9fTxGKx4P3338enn36KuXPnAvAGwjExMe3W58CBA5g4caIgLzs7GxMmTBDU+Z577oHH48EDDzyAP//5z126RgBwu92CdEBAQJuTS3bt2sW/v+qqq3DVVVcBALKystr9TELIwENBIyGkUy688EK89dZbgryWY/peeOEFjB07FmvWrEFWVlaH4x0LCwthtVp5kNfE4XAIgqLJkye3+f7x48cL0pGRkaisrOTpgoICPPbYY8jMzMTp06d5D2NJSUmXgsazr/tcM4E7ez1NioqK4HA4kJaWxvP0ej1GjRrVbn2ys7Nx/fXXC/L279+P1NRUAIDL5cLdd9+NrVu3IigoCJMnT8bixYsREhLS6WsEgMzMTNxwww3t1oUQMrRQ0EgI6ZSAgAAMHz78nMeLiopQVlYGj8eD4uJijBs3rt3zWSwWAMC6desQHR0tONYy4DxXkNY0c7eJSCQSPHq+7LLLEB8fj/feew9RUVHweDwYO3YsHA5Hu/U6W0fX3aSz19MTbrcbhw8fbhWE7tu3j/es7t69G2PGjOF1uOSSS7Bp06Y2J7A0aesaT5065ZM6t3T2eo5jx47FXXfd5fPPIYT0DgoaCSE95nA4cMMNN+Caa67BqFGj8Oc//xmHDh1CWFgYAEAul7d63JmSkgKFQoGSkpJWj257qrq6Gvn5+Xjvvfcwe/ZsAN4JJL2pq9czbNgwyGQyZGZmIi4uDgBQU1ODo0ePnvP9+fn5aGxsFMxMzsjIQGlpKe9pLCsrEwSt0dHRKC0t7cGV+U7Teo6zZ8+GWCymgJGQAYaCRkJIp9jtdhiNRkGeVCpFaGgoHn74YdTW1uK1116DRqPB+vXr8T//8z/48ccfAQAJCQnIzMxEcXExNBoN9Ho9AgMDce+99+Kuu+6Cx+PBrFmzUFtbi507d0Kr1WL58uXdrmtwcDBCQkLw7rvvIjIyEiUlJXjwwQd7dP0d6er1aDQa3HTTTbjvvvsQEhKCsLAwPPzwwxCLzz0/sWmh69dffx133HEHCgsLcccddwBAl3tQ/SE9PR0PP/ww1q1bh40bN/q7OoSQLqLZ04SQTtm4cSMiIyMFr1mzZmHbtm145ZVX8Mknn0Cr1UIsFuOTTz7Bb7/9xsfJ3XvvvZBIJEhJSYHBYEBJSQkA4KmnnsKjjz6K1atXY/To0UhPT8e6deuQmJjYo7qKxWJ8+eWXyMrK4o9An3/++R63QUe6ej3PP/88Zs+ejcsuuwzz5s3DrFmzzjmGE/AGjQsWLOAzkx9++GH87W9/g1arxWuvvQYAiIqKEvQslpaW9njNRF9pWs8xKCio1fACQkj/R3tPE0LIALFgwQKcd955+Pvf/37OMi6XC6NHj8a2bdv4RJhdu3a1OxGmL5SWlmLhwoX49ttvsWTJEnz88cfnnJA0Z84cpKam4pVXXunWZ4lEInzzzTdt7nRDCOk+6mkkhJAB4sCBAx1OMJJKpXjxxRdx4YUXIjU1Fffcc4/fA8ZzrefYnjfffBMajQaHDh3q9OfccssttMg3Ib2IehoJIWQAMBqNiIyMRE5ODlJSUvxdnV5VWloKm80GAIiLi+v01pGVlZWoq6sD4F2C6Vwz7wkh3UNBIyGEEEII6RA9niaEEEIIIR2ioJEQQgghhHSIgkZCCCGEENIhChoJIYQQQkiHKGgkhBBCCCEdoqCREEIIIYR0iIJGQgghhBDSIQoaCSGEEEJIhyhoJIQQQgghHaKgkRBCCCGEdIiCRkIIIYQQ0iEKGgkhhBBCSIf+H8itr5VLfLhzAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "IOStream.flush timed out\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "\n", "data = np.loadtxt(\"data/m.dat\")\n", "ref = np.loadtxt(\"ref/m_ref.dat\")\n", "\n", "\n", "\n", "fig, ax = plt.subplots(figsize=(7,5))\n", "cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']\n", "\n", "ax.plot(data[:,1]*4*np.pi*1e-7, data[:,4], '-', color = cycle[2], label = \"magnum.np\")\n", "ax.plot(ref[:,1]*4*np.pi*1e-7, ref[:,4], '-', color = cycle[2], linewidth = 6, alpha = 0.4, label = \"magnum.af\")\n", "\n", "ax.set_xlim([-0.1,0.1])\n", "ax.set_ylim([-1,1])\n", "ax.set_title(\"SMC Demo\")\n", "ax.set_xlabel(\"External Field $\\mu$$_0$ H$^{ext}$$_x$ [T]\")\n", "ax.set_ylabel(\"Reduced Magnetization m [1]\")\n", "ax.legend(ncol=3)\n", "ax.grid()\n", "fig.savefig(\"data/results.png\")\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }