:tocdepth: 1

.. role:: bred

==================================
bcタグ
==================================

.. index::
	single: bcタグ

[|today| 更新]

| (周期境界条件を除いた)境界条件の定義を行います．
| 境界条件の判定に用いられる，節点が面および線上に存在するかどうかの距離の判定値を，下記の **DISTANCE_JUDGE** ラベルで設定します．

ラベル
=========

.. csv-table:: bcタグの設定項目 
	:header: ラベル, 既定値, 説明
	:widths: 2, 1, 7 

	**DISTANCE_JUDGE**, :bred:`1e-5`, "節点が面および線上に存在するかどうかの距離の判定値"

:bred:`赤字の既定値`: :doc:`configファイル<config>` で既定値の変更が可能

使用例（距離の判定値を既定値よりも小さく設定）
-----------------------------------------------------

.. code-block:: YAML

	bc:
	  DISTANCE_JUDGE: 1e-6

| 境界条件は下記に示す4種類の形式に分かれており，形式に応じて，下記に示す第2タグを使って，条件を設定します．

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

	:ref:`far`, 遠方境界条件
	:ref:`dirichlet`, ディレクレ境界条件(境界上でBn=0)
	:ref:`neumann`, ノイマン境界条件(境界上でHt=0)
	:ref:`zeroaline`, 二次元解析における線上のA=0のディレクレ境界条件

.. _far:

far第2タグ
=============

| 遠方境界条件に関する項目を設定します．

.. csv-table:: far第2タグの設定項目 
	:header: ラベル, 既定値, 説明
	:widths: 2, 1, 5 

	**FAR_BOUNDARY_CONDITION**, 0, "| 遠方境界面の条件
	| 0: ディレクレ境界条件(Bn=0)
	| 1: ノイマン境界条件(Ht=0)
	| 2: 無限境界要素条件
	| ( **下記の無限境界要素に関するラベルデータが必要** )
	| 3: 外部電流磁場ソース(COIL)が作るHtを与える"
	**NO_BE_TERMS**, 0, "無限境界要素面展開次数"
	**BE_CENTER_X**, 0, "無限境界要素中心x座標"
	**BE_CENTER_Y**, 0, "無限境界要素中心y座標"
	**BE_CENTER_Z**, 0, "無限境界要素中心z座標"

.. _dirichlet:

dirichlet第2タグ
=====================

| ディレクレ境界条件(境界面でBn=0)に関する項目を設定します．
| 境界面は，平面を表す次式

.. math::

	CX*x + CY*y + CZ*z = C

| の各係数を，下記のフォーマットで一行で記載します．
| 境界面が複数個ある場合は，境界面の総数だけ続けて記載します．

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

	1, 1, "", CX
	1, 2, "", CY
	1, 3, "", CZ
	1, 4, "", C

使用例（ディレクレ境界条件がYZ面とXZ面の2つある場合）
-----------------------------------------------------

.. code-block:: YAML

	bc:
	  dirichlet:
	    1 0 0 0
	    0 1 0 0

.. _neumann:

neumann第2タグ
=================

| ノイマン境界条件(境界面でHt=0)に関する項目を設定します．
| 境界面は，ディレクレ境界条件と同じく平面を表す次式

.. math::

	CX*x + CY*y + CZ*z = C

| の各係数を，下記のフォーマットで一行で記載します．
| 境界面が複数個ある場合は，境界面の総数だけ続けて記載します．

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

	1, 1, "", CX
	1, 2, "", CY
	1, 3, "", CZ
	1, 4, "", C

使用例（ノイマン境界条件がXY面の1つある場合）
----------------------------------------------

.. code-block:: YAML

	bc:
	  neumann:
	    0 0 1 0

使用例（YZ面とXZ面がディレクレ境界，XY面がノイマン境界条件の場合）
---------------------------------------------------------------------

.. code-block:: YAML

	bc:
	  dirichlet:
	    1 0 0 0
	    0 1 0 0
	  neumann:
	    0 0 1 0

.. _zeroaline:

zeroaline第2タグ
====================

| 2D解析において，線上にある辺のAの値をゼロとするディレクレ境界条件の
| 辺の座標（SX, SY, SZ) - (EX, EY, EZ)を設定します．

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

	1, 1, "", SX
	1, 2, "", SY
	1, 3, "", SZ
	1, 4, "", SX
	1, 5, "", SY
	1, 6, "", SZ

使用例（Z軸上(Z=0～1)の辺をディレクレ境界条件とする場合）
-----------------------------------------------------------

.. code-block:: YAML

	bc:
	  zeroaline:
	    0 0 0 0 0 1
