JMAG-Designerでは、時間軸と空間軸で定義された物理量データを対象として2次元フーリエ変換を行い、時間周波数および空間周波数を同時に分析できます。
このスクリプトでは、各時刻における空間周期性のあるエッジ毎の磁束密度の結果の計算に対し、2次元フーリエ変換を実行します。
前提条件
- 解析済みの磁界過渡応答解析スタディが1つ以上あること
このスクリプト例では、プロジェクトツリー上でアクティブなスタディに対して実行している - 2次元フーリエ変換の元データとなる結果の計算が定義済みであること。
このスクリプト例では、タイトルが"Edge"で、回転周期性のあるエッジ毎の磁束密度の結果の計算で作成されたデータセットに対して実行している - 2次元フーリエ変換はJMAG-Designer v25.0以降で使用可能
スクリプトにおける設定内容
- タイトルが"Edge"のエッジ計算のケース1の計算結果データセットを取得。
- 取得したデータセットに対して必要なパラメータ設定を行い、2次元フーリエ変換を実行
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
app = designer.GetApplication()
def getCalculationDataSetWithSpecifiedStudyCase(calculationTitle, study, caseNo):
"""データセット名、スタディ、ケース番号を指定してデータセットを取得する"""
calcDef = study.GetCalculationDefinition(calculationTitle)
dataSet = calcDef.GetCaseDataSet(caseNo)
return dataSet
def fourierTransform2DTimeSpace(dm, dataSet, graphName, unitType, rangeType):
"""時間軸と空間軸で定義された物理量データに対して、2次元フーリエ変換を行う"""
parameter = app.Create2DFourierTransformParameter(graphName)
parameter.SetDataSet(dataSet)
parameter.SetType(unitType)
parameter.SetDBRefValueType(u"Specify")
parameter.SetDBRefValue(u"2e-05")
parameter.SetDBMultiplier(20)
parameter.SetAxisType(rangeType)
parameter.SetMin(u"0.0001")
parameter.SetMax(u"0.0003")
parameter.SetTimePeriodicity(0) # 0:なし, 1:1/2
parameter.SetFrequencyMultiplier(u"1")
parameter.SetUseTimeOrderLimit(True)
parameter.SetTimeOrderLimit(u"2")
parameter.SetFrequencyDomainAxisType(u"Order")
parameter.SetSpacePeriodicity(0) # 0:なし, 1:1/2
parameter.SetSpaceOrderMultiplier(u"1")
parameter.SetUseSpaceOrderLimit(True)
parameter.SetSpaceOrderLimit(u"3")
parameter.SetAlgorithmType(u"DFT")
dm.Create2DFourierTransformWithParameter(parameter)
# ------------------------------
graphName = u"Surface_2D_Fourier_Transform"
unitType = u"Decibel"
rangeType = u"Time"
definitionTitle = u"Edge"
caseNo = 1
# ------------------------------
study = app.GetCurrentStudy()
dataSet = getCalculationDataSetWithSpecifiedStudyCase(definitionTitle, study, caseNo)
dm = app.GetDataManager()
fourierTransform2DTimeSpace(dm, dataSet, graphName, unitType, rangeType)


