[S0031] 時間・空間の2次元フーリエ変換を実行する

 

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)

Download Python source code

ファイルご利用の注意点

JMAGスクリプトライブラリをご利用されるに際し、以下をよくお読みいただき、ご同意の上ご利用くださるようお願い申し上げます。

絞込み検索

  • カテゴリー 一覧

JMAG-Express Online
An engineer's diary