JMAG-Designerでは任意に特性を定義したカスタム材料として超電導材料特性を定義し、解析で扱うことができます。
超電導材料には電気特性として臨界電流密度特性などを定義します。
このスクリプトでは、超電導体のI-Vモデルとしてカスタム材料を作成し、臨界電流密度とn値を点列テーブルとして設定します。
前提条件
- 設定値の単位は、[ツール]-[設定]にて設定されている単位系に従う
- 超電導の材料特性はJMAG-Designer v24.2 以降, 磁束密度·温度·角度依存の特性はJMAG-Designer v25.0以降で指定可能
スクリプトにおける設定内容
- カスタム材料を作成し、電気特性タイプを超電導体、超電導モデルをI-Vモデルに設定
- 臨界電流密度タイプを磁束密度·温度·角度依存性とし、角度および温度毎の磁束密度に対する臨界電流密度の点列テーブルを作成し設定
- n値タイプを磁束密度·温度·角度依存性とし、角度および温度毎の磁束密度に対するn値の点列テーブルを作成し設定
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def createCustomMaterialWithElectric(materialLibrary, materialName):
"""カスタム材料を新規に作成し、電気特性で超伝導体を定義する"""
materialLibrary.CreateCustomMaterial(materialName)
material = materialLibrary.GetUserMaterial(materialName)
# [電気特性タイプ]: [超伝導体]
material.SetValue(u"ConductivityType", u"Superconductor")
# [超電導モデル]: [I-Vモデル]
material.SetValue(u"SuperconductorModelType", u"IV")
material.SetValue(u"CriticalCurrentDensityType", "MagneticFluxDensityAndTemperatureAngleDependency")
material.SetTableListName(u"CriticalCurrentDensityAnglePointArray", u"PointArrayOfCriticalCurrentDensity")
refarray = [
[0, 8.4e+09], # 磁束密度0, 臨界電流密度8.4e+09
[1, 9e+8]
]
material.SetTableListWithDualKey(u"CriticalCurrentDensityAnglePointArray", 0, u"deg", -196, u"deg C", refarray)
refarray = [[0, 1.008e+10], [1.2, 1e+9]]
material.SetTableListWithDualKey(u"CriticalCurrentDensityAnglePointArray", 0, u"deg", -186, u"deg C", refarray)
refarray = [[0, 8.4e+9], [1, 2e+9]]
material.SetTableListWithDualKey(u"CriticalCurrentDensityAnglePointArray", 90, u"deg", -196, u"deg C", refarray)
refarray = [[0, 1.008e+10], [1.2, 2e+9]]
material.SetTableListWithDualKey(u"CriticalCurrentDensityAnglePointArray", 90, u"deg", -186, u"deg C", refarray)
material.SetValue(u"nValueType", "MagneticFluxDensityAndTemperatureAngleDependency")
material.SetTableListName(u"nValueAnglePointArray", u"PointArrayOfnValue")
refarray = [
[0, 30], # 磁束密度0, n値30
[1, 10]
]
material.SetTableListWithDualKey(u"nValueAnglePointArray", 0, u"deg", -196, u"deg C", refarray)
refarray = [[0, 35], [1.2, 15]]
material.SetTableListWithDualKey(u"nValueAnglePointArray", 0, u"deg", -186, u"deg C", refarray)
refarray = [[0, 30], [1, 15]]
material.SetTableListWithDualKey(u"nValueAnglePointArray", 90, u"deg", -196, u"deg C", refarray)
app = designer.GetApplication()
materialName = u"MySuperConductor"
materialLibrary = app.GetMaterialLibrary()
createCustomMaterialWithElectric(materialLibrary, materialName)


