.. _8_Calculation_Step:

#################################################
**8. 計算ステップ（時間領域解析時，静解析も含む）**
#################################################

:doc:`/handbook/inputControl/2_Analysis_Type` で ``STATIC`` >0 or ``TRANSIENT`` >0 いずれかの時の設定をします。

---------------------
設定項目
---------------------
:paramdef:`8_Calculation_Step`    JSONキー：計算ステップオブジェクト

:paramdef:`NO_STEPS(8)`    計算ステップ数

:paramdef:`INITIAL_TIME(8)`    第0ステップ（初期条件）の時刻（sec）

:paramdef:`DELTA_TIME(8)`    ステップ時間間隔（sec）

:paramdef:`NO_DATA(8)`    計算ステップ設定データ数。デフォルト値は1。

:paramdef:`CYCLIC(8)`    COIL(17.1)を使用した周期的な磁場を印加する場合に使用するパラメータ。


- **複数ステップ計算設定パラメータ** 

:paramdef:`NO_STEPS_N(8)`    複数ステップ計算設定時の計算ステップ

:paramdef:`DELTA_TIME_N(8)`    複数ステップ計算設定時のステップ時間間隔


- **TP-EEC法設定パラメータ**

:paramdef:`TP_EEC`    JSONキー：TP-EEC法オブジェクト

    :paramdef:`N_CORRECT(8)`    TP-EEC法使用時に補正ステップ数を設定

    :paramdef:`N_BACK(8)`    TP-EEC法で一周期補正使用時に使用

    :paramdef:`TP_EEC_OPTION(8)`    簡易TP-EEC法を使用する場合に使用

    :paramdef:`MAX_NO_CORRECTION(8)`    TP-EEC法で最大補正回数を設定

    :paramdef:`SOURCE_CORRECTION(8)`    TP-EEC法でソース補正を設定

    :paramdef:`FUNDAMENTAL_FREQUENCY(8)`    TP-EEC法で基本周波数を設定

    :paramdef:`NO_POLES_IN_MESH(8)`    TP-EEC法でメッシュ内の極数を設定

    :paramdef:`MAT_IDS_IN_PHASE(8)`    TP-EEC法で位相内の材料IDを設定

- **定常周期性を用いた初期値設定パラメータ**

:paramdef:`TP_STEP(8)`    定常周期性を用いた初期値設定で使用するステップ番号

:paramdef:`TP_STEP_OPTION(8)`    定常周期性を用いた初期値設定オプション

---------------------
設定フォーマット
---------------------
.. collapsible:: 
    :title: テキストフォーマットの折りたたみセクション

        :種類: 準固定パラメータセット  
        :行数: 2  
        :パラメータ数: 10, 2  

        :種類: 追加パラメータセット  
        :行数: 1  
        :パラメータ数: 2  

    .. code-block:: text
        :caption: 時間領域解析設定

        * NO_STEPS * INTIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION * TP_STEP * TP_STEP_OPTION *
            I            E             E            I        I          I         I            I            I           I

    次のパラメータセットを( ``NO_DATA`` -1)行繰り返す。

    .. code-block:: text
        :caption: 追加ステップ設定

        * NO_STEPS_n * DELTA_TIME_n *
            I            E


    **テキストサンプル**

    - ``NO_DATA`` =1のとき

        .. code-block:: text
            :caption: Text format

            * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION * TP_STEP * TP_STEP_OPTION *
                30          0.0           0.1         1       0          0         0            0  

    - ``NO_DATA`` >1のとき

        .. code-block:: text
            :caption: Text format

            * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION * TP_STEP * TP_STEP_OPTION *
                4          0.0           0.1         6       0          0         0            0                     
            * NO_STEPS_N * DELTA_TIME_N *
                2            0.2
                4            0.5
                2            1.0
                1            5.0
                23          10.0

=================
JSONフォーマット
=================
``JSON`` フォーマットでは，配列を使用して追加パラメータセット1を包含する。
[]は配列表現を表す。[[]]は二次元配列（配列の配列）を表す。

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ I ],
        "DELTA_TIME" : [ E ],
        "INITIAL_TIME" : E,
        "CYCLE" : I,
        "TP_EEC" : 
        {
            "N_CORRECT" : I,
            "N_BACK" : I,
            "TP_EEC_OPTION" : I,
            "MAX_NO_CORRECTION" : I,
            "SOURCE_CORRECTION" : I,
            "FUNDAMENTAL_FREQUENCY" : E,
            "NO_POLES_IN_MESH" : I,
            "MAT_IDS_IN_PHASE" : [[ I ]],
            "TP_STEP" : I,
            "TP_STEP_OPTION" : I
        }
    },
    

**JSONサンプル**

- ``NO_DATA`` =1のとき

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 30 ],
        "DELTA_TIME" : [ 0.1 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0
    },

- ``NO_DATA`` >1のとき

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 4, 2, 4, 2, 1, 23 ],
        "DELTA_TIME" : [ 0.1, 0.2, 0.5, 1.0, 5.0, 10.0 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0
    },

- TP-EEC法を使用する場合，

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "TP_EEC" : 
        {
            "N_CORRECT" : -90,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 0,
            "MAX_NO_CORRECTION" : 0
        }
    }


- 簡易TP-EEC法を使用する場合，

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "TP_EEC" : 
        {
            "N_CORRECT" : -90,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 1,
            "MAX_NO_CORRECTION" : 0,
        }
    }

- 多相交流簡易TP-EEC法を使用する場合，

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "TP_EEC" : 
        {
            "N_CORRECT" : -90,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 3,
            "MAX_NO_CORRECTION" : 0,
            "SOURCE_CORRECTION" : 0,
            "FUNDAMENTAL_FREQUENCY" : 50.0,
            "NO_POLES_IN_MESH" : 1,
            "MAT_IDS_IN_PHASE" : 
            [
                [ 11 ],
                [ 12 ],
                [ 13 ]
            ]
        }
    }

--------------
**詳細説明**
--------------
======================
**8_Calculation_Step**
======================
.. paramdef:: 8_Calculation_Step

:JSONキー: 計算ステップオブジェクト

====================
**NO_STEPS**
====================
.. paramdef:: NO_STEPS(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 1]

:型: 整数 (I)
:値: ≥ 1
:説明: 計算ステップ数。第0ステップ（初期条件）を含まない。 

====================
**INITIAL_TIME**
====================
.. paramdef:: INITIAL_TIME(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 2]

:型: 実数 (E)
:単位: sec
:説明: 第0ステップ（初期条件）の時刻。

====================
**DELTA_TIME**
====================
.. paramdef:: DELTA_TIME(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 3]


:型: 実数 (E)
:値: ≥ 0
:単位: sec
:説明: ステップ時間間隔

.. collapsible:: 
    :title: 固定パラメータセット1

    .. paramdef:: NO_DATA(8)
    
    **NO_DATA**

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 4]
        Type=I
    
    計算ステップ設定データ数。
    デフォルト値: 1

====================
**CYCLIC**
====================
.. paramdef:: CYCLIC(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 5]

:型: 整数 (I)
:説明: :paramdef:`COIL(17.1)` 磁場を使用する時間周期的な磁場印加問題において `cyclic_source` を利用して計算時間を短縮するときに，このデータに一周期分のステップ数を入力する。 COIL運動 :paramdef:`COIL_MOTION(19)` の解析で有効。一周期分の磁場は `cyclic_source` ファイルに保存され，二周期目以降の計算に使用される。
:デフォルト値: 0

======================
**追加ステップ設定**
======================

.. collapsible:: 
    :title: テキストフォーマットの折りたたみセクション

    ``NO_DATA`` >1の場合，以下のデータを ``NO_DATA`` -1 回繰り返し入力します。

        .. paramdef:: NO_STEPS_N(8)
        
        **NO_STEPS_N**

        .. code-block:: none
            :caption: 追加パラメータセット1

            [row, col] = [1, 1]
            Type=I

        ステップ計算における追加の計算ステップ数。この数は、:paramdef:`NO_DATA` 回繰り返され、各ステップの具体的な数を設定します。


        .. paramdef:: DELTA_TIME_N(8)
        
        **DELTA_TIME_N**
        
        .. code-block:: none
            :caption: 追加パラメータセット1

            [row, col] = [1, 2]
            Type=E
        
        各追加ステップにおける時間間隔（秒）。この時間間隔は、指定されたステップ間で等間隔に適用されます。


==========================
**TP-EEC法設定パラメータ**
==========================

TP-EEC法を使用する場合，以下のデータを設定します。

~~~~~~~~~~~~~~~
**N_CORRECT**
~~~~~~~~~~~~~~~
.. paramdef:: N_CORRECT(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 6]

.. list-table:: TP EEC法を使用する際，一周期あるいは半周期のステップ番号を入力する。
   :header-rows: 1

   * - 設定値
     - 説明
   * - 0: **デフォルト値**
     - TP EEC補正を使用しない。
   * - ＞0
     - 直流分が含まれ一周期で同じ値になる一周期性。一周期のステップ数を入力。
   * - ＜0
     - 半周期で符号が反転する半周期性。半周期のステップ数の前にマイナスをつけて入力。

.. note:: 
    改訂履歴

    :ref:`Release 10.2.5 <rls10_2_5>`

    TP-EEC補正機能追加

~~~~~~~~~~~~~
**N_BACK**
~~~~~~~~~~~~~
.. paramdef:: N_BACK(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 7]

TP EECで一周期補正（ ``N_CORRECT`` > 0）で ``N_BACK`` 計算ステップ戻って補正される。第1ステップから ``N_CORRECT`` で指定された1周期の最後ではなく，一周期の中央（== ``N_CORRECT`` /2）で補正を行った方が収束性が良い場合があり，そのときに使用する。

.. list-table:: TP EEC法を使用する際，N_BACKの設定値
   :header-rows: 1

   * - 設定値
     - 説明
   * - 0: **デフォルト値**
     - N_BACKを使用しない。
   * - ＞0
     - 指定したステップだけ前のタイミングで補正する。``N_BACK`` ＜ ``N_CORRECT``


.. note:: 
    改訂履歴
    
    :ref:`Release 10.2.5 <rls10_2_5>` 

    TP-EEC補正機能追加

~~~~~~~~~~~~~~~~~~
**TP_EEC_OPTION**
~~~~~~~~~~~~~~~~~~
.. paramdef:: TP_EEC_OPTION(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 8]

.. list-table:: TP EEC法を使用する際，TP_EEC_OPTIONの設定値
   :header-rows: 1

   * - 設定値
     - 説明
   * - 0: **デフォルト値**
     - 簡易版 TP-EEC 補正を使用しない。
   * - ＞0
     - 簡易版 TP-EEC 補正を使用する。TP-EEC 法の補正を行う。スライド運動（ :paramdef:`MOTION(2)` =2）のとき，固定側 ( *pre_geom geom(2D)* )とそれに接続されている回路値を補正する。
   * - ＜0
     - 多相交流簡易 TP-EEC 法で補正する多相交流数。


.. note:: 
    改訂履歴
    
    :ref:`Release 10.2.5 <rls10_2_5>` 
    TP-EEC補正機能追加

    :ref:`Release 10.4.1 <rls10_4_1>` 
    多相交流簡易EEC法追加

~~~~~~~~~~~~~~~~~~~
**MAX_NO_CORRECTION**
~~~~~~~~~~~~~~~~~~~
.. paramdef:: MAX_NO_CORRECTION(8)
.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 9]

:型: 整数 (I)
:値: ≥ 0
:説明: TP-EEC法で最大補正回数を設定する。TP-EEC法は，補正ステップ数 ``N_CORRECT`` で指定されたステップ数の間に，補正を行う。補正回数は ``MAX_NO_CORRECTION`` で指定された回数まで行う。デフォルト値は0（無制限）。TP-EEC法の収束性が悪い場合に使用する。
:デフォルト値: 0 = 無制限

~~~~~~~~~~~~~~~~~~~~
**SOURCE_CORRECTION**
~~~~~~~~~~~~~~~~~~~~
.. paramdef:: SOURCE_CORRECTION(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [2, 2]

:型: 整数 (I)
:値: 0 or 1
:説明: 多相交流TP-EEC法で :paramdef:`COIL(17.1)` を補正対象とするかを設定する。
:デフォルト値: 0 = 補正対象としない

~~~~~~~~~~~~~~~~~~~~~~~~
**FUNDAMENTAL_FREQUENCY**
~~~~~~~~~~~~~~~~~~~~~~~~
.. paramdef:: FUNDAMENTAL_FREQUENCY(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [2, 3]

:型: 実数 (E)
:値: > 0
:単位: Hz
:説明: 多相交流TP-EEC法で補正対象とする周波数を設定する。補正対象の周波数は，TP-EEC法で補正対象とする周波数の基本周波数を設定する。

~~~~~~~~~~~~~~~~~~~~~~
**NO_POLES_IN_MESH**
~~~~~~~~~~~~~~~~~~~~~~
.. paramdef:: NO_POLES_IN_MESH(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [2, 4]

:型: 整数 (I)
:値: ≥ 0
:説明: 多相交流TP-EEC法で補正対象とするメッシュ内の極数を設定する。
:デフォルト値: 0 = 1

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**MAT_IDS_IN_PHASE**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. paramdef:: MAT_IDS_IN_PHASE(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [3, NO_MAT_IDS_IN_PHASE]

:型: 整数配列 (I)
:説明: 多相交流TP-EEC法で補正対象とするプロパティを相数分二次元配列として設定する。

~~~~~~~~~~~~~
**サンプル**
~~~~~~~~~~~~~

- TP-EEC法半周期補正

最もよく使われる半周期補正の設定。電気角一周期180ステップの場合，90ステップで半周期補正を設定する。``N_CORRECT`` = -90と負値（半周期補正の意味）として設定する。

.. collapsible:: 
    :title: Text format

    .. code-block:: text
        :caption: Text format

        * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION *
            360          0.0           0.001         1       0         -90         0            0

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 360 ],
        "DELTA_TIME" : [ 0.001 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0,
        "TP_EEC" : 
        {
            "N_CORRECT" : -90,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 0,
            "MAX_NO_CORRECTION" : 0,
        }
    }

- 多相交流簡易TP-EEC法半周期補正

多相交流簡易TP-EEC法による三相コイルの1/6周期（1/3周期の半分）補正の設定。電気角一周期180ステップの場合，30ステップで半周期補正を設定する。三相の設定は ``TP_EEC_OPTION`` = -3と負値（半周期補正の意味）と設定する。

.. collapsible:: 
    :title: Text format

    .. code-block:: text
        :caption: Text format

        * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION *
            360          0.0           0.001         1       0         -90         0            -3

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 360 ],
        "DELTA_TIME" : [ 0.001 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0,
        "TP_EEC" : 
        {
            "N_CORRECT" : -30,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 1,
            "MAX_NO_CORRECTION" : 0,
            "SOURCE_CORRECTION" : 0,
            "FUNDAMENTAL_FREQUENCY" : 0.0,
            "NO_POLES_IN_MESH" : 0,
            "MAT_IDS_IN_PHASE" : 
            [
                [ 11 ],
                [ 12 ],
                [ 13 ]
            ]
        }
    }

- dq-TP-EEC法半周期補正

dq-TP-EEC法による三相コイルの簡易補正の設定。任意の周期で補正可能。電気角一周期180ステップで，6ステップ補正（1/30周期補正）を設定している。三相の設定は ``TP_EEC_OPTION`` = 3と正値（一周期補正の意味）と設定する。

.. collapsible:: 
    :title: Text format

    .. code-block:: text
        :caption: Text format

        * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION *
            360          0.0           0.001         1       0          6         0            3


.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 360 ],
        "DELTA_TIME" : [ 0.001 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0,
        "TP_EEC" : 
        {
            "N_CORRECT" : 6,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 3,
            "MAX_NO_CORRECTION" : 0,
            "SOURCE_CORRECTION" : 0,
            "FUNDAMENTAL_FREQUENCY" : 0.0,
            "NO_POLES_IN_MESH" : 0,
            "MAT_IDS_IN_PHASE" : 
            [
                [ 11 ],
                [ 12 ],
                [ 13 ]
            ]
        }
    }

=========================================
定常周期性を用いた初期値設定パラメータ
=========================================

定常周期性を用いた初期値設定を設定する場合，以下のデータを設定します。

**通常使用しない**

~~~~~~~~~~~~~
TP_STEP
~~~~~~~~~~~~~
.. paramdef:: TP_STEP(8)

.. collapsible:: 
    :title: 固定パラメータセット1

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 9]

:型: 整数 (I)
:説明: 定常周期性を用いた初期値設定で使用される計算ステップ番号。TP-EEC法の ``N_CORRECT`` と同様，一周期もしくは半周期のステップ数を設定する。

    - ＞0:一周期性
    - ＜0:半周期性

.. note:: 
    改訂履歴
    
    :ref:`Release 12.0.3 <rls12_0_3>` 

    定常周期性を用いた初期値設定機能追加

~~~~~~~~~~~~~~~~~~~~
TP_STEP_OPTION
~~~~~~~~~~~~~~~~~~~~
.. paramdef:: TP_STEP_OPTION(8)
    
.. collapsible:: 
    :title: テキストフォーマットの折りたたみセクション

    .. code-block:: none
        :caption: 固定パラメータセット1

        [row, col] = [1, 10]

.. list-table:: 定常周期性を用いた初期値設定の設定値
   :header-rows: 1

   * - 設定値
     - 説明
   * - ≥1
     - ``TP_STEP`` × ``TP_STEP_OPTION`` の周期から定常周期性を用いた初期値設定を使用する。
   * - 1 
     - 使用しない **デフォルト値**

.. note:: 
    改訂履歴
    
    :ref:`Release 12.0.3 <rls12_0_3>` 

    定常周期性を用いた初期値設定機能追加


~~~~~~~~~~
サンプル
~~~~~~~~~~

TP-EEC法の半周期補正と同時に，初期値補正を行う。

.. collapsible:: 
    :title: テキストフォーマットの折りたたみセクション

    .. code-block:: text
        :caption: Text format

        * NO_STEPS * INITIAL_TIME * DELTA_TIME * NO_DATA * CYCLIC * N_CORRECT * N_BACK * TP_EEC_OPTION * TP_STEP * TP_STEP_OPTION *
            360          0.0           0.001         1       0         -90         0            0         -90           1

.. code-block:: json
    :caption: JSON format from 2024.11

    "8_Calculation_Step" : 
    {
        "NO_STEPS" : [ 360 ],
        "DELTA_TIME" : [ 0.001 ],
        "INITIAL_TIME" : 0.0,
        "CYCLE" : 0,
        "TP_EEC" : 
        {
            "N_CORRECT" : -90,
            "N_BACK" : 0,
            "TP_EEC_OPTION" : 0,
            "MAX_NO_CORRECTION" : 0,
            "TP_STEP" : -90,
            "TP_STEP_OPTION" : 1
        }
    }

