Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Torque magnetometry #281

Open
jmiasif opened this issue Apr 29, 2024 · 0 comments
Open

Torque magnetometry #281

jmiasif opened this issue Apr 29, 2024 · 0 comments
Assignees

Comments

@jmiasif
Copy link

jmiasif commented Apr 29, 2024

Respected Ubermag team
Torque magnetometry is a technique where an external magnetic field is applied in a direction relative to a magnetic sample, an the torque produced measured.
This technique can be used to obtain information on the characteristics of the magnetism in the sample like anisotropy.
Sir i have gone through this page of ubermag and want find physics behind Tourque and Anisotropy. i also see the refrence which is given in the bootom of this page but can not understand properly. https://ubermag.github.io/documentation/notebooks/mag2exp/Torque_magnetometry.html

import discretisedfield as df
import matplotlib.pyplot as plt
import micromagneticmodel as mm
import numpy as np
import oommfc as oc
import ubermagutil.units as uu

np.random.seed(1)

region = df.Region(p1=(-150e-9, -150e-9, 0), p2=(150e-9, 150e-9, 100e-9))
mesh = df.Mesh(region=region, cell=(5e-9, 5e-9, 5e-9))

Ms = 9.65e5
H_mag = 2.38e6

system = mm.System(name="Box2")

system.energy = (
    mm.Exchange(A=8.78e-13)
    + mm.UniaxialAnisotropy(K=1.18e6, u=(0, 0, 1))
    + mm.Demag()
    + mm.Zeeman(H=(0, 0, 0))
)

# create system with above geometry and initial magnetisation
system.m = df.Field(mesh, nvdim=3, value=(0, 0, 1), norm=Ms)
system.m.z.sel("z").mpl.scalar()
# minimize the energy
md = oc.MinDriver()
md.drive(system)

# Plot relaxed configuration: vectors in z-plane
system.m.sel("z").mpl()
import mag2exp

mag2exp.magnetometry.torque(system.m, system.energy.zeeman.H)
angles = np.linspace(0, 2 * np.pi, 71)

torque_val_x = np.full_like(angles, np.nan)
torque_val_y = np.full_like(angles, np.nan)
torque_val_z = np.full_like(angles, np.nan)
for i, angle in enumerate(angles):
    system.energy.zeeman.H = (0, H_mag * np.sin(angle), H_mag * np.cos(angle))
    md.drive(system, verbose=0)
    torque_val_x[i], torque_val_y[i], torque_val_z[i] = mag2exp.magnetometry.torque(
        system.m, system.energy.zeeman.H
    )
fig, ax = plt.subplots(dpi=100)
ax.hlines(
    system.energy.uniaxialanisotropy.K,
    xmin=np.min(angles),
    xmax=np.max(angles),
    color="r",
)
ax.hlines(
    -system.energy.uniaxialanisotropy.K,
    xmin=np.min(angles),
    xmax=np.max(angles),
    color="r",
)
ax.scatter(angles, torque_val_x)
ax.set_xlabel("Angle (rad.)")
ax.set_ylabel(r"Torque (Nm$^{-2}$)")
ax.set_xlim([0, 2 * np.pi])
plt.show()

i only understand that tourque is changing with angle rotation of Happlied but anisotropy is contant through out the angle becouse in the programm constant value of anisotropy is K=1.18e6, u=(0, 0, 1) in z direction fixed.
so how this will help us to reveal magnetic characterstics like anisotropy.

Sir, it may be seem like stupid question for you but i can not understand please help me out.
I will be very great full to you all.
thank you.

@samjrholt samjrholt self-assigned this May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants