Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def magnetoelastic_script(term, system):
B1mif, B1name = oc.scripts.setup_scalar_parameter(term.B1, 'mel_B1')
B2mif, B2name = oc.scripts.setup_scalar_parameter(term.B2, 'mel_B2')
ediagmif, ediagname = oc.scripts.setup_vector_parameter(
term.e_diag, 'mel_ediag')
eoffdiagmif, eoffdiagname = oc.scripts.setup_vector_parameter(
term.e_offdiag, 'mel_eoffdiag')
mif = ''
mif += B1mif
mif += B2mif
mif += ediagmif
mif += eoffdiagmif
mif += '# MagnetoElastic\n'
mif += f'Specify YY_FixedMEL:{term.name} {{\n'
mif += f' B1 {B1name}\n'
mif += f' B2 {B2name}\n'
mif += f' e_diag_field {ediagname}\n'
mif += f' e_offdiag_field {eoffdiagname}\n'
mif += '}\n\n'
return mif
def cubicanisotropy_script(term, system):
kmif, kname = oc.scripts.setup_scalar_parameter(term.K, 'ca_K')
u1mif, u1name = oc.scripts.setup_vector_parameter(term.u1, 'ca_u1')
u2mif, u2name = oc.scripts.setup_vector_parameter(term.u2, 'ca_u2')
mif = ''
mif += kmif
mif += u1mif
mif += u2mif
mif += '# CubicAnisotropy\n'
mif += f'Specify Oxs_CubicAnisotropy:{term.name} {{\n'
mif += f' K1 {kname}\n'
mif += f' axis1 {u1name}\n'
mif += f' axis2 {u2name}\n'
mif += '}\n\n'
return mif
def magnetoelastic_script(term, system):
B1mif, B1name = oc.scripts.setup_scalar_parameter(term.B1, 'mel_B1')
B2mif, B2name = oc.scripts.setup_scalar_parameter(term.B2, 'mel_B2')
ediagmif, ediagname = oc.scripts.setup_vector_parameter(
term.e_diag, 'mel_ediag')
eoffdiagmif, eoffdiagname = oc.scripts.setup_vector_parameter(
term.e_offdiag, 'mel_eoffdiag')
mif = ''
mif += B1mif
mif += B2mif
mif += ediagmif
mif += eoffdiagmif
mif += '# MagnetoElastic\n'
mif += f'Specify YY_FixedMEL:{term.name} {{\n'
mif += f' B1 {B1name}\n'
mif += f' B2 {B2name}\n'
mif += f' e_diag_field {ediagname}\n'
mif += f' e_offdiag_field {eoffdiagname}\n'
mif += '}\n\n'
def zeeman_script(term, system):
Hmif, Hname = oc.scripts.setup_vector_parameter(term.H, 'zeeman_H')
mif = ''
mif += Hmif
if isinstance(term.wave, str):
if term.wave == 'sin':
mif += 'proc TimeFunction { total_time } {\n'
mif += ' set PI [expr {4*atan(1.)}]\n'
mif += f' set w [expr {{ {term.f}*2*$PI }}]\n'
mif += f' set tt [expr {{ $total_time - {term.t0} }}]\n'
mif += f' set wt [expr {{ $w*$tt }}]\n'
mif += ' set f [expr {sin($wt)}]\n'
mif += ' set df [expr {$w*cos($wt)}]\n'
mif += f' set Hx [expr {{ {term.H[0]}*$f }}]\n'
mif += f' set Hy [expr {{ {term.H[1]}*$f }}]\n'
mif += f' set Hz [expr {{ {term.H[2]}*$f }}]\n'
def uniaxialanisotropy_script(term, system):
umif, uname = oc.scripts.setup_vector_parameter(term.u, 'ua_u')
# Determine if higher-order anisotropy is defined
if isinstance(term.K2, (numbers.Real, dict, df.Field)):
k1mif, k1name = oc.scripts.setup_scalar_parameter(term.K1, 'ua_K1')
k2mif, k2name = oc.scripts.setup_scalar_parameter(term.K2, 'ua_K2')
mif = ''
mif += k1mif
mif += k2mif
mif += umif
mif += '# UniaxialAnisotropy\n'
mif += f'Specify Southampton_UniaxialAnisotropy4:{term.name} {{\n'
mif += f' K1 {k1name}\n'
mif += f' K2 {k2name}\n'
mif += f' axis {uname}\n'
mif += '}\n\n'
def cubicanisotropy_script(term, system):
kmif, kname = oc.scripts.setup_scalar_parameter(term.K, 'ca_K')
u1mif, u1name = oc.scripts.setup_vector_parameter(term.u1, 'ca_u1')
u2mif, u2name = oc.scripts.setup_vector_parameter(term.u2, 'ca_u2')
mif = ''
mif += kmif
mif += u1mif
mif += u2mif
mif += '# CubicAnisotropy\n'
mif += f'Specify Oxs_CubicAnisotropy:{term.name} {{\n'
mif += f' K1 {kname}\n'
mif += f' axis1 {u1name}\n'
mif += f' axis2 {u2name}\n'
mif += '}\n\n'
return mif
evolver.alpha, 'dp_alpha')
evolver.alpha = alphaname
mif += alphamif
if hasattr(evolver, 'u'):
umif, uname = oc.scripts.setup_scalar_parameter(evolver.u, 'zl_u')
evolver.u = uname
mif += umif
# zhangli.beta cannot spatially vary - it has to be a constant.
if hasattr(evolver, 'J'):
Jmif, Jname = oc.scripts.setup_scalar_parameter(evolver.J, 'sl_J')
evolver.J = Jname
mif += Jmif
if hasattr(evolver, 'mp'):
mpmif, mpname = oc.scripts.setup_vector_parameter(evolver.mp, 'sl_mp')
evolver.mp = mpname
mif += mpmif
if hasattr(evolver, 'P'):
Pmif, Pname = oc.scripts.setup_scalar_parameter(evolver.P, 'sl_P')
evolver.P = Pname
mif += Pmif
if hasattr(evolver, 'Lambda'):
Lambdamif, Lambdaname = oc.scripts.setup_scalar_parameter(
evolver.Lambda, 'sl_Lambda')
evolver.Lambda = Lambdaname
mif += Lambdamif
if hasattr(evolver, 'eps_prime'):
eps_primemif, eps_primename = oc.scripts.setup_scalar_parameter(
evolver.eps_prime, 'sl_eps_prime')
evolver.eps_prime = eps_primename
mif += eps_primemif