Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def driver_script(driver, system, compute=None, **kwargs):
mif = ''
if isinstance(driver, oc.MinDriver):
# Check evolver and set default if not passed.
if not hasattr(driver, 'evolver'):
driver.evolver = oc.CGEvolver()
elif not isinstance(driver.evolver, oc.CGEvolver):
msg = f'Cannot use {type(driver.evolver)} for evolver.'
raise TypeError(msg)
# Define default stopping_mxHxm if not passed. OOMMF cannot run without
# this value.
if not hasattr(driver, 'stopping_mxHxm'):
driver.stopping_mxHxm = 0.1
mif += oc.scripts.evolver_script(driver.evolver)
# Minimisation driver script.
mif += '# MinDriver\n'
mif += 'Specify Oxs_MinDriver {\n'
mif += ' evolver :evolver\n'
mif += ' mesh :mesh\n'
def driver_script(driver, system, compute=None, **kwargs):
mif = ''
if isinstance(driver, oc.MinDriver):
# Check evolver and set default if not passed.
if not hasattr(driver, 'evolver'):
driver.evolver = oc.CGEvolver()
elif not isinstance(driver.evolver, oc.CGEvolver):
msg = f'Cannot use {type(driver.evolver)} for evolver.'
raise TypeError(msg)
# Define default stopping_mxHxm if not passed. OOMMF cannot run without
# this value.
if not hasattr(driver, 'stopping_mxHxm'):
driver.stopping_mxHxm = 0.1
mif += oc.scripts.evolver_script(driver.evolver)
# Minimisation driver script.
mif += '# MinDriver\n'
mif += 'Specify Oxs_MinDriver {\n'
mif += ' evolver :evolver\n'
mif += ' mesh :mesh\n'
mif += ' Ms :m0_norm\n'
mif += eps_primemif
# Scripts for a specific evolver.
if isinstance(evolver, oc.EulerEvolver):
mif += '# EulerEvolver\n'
mif += 'Specify Oxs_EulerEvolve:evolver {\n'
elif isinstance(evolver, oc.RungeKuttaEvolver):
mif += '# RungeKuttaEvolver\n'
mif += 'Specify Oxs_RungeKuttaEvolve:evolver {\n'
elif isinstance(evolver, oc.SpinTEvolver):
mif += '# Zhang-Li evolver\n'
mif += 'Specify Anv_SpinTEvolve:evolver {\n'
elif isinstance(evolver, oc.SpinXferEvolver):
mif += '# Slonczewski evolver\n'
mif += 'Specify Oxs_SpinXferEvolve:evolver {\n'
elif isinstance(evolver, oc.CGEvolver):
mif += '# CGEvolver\n'
mif += 'Specify Oxs_CGEvolve:evolver {\n'
# Define all other parameters.
for attr, value in evolver:
mif += f' {attr} {value}\n'
mif += '}\n\n'
return mif