You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Separated the previous pull request. RunWhile support is in #84
Waiting for a reply from colleagues. But by quick Googling, there are a few common scenarios that I think can be implemented directly:
MaxTorque < some value
mx or mz (probably also my) > some value. Here it is usually passed to mumax3 as m.comp(0) for mx or m.comp(3) for mz and applying average(). RunWhile(m.Comp(3).average() > -0.94)
These two cases are also often combined with a maximum time limit: RunWhile(m.Comp(3).average() > -0.94 && t < 5e-9)
I think we should have a parameter for the time limit, comparison (like > or <) and number. The question is should we have separate parameters for each magnetization component or just pass the name.
td.drive(system, t=5e-9, cmp=">", mz=-0.94) or td.drive(system, t=5e-9, cmp=">", p_value=-0.94, p_name="mz")
For other cases, we can just leave td.drive(system, condition="MaxTorque > 0.005") and pass it directly to mumax3.
As you can see, mumax3 here can work with logic operators. If we want to think about time limits, then probably it's not the best idea to implement it as a separate driver. Probably the best idea that requires minimal maintenance is to add a condition parameter for TimeDriver. And just dynamically separate the cases in the script. Not sure how many conditions RunWhile supports, though.
@SeregaKR suggested adding support for
RunWhile
inmumax3c
in #81. We have a few questions on this topic.mumax3
support inRunWhile
?micrimagneticmodel
?TimeDriver
rather than a separate driver?mumax3
combine multiple conditions with logic operators?We do in general like the following suggestion:
The text was updated successfully, but these errors were encountered: