:tocdepth: 1

==================================
variationタグ
==================================

.. index::
	single: variationタグ

[|today| 更新]

| 時間変化するデータの設定を行います． 
| ここで設定された時間変化データは，各種ソース項で参照されます．
| （ソース項の時間変化をここで定義します）
|
| 時間変化データは，定義の方法によって下記の第2タグを使って分類されます．

.. csv-table:: variation:タグの第2タグ
	:header: 第2タグ, 説明
	:widths: 2, 5 

	:ref:`equation`, "解析式"
	:ref:`variationtable`, "時間テーブル"
	:ref:`ac`, "交流"
	:ref:`mathfunc`, "数式入力"
	:ref:`dynamic`, "運動方程式入力"

.. _equation:

equation:第2タグ
==================

| 多項式で時間変化を表します．
| 下記の多項式の係数C0～C5および，TEXP，TCYCLEを設定します． 

.. csv-table:: equation:第2タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 2, 2

	1, 1, "", "時間変化番号", "TIME_ID"
	"", "", "", "", ""
	2, 1, "", "", "C0"
	2, 2, 0, "", "C1"
	2, 3, 0, "", "C2"
	2, 4, 0, "", "C3"
	2, 5, 0, "", "C4"
	2, 6, 0, "", "C5"
	2, 7, 0, "", "C6"
	"", "", "", "", ""
	3, 1, 0, "", "TEXP"
	3, 2, 0, "", "TCYCLE"


.. math:: equation第2タグの多項式

  C_{0}+C_{1}\cdot t + C_{2}\exp\left(\frac{-t}{TEXP}\right) \\
  +C_{3}\sin\left(\frac{2\pi\cdot t}{TCYCLE}\right) +C_{4}\cos\left(\frac{2\pi\cdot t}{TCYCLE}\right) \\
  +C_{5}\exp\left(\frac{-t}{TEXP}\right)\sin\left(\frac{2\pi\cdot t}{TCYCLE}\right) \\
  +C_{6}\exp\left(\frac{-t}{TEXP}\right)\cos\left(\frac{2\pi\cdot t}{TCYCLE}\right)

| C1～C5および，TEXP, TCYCLEの既定値は0なので，（3行目も含めて）省略可能です．

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  equation:
	    1
	    1 0

.. _variationtable:

table:第2タグ
===================

| 時間変化するデータを，時刻 vs 値の表で定義します． 

.. csv-table:: table:第2タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 3, 2

	1, 1, "", "時間変化番号", "TIME_ID"
	"", "", "", "", ""
	2, 1, "", "繰り返しの周期", "CYCLE"
	"", "", "", "", ""
	t, 1, "", "時刻", "TIME"
	t, 2, "", "値", "VALUE"

| **時刻点数ぶんだけ，t行を繰り返し追加して下さい．** 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  table:
	    1
	    3
	    1 1
	    2 4
	    3 9

.. _ac:

ac:第2タグ
=====================

| cos波に応じた時間変化です．

.. csv-table:: ac:第2タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 3, 2

	1, 1, "", "時間変化番号", "TIME_ID"
	"", "", "", "", ""
	2, 1, "", "振幅", "AMPLITUDE" 
	2, 2, "", "周期", "TCYCLE"
	2, 3, "", "位相", "PHASE"

| **ここでの周期TCYCLEは，calcstepタグのFREQUENCYラベルで設定したものと同じ値にして下さい．** 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  ac:
	    1
	    1 60 0

.. _mathfunc:

mathfunc:第2タグ
=====================

| 数式で定義する時間変化です．

.. csv-table:: mathfunc:第2タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 3, 2

	1, 1, "", "時間変化番号", "TIME_ID"
	"", "", "", "", ""
	f, "", "", "数式", "FUNC" 

.. _dynamic:

dynamic:第2タグ
=====================

| 運動方程式を定義し，その運動方程式に基づく時間変化です．

.. csv-table:: dynamic:第2タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 4, 3
 
	1, 1, "", "時間変化番号", "TIME_ID"
	"", "", "", "", ""
	2, 1, "", "相対位置の初期値", "INITIAL_POSITION" 
	2, 2, "0", "初期速度", "INITIAL_VELOCITY" 
	2, 3, "0", "位置計算の許容値", "POSITION_ERROR" 
	"", "", "", "", ""
	3, 1, "", "変位の下限", "LOWER_LIMIT"
	3, 2, "", "変位の上限", "UPPER_LIMIT"
	3, 3, "0", "変位の下限における反射係数", "LOWER_REFRECTION"
	3, 4, "0", "変位の上限における反射係数", "UPPER_REFRECTION"
	"", "", "", "", ""
	4, 1, "", "| 質量
	| **< 0の値の時，location:第3タグのデータが必要** ", "MASS"
	4, 2, "0", "外部力", "CONST_FORCE"
	4, 3, "0", "静止摩擦力", "STATIC_FRICTION"
	4, 4, "0", "外部力の時間変化番号", "CONST_FORCE_ID"
	4, 5, "0", "加速度", "MASS_ACCELERATION"

| さらに，dynamic:第2タグは，より複雑な運動方程式を構成するために，
| 下記に示す第3タグを使ったデータを追加します．

.. csv-table:: dynamic:第2タグの第3タグ
	:header: 第3タグ, 説明
	:widths: 2, 5 

	:ref:`location`, "位置テーブル"
	:ref:`spring`, "スプリング"
	:ref:`dumper`, "ダンパー"
	:ref:`func`, "数式による印加力"
	:ref:`force`, "電磁力算出要素"

.. _location:

location:第3タグ
=====================

| 相対位置と質量を表したテーブルを記載します．
| :ref:`dynamic` の4行1列目の質量(MASS)を負の値を設定し，データを記載します．

.. csv-table:: location:第3タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 3, 3
 
	1, 1, "", "| 質量変化による速度変化の有無
	| 0: 速度変化無し
	| 1: 速度変化有り", "OPTION"
	"", "", "", "", ""
	t, 1, "", "相対位置", "POSITION" 
	t, 2, "", "質量", "MASS" 

| **テーブルデータの個数ぶんだけt行を繰り返して記載して下さい** 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  dynamic:
	    1
	    1 2 3 4 5 6
	    7 8 9 10
	    -1 12 13 14 15 # 質量(MASS): < 0
	    location:
	      1 3
	      2 4

.. _spring:

spring:第3タグ
=====================

| スプリング(バネ)の項を運動方程式に追加します．
| **スプリングが複数ある場合は，spring:第3タグを使ったデータを複数個記載して下さい** 

.. csv-table:: spring:第3タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 5, 2
 
	1, 1, "", "| スプリングの種類 
	| 0: 線形バネ ( **L行のデータを追加** )
	| 1: 位置vsバネ力テーブル ( **T行のデータを追加** )", "SPRING_TYPE"
	1, 1, "", "定義位置の下限", "LOWER_RANGE" 
	1, 2, "", "定義位置の上限", "UPPER_RANGE" 
	"", "", "", "", ""
	**L** , 1, "", "バネ定数", "SPRING_CONST" 
	**L** , 2, "0", "バネ平衡位置", "EQUIL_POSITION"
	"", "", "", "", ""
	**T** , 1, "", "相対位置", "POSITION" 
	**T** , 2, "", "バネ力", "FORCE"

| **位置vsバネ力テーブル(SPRING_TYPE=1)の時は，T行をデータの個数ぶんだけ記載して下さい．** 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  dynamic:
	    1
	    1 2 3 4 5 6
	    7 8 9 10
	    11 12 13 14 15
	    spring:
	      0 1 2 # 線形バネ(SPRING_TYPE = 0)
	      3     # バネ平衡位置はデフォルト値(0)
	    spring:
	      1 4 5 # 非線形バネ(SPRING_TYPE = 1)
	      6 7
	      8 9

