:tocdepth: 1

==================================
periodicbcタグ
==================================

.. index::
	single: periodicbcタグ

[|today| 更新]

| スライド面を使った磁場解析では通常，周期境界条件を用いる必要があります．
| （必要に応じてディレクレ境界条件，ノイマン境界条件も併用します）
| スライド面と周期境界条件は，同じグループです．
| 回転機などのスライド面を用いた磁場解析では，スライド面と周期境界条件の両方の設定を行って下さい．

| EMSolutionでは，スライド面を
|    3D解析では辺要素
|    2D解析では節点要素
| で定義します．
| 3D解析において, **定義された辺要素を移動方向に引き伸ばしたものがスライド面になります** ．
| つまり，3D解析ではスライド面を定義するのに，辺要素(群)を使います．

| 周期境界条件もしくは，スライド面の形式に応じて，
| 下記に示す第2タグを使って，項目を設定します．

.. csv-table:: periodicbcタグの第2タグ
	:header: 第2タグ, 説明
	:widths: 2, 7 

	:ref:`slide`, "辺／節点要素の物性番号指定によるスライド面"
	:ref:`lineslide`, "座標指定によるスライド面"
	:ref:`translate`, "並進周期対称境界条件" 
	:ref:`rotate`, "回転周期対称境界条件" 
	:ref:`claw`, "回転周期とz反転に関する対称境界条件"
	:ref:`helical`, "ヘリカル周期対称境界条件"

.. warning::

	| EMYフォーマットでは複数の多重周期境界条件(複数の周期境界条件)の設定には対応していません．
	| スライド面が複数存在する場合に，slide第2タグとlineslide第2タグを混在することはできません（EMSolutionの仕様)．

.. _slide:

slide第2タグ
===============

| 磁場解析に用いるメッシュの要素とは別に，スライド面を表すための要素(辺要素もしくは節点要素)も作成しておく方式です．
| それらの要素は，可動部メッシュに作成しなくてはなりません．
| これらの要素群の物性番号を項目として設定します． 

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

	1, 1, "", "1周期分の移動方向分割数", SLIDE_NDIV
	1, 2, "", "スライド面を表す辺要素もしくは節点要素の物性番号", SLIDE_MAT_ID
	1, 3, 0, "| 可動部メッシュと固定部メッシュのそれぞれの節点が
	| 同一節点であるとする距離の判定値(比率)
	| （移動方向メッシュ間隔に対する比率を設定する）", FITNESS

使用例（分割数100で，物性番号21の辺要素群をスライド面として，同一節点の距離の判定値を0.1とする場合）
-------------------------------------------------------------------------------------------------------

.. code-block:: YAML

	periodicbc:
	  slide:
	    100 21 0.1

使用例（スライドが2面ある場合)
---------------------------------

.. code-block:: YAML

	periodicbc:
	  slide:
	    100 21 0.1 # 1枚目: 物性番号21(100分割)
	  slide:
	    110 22 0.1 # 2枚目: 物性番号22(110分割)

.. _lineslide:

lineslide第2タグ
=====================

| スライド面を表す辺要素を作成せずに， 磁場解析に用いるメッシュの要素の辺を流用する方式です．
| 流用する要素の辺が存在する線分を座標で入力します．
| スライド面を表すための辺要素を定義するメッシュを，MESH_NOで設定する必要があります（固定部メッシュも可） 
| 3行目はEMSolution r12.0.16で追加された機能に関する設定項目で，スライド辺を複数の線分で構成する場合の項目です．
| 3行目を残りの線分の数だけ繰り返して記述して下さい． (3行目にMESH_NO項目は不要)

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

	1, 1, "", "1周期分の移動方向分割数", SLIDE_NDIV
	1, 2, "", "スライド面を表す辺要素もしくは節点要素の物性番号", SLIDE_MAT_ID
	1, 3, 0, "| 可動部メッシュと固定部メッシュのそれぞれの節点が
	| 同一節点であるとする距離の判定値(比率)
	| （移動方向メッシュ間隔に対する比率を設定する）", FITNESS
	"", "", "", "", ""
	2, 1, "", "線分の始点のx座標", SX
	2, 2, "", "線分の始点のy座標", SY
	2, 3, "", "線分の始点のz座標", SZ
	2, 4, "", "線分の終点のx座標", EX
	2, 5, "", "線分の終点のy座標", EY
	2, 6, "", "線分の終点のz座標", EZ
	2, 7, "", "| 辺要素を定義するメッシュ
	| 0: pre_geom, 1: rotor_mesh, 2: rotor_mesh2", MESH_NO
	"", "", "", "", ""
	3, 1, "", 線分の始点のx座標, SX
	3, 2, "", 線分の始点のy座標, SY
	3, 3, "", 線分の始点のz座標, SZ
	3, 4, "", 線分の終点のx座標, EX
	3, 5, "", 線分の終点のy座標, EY
	3, 6, "", 線分の終点のz座標, EZ

