Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NDSolve Singularity in solving LLG equation

71 views
Skip to first unread message

Jiwan Kim

unread,
May 1, 2012, 5:22:21 AM5/1/12
to
Hello, Mathgroup.

I am trying to solve the famous Landau-Lifshitz-Gilbert equation, which
explains the dynamic motion of the magnetization in ferromagnetics.
(dM/dt = -(gamma*mu0)MxHeff + alpha/M (MxdM/dt). (x : vector product)
The reducing magnitude of magnetization at time=0 triggers the precession
motion. Using this equation I want to get the theta[t] and phi[t] in
spherical coordinate system.

But, now I have a problem that the error message "NDSolve::ndsz: At t ==
-2.1091991871443846`*^-13, step size is effectively zero; singularity or
stiff system suspected".
I don't think that the equation includes the diverging point. And this
error message always appears when the value of 'SpinTempData' starts to
increase from 300.
I suspect that D[Mr[t], t] is not working well in this code. I don't know
the reason.
Could you help me? Plz.....
In this code, I used (r, theta, phi) parameter instead of (x,y,z), but
Cartesian basis vector was used when the vector product was conducted (in
eq2 expression in the code,
I used 'x' instead of CrossProduct to get a vectorproduct in Cartesian
coordinate)
I attached the following code (SpinTempData is included) :

---------------------------------------------------------------------------------------------------------------------------
Remove["Global`*"];
Needs["VectorAnalysis`"]
SetCoordinates[Spherical];
\[Mu]0 = 4 \[Pi] 10^-7;(* [H/m] *) Ms =
0.66/\[Mu]0;(* 525 emu/cc=0.66 *) Hext =
0.45/\[Mu]0; (* Ms, Hext [A/m] *)
\[Alpha]f = 0.05; \[Gamma] = 1.76 10^11; K0 = -0.5 10^4; \[Psi] =
35 \[Pi]/180.0; ps = 10^-12; \[Beta] = 1.34 10^-5;
\[Nu] = 0.3; B =
1.8 10^11; \[Lambda]s = -3.4 10^-5; Tc = 631; Tp = 98; Rac = -0.39; \
\[Sigma]s1 = 1;
\[Xi]1 = 13.5; \[Xi]2 = 14.5; Nx = 1/3; Ny = 1/3; Nz =
1/3; \[Rho] = 8910; v = 4082;

SpinTempData = {{-5.`, 300}, {-4.95`, 300}, {-4.9`, 300}, {-4.85`,
300}, {-4.8`, 300}, {-4.75`, 300}, {-4.7`, 300}, {-4.65`,
300}, {-4.6`, 300}, {-4.55`, 300}, {-4.5`, 300}, {-4.45`,
300}, {-4.4`, 300}, {-4.35`, 300}, {-4.3`, 300}, {-4.25`,
300}, {-4.2`, 300}, {-4.15`, 300}, {-4.1`, 300}, {-4.05`,
300}, {-4.`, 300}, {-3.95`, 300}, {-3.9`, 300}, {-3.85`,
300}, {-3.8`, 300}, {-3.75`, 300}, {-3.7`, 300}, {-3.65`,
300}, {-3.6`, 300}, {-3.55`, 300}, {-3.5`, 300}, {-3.45`,
300}, {-3.4`, 300}, {-3.35`, 300}, {-3.3`, 300}, {-3.25`,
300}, {-3.2`, 300}, {-3.15`, 300}, {-3.1`, 300}, {-3.05`,
300}, {-3.`, 300}, {-2.95`, 300}, {-2.9`, 300}, {-2.85`,
300}, {-2.8`, 300}, {-2.75`, 300}, {-2.7`, 300}, {-2.65`,
300}, {-2.6`, 300}, {-2.55`, 300}, {-2.5`, 300}, {-2.45`,
300}, {-2.4`, 300}, {-2.35`, 300}, {-2.3`, 300}, {-2.25`,
300}, {-2.2`, 300}, {-2.15`, 300}, {-2.1`, 300}, {-2.05`,
300}, {-2.`, 300}, {-1.95`, 300}, {-1.9`, 300}, {-1.85`,
300}, {-1.8`, 300}, {-1.75`, 300}, {-1.7`, 300}, {-1.65`,
300}, {-1.6`, 300}, {-1.55`, 300}, {-1.5`, 300}, {-1.45`,
300}, {-1.4`, 300}, {-1.35`, 300}, {-1.3`, 300}, {-1.25`,
300}, {-1.2`, 300}, {-1.15`, 300}, {-1.1`, 300}, {-1.05`,
300}, {-1.`, 300}, {-0.95`, 300}, {-0.9`, 300}, {-0.85`,
300}, {-0.8`, 300}, {-0.75`, 300}, {-0.7`, 300}, {-0.65`,
300}, {-0.6`, 300}, {-0.55`, 300}, {-0.5`, 300}, {-0.45`,
300}, {-0.4`, 300}, {-0.35`, 300.00029`}, {-0.3`,
300.00057`}, {-0.25`, 300.00588`}, {-0.2`, 300.05339`}, {-0.15`,
300.48233`}, {-0.1`, 303.32062`}, {-0.05`,
314.09299`}, {-9.39526`*^-15, 337.36538`}, {0.05`,
369.43267`}, {0.1`, 402.14368`}, {0.15`, 430.44968`}, {0.2`,
453.56358`}, {0.25`, 472.37784`}, {0.3`, 487.89433`}, {0.35`,
500.84204`}, {0.4`, 511.7486`}, {0.45`, 521.00431`}, {0.5`,
528.89807`}, {0.55`, 535.64818`}, {0.6`, 541.43276`}, {0.65`,
546.38944`}, {0.7`, 550.63141`}, {0.75`, 554.25236`}, {0.8`,
557.32945`}, {0.85`, 559.92689`}, {0.9`, 562.10125`}, {0.95`,
563.89989`}, {1.`, 565.36016`}, {1.05`, 566.51965`}, {1.1`,
567.4031`}, {1.15`, 568.04153`}, {1.2`, 568.45306`}, {1.25`,
568.66236`}, {1.3`, 568.68462`}, {1.35`, 568.53867`}, {1.4`,
568.23797`}, {1.45`, 567.79709`}, {1.5`, 567.22686`}, {1.55`,
566.53977`}, {1.6`, 565.74438`}, {1.65`, 564.85152`}, {1.7`,
563.86864`}, {1.75`, 562.80459`}, {1.8`, 561.66652`}, {1.85`,
560.46151`}, {1.9`, 559.19632`}, {1.95`, 557.87689`}, {2.`,
556.50931`}, {2.05`, 555.09879`}, {2.1`, 553.6507`}, {2.15`,
552.16966`}, {2.2`, 550.66042`}, {2.25`, 549.1271`}, {2.3`,
547.57386`}, {2.35`, 546.0044`}, {2.4`, 544.42235`}, {2.45`,
542.83101`}, {2.5`, 541.23351`}, {2.55`, 539.6328`}, {2.6`,
538.03158`}, {2.65`, 536.43244`}, {2.7`, 534.83766`}, {2.75`,
533.24951`}, {2.8`, 531.66993`}, {2.85`, 530.10083`}, {2.9`,
528.54384`}, {2.95`, 527.00058`}, {3.`, 525.47245`}, {3.05`,
523.96065`}, {3.1`, 522.4663`}, {3.15`, 520.99046`}, {3.2`,
519.53391`}, {3.25`, 518.09775`}, {3.3`, 516.68226`}, {3.35`,
515.28843`}, {3.4`, 513.91649`}, {3.45`, 512.56702`}, {3.5`,
511.24031`}, {3.55`, 509.93651`}, {3.6`, 508.65601`}, {3.65`,
507.39864`}, {3.7`, 506.16475`}, {3.75`, 504.95404`}, {3.8`,
503.76671`}, {3.85`, 502.60244`}, {3.9`, 501.46125`}, {3.95`,
500.34284`}, {4.`, 499.24705`}, {4.05`, 498.17363`}, {4.1`,
497.12225`}, {4.15`, 496.09268`}, {4.2`, 495.08452`}, {4.25`,
494.09751`}, {4.3`, 493.13119`}, {4.35`, 492.18529`}, {4.4`,
491.25934`}, {4.45`, 490.353`}, {4.5`, 489.46584`}, {4.55`,
488.59747`}, {4.6`, 487.74747`}, {4.65`, 486.91542`}, {4.7`,
486.10092`}, {4.75`, 485.30354`}, {4.8`, 484.52288`}, {4.85`,
483.75851`}, {4.9`, 483.01004`}, {4.95`, 482.27705`}, {5.`,
481.55915`}, {5.5`, 475.12589`}, {6.`, 469.80928`}, {6.5`,
465.32763`}, {7.`, 461.47028`}, {7.5`, 458.08379`}, {8.`,
455.05749`}, {8.5`, 452.31161`}, {9.`, 449.78841`}, {9.5`,
447.44569`}, {10.`, 445.25233`}, {10.5`, 443.18502`}, {11.`,
441.22612`}, {11.5`, 439.36201`}, {12.`, 437.58201`}, {12.5`,
435.87759`}, {13.`, 434.24183`}, {13.5`, 432.669`}, {14.`,
431.15426`}, {14.5`, 429.69348`}, {15.`, 428.28306`}, {15.5`,
426.91983`}, {16.`, 425.60098`}, {16.5`, 424.32397`}, {17.`,
423.08651`}, {17.5`, 421.8865`}, {18.`, 420.72202`}, {18.5`,
419.5913`}, {19.`, 418.49269`}, {19.5`, 417.42466`}, {20.`,
416.38581`}, {20.5`, 415.37479`}, {21.`, 414.39037`}, {21.5`,
413.43139`}, {22.`, 412.49675`}, {22.5`, 411.58543`}, {23.`,
410.69646`}, {23.5`, 409.82893`}, {24.`, 408.98198`}, {24.5`,
408.1548`}, {25.`, 407.34662`}, {25.5`, 406.55672`}, {26.`,
405.78441`}, {26.5`, 405.02904`}, {27.`, 404.28998`}, {27.5`,
403.56666`}, {28.`, 402.85852`}, {28.5`, 402.16502`}, {29.`,
401.48566`}, {29.5`, 400.81996`}, {30.`, 400.16746`}}
datanum = Count[SpinTempData[[All, 1]], _Real];
Curie[temp_] :=
Ms ((1 - Exp[(temp - Tc)/Tc])/(1 - Exp[(300 - Tc)/Tc]))^0.51;
SpinData =
Table[{ps SpinTempData[[i, 1]], Curie[SpinTempData[[i, 2]]]}, {i, 1,
datanum}];
SpinDataitp = Interpolation[SpinData];
Plot[SpinDataitp[t], {t, -5 ps, 30 ps}, PlotRange -> All]

Mr[t_] := If[t > -5 ps, SpinDataitp[t], Ms];
Plot[Mr[t], {t, -5 ps, 30 ps}, PlotRange -> All]
Module[{t, \[Theta]2, \[Phi]2},
Energy[t_, \[Theta]2_, \[Phi]2_] := (1/2 \[Mu]0 Nz Mr[
t]^2) Cos[\[Theta]2]^2 +
1/2 \[Mu]0 Mr[
t]^2 Sin[\[Theta]2]^2 (Ny Sin[\[Phi]2]^2 +
Nx Cos[\[Phi]2]^2) - \[Mu]0 Hext Mr[
t] (Sin[\[Theta]2] Sin[\[Phi]2] Sin[\[Psi]] +
Cos[\[Theta]2] Cos[\[Psi]]);
\[Theta]0 =
FindArgMin[
Energy[-5 ps, \[Theta]2, \[Pi]/2], {\[Theta]2, \[Pi]/4}];];
\[Theta]0 = \[Theta]0[[1]]
M = {Mr[t] Sin[\[Theta][t]] Cos[\[Phi][t]],
Mr[t] Sin[\[Theta][t]] Sin[\[Phi][t]], Mr[t] Cos[\[Theta][t]]};
Heff1 = {(-Mr[t] (Nz Cos[\[Theta][t]]^2 +
Ny Sin[\[Theta][t]]^2 Sin[\[Phi][t]]^2 +
Nx Sin[\[Theta][t]]^2 Cos[\[Phi][t]]^2) +
Hext (Sin[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] +
Cos[\[Theta][t]] Cos[\[Psi]])) Sin[\[Theta][t]] Cos[\[Phi][
t]] + ((Nz Mr[
t] - (2 K0 + 3 \[Lambda]s \[Sigma]s1)/(\[Mu]0 Mr[t]) -
Mr[t] Ny Sin[\[Phi][t]]^2 -
Mr[t] Nx Cos[\[Phi][t]]^2) Sin[\[Theta][t]] Cos[\[Theta][
t]] + Hext (Cos[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] -
Sin[\[Theta][t]] Cos[\[Psi]])) Cos[\[Theta][t]] Cos[\[Phi][
t]] - (Mr[
t] (Nx - Ny) Sin[\[Theta][t]] Sin[\[Phi][t]] Cos[\[Phi][t]] +
Hext Cos[\[Phi][t]] Sin[\[Psi]]) Sin[\[Phi][
t]], (-Mr[t] (Nz Cos[\[Theta][t]]^2 +
Ny Sin[\[Theta][t]]^2 Sin[\[Phi][t]]^2 +
Nx Sin[\[Theta][t]]^2 Cos[\[Phi][t]]^2) +
Hext (Sin[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] +
Cos[\[Theta][t]] Cos[\[Psi]])) Sin[\[Theta][t]] Sin[\[Phi][
t]] + ((Nz Mr[
t] - (2 K0 + 3 \[Lambda]s \[Sigma]s1)/(\[Mu]0 Mr[t]) -
Mr[t] Ny Sin[\[Phi][t]]^2 -
Mr[t] Nx Cos[\[Phi][t]]^2) Sin[\[Theta][t]] Cos[\[Theta][
t]] + Hext (Cos[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] -
Sin[\[Theta][t]] Cos[\[Psi]])) Cos[\[Theta][t]] Sin[\[Phi][
t]] + (Mr[
t] (Nx - Ny) Sin[\[Theta][t]] Sin[\[Phi][t]] Cos[\[Phi][t]] +
Hext Cos[\[Phi][t]] Sin[\[Psi]]) Cos[\[Phi][t]],
(-Mr[t] (Nz Cos[\[Theta][t]]^2 +
Ny Sin[\[Theta][t]]^2 Sin[\[Phi][t]]^2 +
Nx Sin[\[Theta][t]]^2 Cos[\[Phi][t]]^2) +
Hext (Sin[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] +
Cos[\[Theta][t]] Cos[\[Psi]])) Cos[\[Theta][
t]] - ((Nz Mr[
t] - (2 K0 + 3 \[Lambda]s \[Sigma]s1)/(\[Mu]0 Mr[t]) -
Mr[t] Ny Sin[\[Phi][t]]^2 -
Mr[t] Nx Cos[\[Phi][t]]^2) Sin[\[Theta][t]] Cos[\[Theta][
t]] + Hext (Cos[\[Theta][t]] Sin[\[Phi][t]] Sin[\[Psi]] -
Sin[\[Theta][t]] Cos[\[Psi]])) Sin[\[Theta][t]]};
eq1 = {D[Mr[t], t] Sin[\[Theta][t]] Cos[\[Phi][t]] +
D[\[Theta][t], t] Mr[t] Cos[\[Theta][t]] Cos[\[Phi][t]] -
D[\[Phi][t], t] Mr[t] Sin[\[Theta][t]] Sin[\[Phi][t]],
D[Mr[t], t] Sin[\[Theta][t]] Sin[\[Phi][t]] +
D[\[Theta][t], t] Mr[t] Cos[\[Theta][t]] Sin[\[Phi][t]] +
D[\[Phi][t], t] Mr[t] Sin[\[Theta][t]] Cos[\[Phi][t]],
D[Mr[t], t] Cos[\[Theta][t]] -
D[\[Theta][t], t] Mr[t] Sin[\[Theta][t]]};
eq2 = -\[Gamma] \[Mu]0 M\[Cross]Heff1 + \[Alpha]f/Mr[t] M\[Cross]eq1;
eq3 = \[Theta][-5 ps] == \[Theta]0;
eq4 = \[Phi][-5 ps] == \[Pi]/2;
eq5 = eq1[[2]] == eq2[[2]];
eq6 = eq1[[3]] == eq2[[3]];
solution1 =
NDSolve[{eq5, eq6, eq3, eq4}, {\[Theta][t], \[Phi][t]}, {t, -5 ps,
30 ps}, MaxSteps -> Infinity, MaxStepSize -> {0.05 ps}]


0 new messages