.. _dumper:

dumper:第3タグ
=====================

| ダンパーの項を運動方程式に追加します．
| **ダンパーが複数ある場合は，dumper:第3タグを使ったデータを複数個記載して下さい** 

.. csv-table:: dumper:第3タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 5, 2
 
	1, 1, "", "| ダンパーの種類 
	| 0: 多項式 ( **E行のデータを追加** )
	| 1: 位置vs粘性係数のテーブル ( **L行のデータを追加** )
	| 2: 速度vs粘性係数のテーブル ( **T行のデータを追加** )", "DUMPER_TYPE"
	1, 2, "", "定義位置の下限", "LOWER_RANGE" 
	1, 3, "", "定義位置の上限", "UPPER_RANGE" 
	"", "", "", "", ""
	**E** , 1, "", "動摩擦力", "C0" 
	**E** , 2, "0", "粘性係数", "C1" 
	**E** , 3, "0", "速度二乗力の係数", "C2" 
	**E** , 4, "0", "速度三乗力の係数", "C3" 
	"", "", "", "", ""
	**L** , 1, "", "相対位置", "POSITION" 
	**L** , 2, "", "粘性係数", "C1"
	"", "", "", "", ""
	**T** , 1, "", "相対位置", "VELOCITY" 
	**T** , 2, "", "バネ力", "FORCE"

| **位置vs粘性係数のテーブル(DUMPER_TYPE=1)の時は，L行をデータの個数ぶんだけ記載して下さい．** 
| **速度vs粘性係数のテーブル(DUMPER_TYPE=2)の時は，T行をデータの個数ぶんだけ記載して下さい．** 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  dynamic:
	    1
	    1 2 3 4 5 6
	    7 8 9 10
	    11 12 13 14 15
	    dumpper:
	      0 1 2 # 多項式ダンパー(DUMPER_TYPE = 0)
	      3 4 5 6
	    dumper:
	      1 7 8 # 位置vs粘性係数ダンパー(DUMPER_TYPE = 1)
	      9 10
	      11 12
	    dumper:
	       2 13 14 # 速度vs粘性係数ダンパー(DUMPER_TYPE = 2)
	      15 16
	      17 18
	      19 20

.. _func:

func:第3タグ
=====================

| 位置(x)と速度(v)からなる関数を数式とした印加力F(x,v)を運動方程式に追加します．

.. csv-table:: func:第3タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 1, 5, 2
 
	m, "", "", "印加力の数式F(x,v)", "FUNC" 

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  dynamic:
	    1
	    1 2 3 4 5 6
	    7 8 9 10
	    11 12 13 14 15
	    func:
	      [16 <= x <= 17] F(x,v) = -18*x;; # 線形バネの数式例

.. _force:

force:第3タグ
=====================

| 運動方程式に使われる電磁力を算出する要素群などの設定を行います．

.. csv-table:: force:第3タグの設定項目
	:header: 行, 列, 既定値, 説明, 項目
	:widths: 1, 1, 2, 6, 3
 
	1, 1, "", "| 運動の種類
	| 0: 変形および外部電流磁場ソース
	| ( **2行目が必要** )
	| 1: スライド運動
	| ( **2行目は必要なし** )", "FUNC"
	1, 2, "", "実際の系の解析モデルに対する倍数", "REGION_FACTOR"
	"", "", "", "", ""
	2, "", "", "電磁力を算出する要素群の物性番号群", "MAT_IDS"	

使用例
-------------------------------------------

.. code-block:: YAML

	variation:
	  dynamic:
	    1
	    1 2 3 4 5 6
	    7 8 9 10
	    11 12 13 14 15
	    func:
	      [16 <= x <= 17] F(x,v) = -18*x;; # 線形バネの数式例
	    force:
	      0 19 # メッシュの変形(MOTION_TYPE = 0) 
	      20 21 # 要素群の物性番号 = 20, 21
