oommf施加非正弦交变磁场(例如方波、梯形波和三角波)问题

OOMMF施加非正弦交变磁场(例如方波、梯形波和三角波)
1.我尝试了下施加方波,但是必须要很大的频率(2GHz以上)才能出现方波,如果频率为1GHZ,则磁场只能出现一小段就停止了,这是什么问题呢?应该怎么解决呢?
2.怎么施加梯形波和三角波的磁场呢?

#定义方波磁场参数
Parameter amp 557042 ;#700mT    applied field, in A/m
Parameter freq 2e9 ;# Frequency , in Hz

# 定义方波磁场函数
proc SquareWave {time} {
    global amp freq
    set t_scaled [expr {$time * $freq}]
    set t_int [expr {int($t_scaled)}]
    set t_mod [expr {$t_scaled - $t_int}]
    set t_mod_scaled [expr {$t_mod * (1.0 / $freq)}]
    
    set Hx 0.0
    if {$t_mod_scaled < 0.5/$freq} {
        set Hx [expr $amp ]
    } else {
        set Hx [expr -$amp ]
    }
    
    return [list $Hx 0.0 0.0 0.0 0.0 0.0]
}

# 施加方波磁场
Specify Oxs_ScriptUZeeman [subst {
    comment {"将默认单位A/m换算为mT"}
   multiplier 1
    script_args total_time
    script SquareWave
}]

img

下面是1GHz的图

img