.. _translate:

translate第2タグ
====================

| 並進方向に周期対称となる境界条件を設定します． 
| 周期対称面での磁場は，方向が同じ／逆転となるケースがあります．

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

 	1, 1, "", "| 周期対称面での磁場の方向
	| 0: 同じ方向
	| 1: 逆方向", SYMMETRY
	1, 2, "", "並進一周期移動量のx方向成分", DX
	1, 3, "", "並進一周期移動量のy方向成分", DY
	1, 4, "", "並進一周期移動量のz方向成分", DZ

使用例（X軸方向に一周期移動量が1[m]で，磁場の方向同じ）
--------------------------------------------------------

.. code-block:: YAML

	periodicbc:
	  translate:
	    0 1 0 0

使用例（Z面に一周期移動量が50[cm]で，磁場の方向が逆）
---------------------------------------------------------------------

.. code-block:: YAML

	periodicbc:
	  translate:
	    1 0 0 0.5

.. _rotate:

rotate第2タグ
====================

| 回転周期対称条件（回転機などの周期境界条件）を設定します． 
| 周期対称面での磁場は，方向が同じ／逆転となるケースがあります．
| SEPARATE_ANGLE項は，例えば，1/2領域のメッシュで180度回転周期対称のケースでは，
| XZ面のうち，X >= 0となる面とX < 0となる面で周期対称境界面と，EMSolution内部で認識するために必要となります．
| （このケースでは既定値のままで良い）

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

 	1, 1, "", "| 周期対称面での磁場の方向
	| 0: 同じ方向
	| 1: 逆方向", SYMMETRY
	1, 2, "", "回転一周期分の角度", ANGLE
	1, 3, "90", "180度回転周期対称で周期境界面を判別するための角度", SEPARATE_ANGLE

使用例（1回転周期90度で磁場の方向は同じの場合）
-----------------------------------------------------------

.. code-block:: YAML

	periodicbc:
	  rotate:
	    0 90

使用例（1回転周期180度で磁場の方向が逆向きの場合）
-----------------------------------------------------------

.. code-block:: YAML

	periodicbc:
	  rotate:
	    1 180 90

.. _claw:

claw第2タグ
====================

| 回転周期対称条件(:ref:`rotate`)の特殊なケースです．
| 回転周期とZ反転に関して対称となる条件の設定です．

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

 	1, 1, "", "| 周期対称面での磁場の方向
	| 0: 同じ方向
	| 1: 逆方向", SYMMETRY
	1, 2, "", "回転一周期分の角度", ANGLE
	1, 3, "90", "180度回転周期対称で周期境界面を判別するための角度", SEPARATE_ANGLE

.. _helical:

helical第2タグ
====================

| ヘリカル周期対称条件を設定します．

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

 	1, 1, "", "| 周期対称面での磁場の方向
	| 0: 同じ方向
	| 1: 逆方向", SYMMETRY
	1, 2, "", "ヘリカル一周期移動量のx成分", DX
	1, 3, "", "ヘリカル一周期移動量のy成分", DY
	1, 4, "", "ヘリカル一周期移動量のz成分", DZ
	1, 5, "", "捻りピッチ", PITCH
	1, 6, "0", "| 内部ヘリカル変形の有無
	| 0: 変形なし
	| 1: 変形あり", DEFORM
