3. 境界条件と荷重

ここでは、境界条件、駆動関数(時間関数)、およびOnScaleでの荷重設定について説明します。

境界条件

モデルの一番外側の境界はモデル領域外と接する面ですので、モデル領域外の状況を境界条件として設定する必要があります。OnScaleには、ユーザーが使用できる境界条件を準備しております。最も一般的に使用される境界条件は次のとおりです。

  • free
    • 節点は外力が作用することなく自由に移動できます。
    • 使用する場合:モデルのエッジは大気境界にあり、境界上の節点は自由に動きます。
  • symm
    • 対称形状の境界
    • 対称の片方で発生することが他方で発生すると仮定
    • 使用する場合:解析モデルは形状、及び電気的にも境界全体で同じです
  • absr
    • 無限の媒質/荷重
    • エネルギーは反射せず、境界を超えていくと仮定
    • 使用する場合:モデルの端は同じ材料(通常は大きな水域)で、無限に続く場合
  • impd
    • 無限の媒質/荷重
    • エネルギーは反射せず、境界を超えていくと仮定
    • 周波数範囲(300%比帯域幅)にわたって動作します。
    • 一部の条件下では、ABSR境界よりもパフォーマンスは低いが、一般的には計算安定しています
    • 弾性材料と音響材料、線形波と非線形波、および同じ境界  条件の複数の材料の境界でエネルギーを吸収します。 
    • 広帯域信号でも機能し、入射角が変化します。
    • 弾性媒体の波のタイプの一部は、主に垂直入射波での動作に制限があるため、IMPD条件では適切に吸収されません。 
  • fixd
    • 節点は完全に固定されています-変位ゼロです。
    • エネルギーは完全に反射します。
    • 使用する場合:モデルの端が無限に硬い場合

Designerモード

すべての外部境界は、プロパティウィンドウで選択できます。

boundary_conditions.png

Analystモード

境界は、モデルの面に特定の境界タイプを設定できるboun sideコマンドを使用して設定します。

boun 
side xmin free /* assign free boundary to xmin side
side xmax symm /* assign symmetry boundary to xmax side
side ymin absr /* assign absorbing boundary to ymin side
side ymax fixd /* assign fixed boundary to ymax side
end

駆動関数(時間関数)

駆動関数(時間関数)入力信号または駆動信号として必要な入力項目です。ほとんどの場合、時間関数は短いパルスであり、システム応答をデバイスから抽出したり、ターゲットからの反射の解析に使用したりできます。OnScaleは、正弦波、ウェーブレット、実験に一致するユーザー定義関数など、モデルで使用するさまざまな時間関数を提供します。時間関数の種類はfuncを参照してください。

Designerモード

Time Functionツールを使用すると、ユーザーは入力値を設定し、モデル内で使用される時間関数を表示させることができます。

time1.gif

Analystモード

funcコマンドは、さまざまな時間関数を設定するために使用されます。引数は時間関数のタイプごとに異なりますが、通常は常に周波数と振幅の引数が含まれます。以下にいくつかの設定例を示します。

func sine $freqint 1. 0. 0. /* continuous sinusoid with peak voltage of 1v
func wvlt $freqint 1. /* wavelet impulse function with peak voltage of 1v
func blak $freqint 1. /* blackman harris impulse function with peak voltage of 1v
data /* custom step function - 0v to 1v
hist drv1 5
0.0 0
4.9e-3 0
5e-3 1.
9.9e-3 1.
10e-3 0.
end

func hist drv1 1.

機械的/電気的荷重

モデルは2つの方法で荷重設定ができます。

  1. 圧力荷重 - 機械的な波の問題のシミュレーション用
  2. 圧電荷重 - 圧電/静電デバイスのシミュレーション用

圧力荷重

圧力荷重の設定項目です。

plod2.gif

  • 圧力波として適用される駆動関数(時間関数)
  • 節点に力を加えて圧力波を発生させる方向
  • 荷重を適用するグリッド/メッシュの場所

Designerモード

荷重は、CAD形状の任意の表面をクリックしてします。プロパティウィンドウでは、適用する荷重と時間関数のタイプを選択できます。デフォルトでは、荷重は荷重サーフェスの法線方向に生成されます。

Analystモード

plodコマンドは、前述の設定項目するために使用されます。以下は、圧力荷重を正のX方向で定義する例です。

plod 
pdef pld1 func /* create a pressure load with assigned time function
vctr vct1 1 0 0 /* define vector direction for load (+x)
sdef pld1 vct1 $i1 $i1 $j1 $j2 /* define edge/surface to load

また、plodコマンドを使用すると、2つの材料間のインターフェース(sdf2コマンド)を使用して圧力荷重の位置を定義することも可能で、モデル形状の面だけでなく複雑で任意の荷重を適用できます。これは、あらゆるタイプの荷重を生成するOnScaleでの一般的な手法です。

電圧荷重

piezoelectric solveのウィンドウを定義する必要があるため、電圧負荷を設定するために、通常、いくつかの手順が必要で、電界とそれぞれの電気的境界条件を生成するために、少なくとも2つの電極が必要です。

Designerモード

圧力荷重と同様に、CADのサーフェスを選択して荷重を生成し、そこからプロパティウィンドウで圧電荷重にカスタマイズできます。電気境界条件のさまざまなオプションも、ドロップダウンメニューから選択できます。

piezo2.gif

Analystモード

piezコマンドにより圧電荷重の設定をします。

symb ascale = 1 / *電極面積の面積スケーリング- インピーダンス振幅の正確なシミュレーションに必要です。

 

piez 
wndo $i1 $i2 $j2 $j3 /* define electric window around pzt material - minimise for faster model runtime
defn top $ascale /* define electrode - name 'top'
node $i1 $i2 $j3 $j3 /* assign nodes for top electrode
defn bot $ascale /* define electrode - name 'bot'
node $i1 $i2 $j2 $j2 /* assign nodes for bottom electrode
/* electrical boundary condition
bc top volt func /* apply voltage condition to 'top' electrode and assign driving signal 'func'
bc bot grnd /* apply ground condition to 'bot' electrode
end

これはPZTデバイスの表面に2つの電極を作成する一般的な例です。一方の電極は電圧の時間関数が設定されており、もう一方の電極は接地に接続されます。