NCASを起動しFileメニューからNEWを選択する.
続いてNEW Padを選択する.(New Pad for Parallelの説明はこちらへ)
NCAS内にウィンドウが立ち上がる.
本マニュアルではNCASの適用例として2次元拡散問題を取り上げ、この問題をNCASに入力する方法、プログラムを設計していく方法などを説明していく。
適用例は2次元拡散問題であり、矩形領域中の熱拡散の様子を計算するものである。
2次元モデル
l x方向のメッシュ数20,メッシュ幅dx = 1.00
l y方向のメッシュ数20,メッシュ幅dy = 1.00
l 矩形領域を取り囲むように境界を設置
l 計算刻み幅dt = 0.1、計算繰り返し数1000回
偏微分方程式および境界条件は以下のようになっています。
境界条件のLEFT, RIGHT, …は境界名である(詳しくはこちら)。
l 定数 Ax, Ay
l
偏微分方程式
l 境界条件
LEFT
RIGHT
TOP
BTTM
ウィンドウ内で右クリックすると以下のようなメニューが表示される.
メニューから入力したい問題の次元数を選択する。
取り扱う問題の次元数が
1次元→1dim
2次元→2dim
3次元→3dim
を表す。
ここでメニューの一番上に表示されている”CPDEProblem”はNCAS上のオブジェクト名を表しており、このマニュアルでは以後このオブジェクト名を用いることにする。
メニューから2dimを選択すると次のようになる。
上の図において
Mesh Info → 問題の格子数(メッシュ数)や格子幅・境界位置などの主に計算モデルの形状に関する情報を設定する。
Time Var → 作成するシミュレーションプログラムの時間ステップ幅や計算ステップ数などの主に時間に関する情報を設定する。
以下を参照して情報を設定してください。例題においては操作を省略しても問題ない。
次に偏微分方程式で使用する定数(計算式で使用する定数、例 熱伝導率、比熱、粘性係数など)を作成・設定します。
CPDEInfoオブジェクトのメニューを表示します(右クリックする)。
new para folderを選択します。
CPDEParaInfoオブジェクトでメニューを表示し、
new parameterを選択します。
“Sym55”という定数が作成されます。
画面上の”Sym55”(CMSCRealオブジェクト)上を右クリックしメニューを表示し
Change Nameを選択します。
定数の名前を自由に変更してください。ここでは”Ax”とします。
NCAS上で”Ax”という定数を使用することができるようになりました。
定数値を変更したい場合はCMSCRealオブジェクトのメニューから
input valueを選択します。
新たに定数を設定する場合は,
CPDEParaInfoオブジェクトメニューを表示し(定数Axのわずかに下のスペースを右クリック)
new parameterを選択する。
新しい定数が作成されます。定数名をAyに、定数値を0.8に変更してください。
変更方法は同じです。定数はこの操作方法で複数作成できます。
解析変数(計算する変数、例 熱量、速度、圧力など)を作成・設定します。
CPDEInfoオブジェクトのメニューから
new dependent variableを選択する。
解析変数が作成されます。
“Sym56” → 解析変数名
“Sym57” → 解析変数”Sym56”の物理的な意味
セルの図 → 解析変数のセルの定義点およびスカラーorベクトル変数
このままではわかりづらいので、解析変数名と物理的な意味を設定します.
”Sym56”の文字の上を右クリックして(CMSDepVarオブジェクトメニュー)
change nameを選択し、Sym56 → Tに変更する。
”Sym57”の文字の上を右クリックして(CMathSymbオブジェクトメニュー)
change nameを選択し、Sym57 → Temperatureに変更する。
デフォルトでは解析変数Tはセルの中心に定義されており、スカラー変数である。
例題では変更しなくてもよい。
●解析変数Tのセル内の定義点やスカラー、ベクトルを設定したい場合は
偏微分方程式を入力します。
CPDEDepInfoメニューから
a new PDE setを選択する。
次のようになります。
図中の”x 1 IMAX”と”y 1 JMAX”は解析変数Tの解析範囲を表しています(メニューから変更できます)。
?=?に偏微分方程式を入力していきます。
例題では拡散方程式を入力していきます。
設定が終わるとNCASは以下のような状態になっているはずである。
このNCASウィンドウ自身が大きくなるため、
以下のように定数と解析変数の情報の格納されたオブジェクトに名前をつけ
名前表示するようにする。
●各オブジェクトに名前をつけ名前表示する方法はこちらを参照してください。
●NCASにおける各オブジェクトの操作方法および一般的な概念の説明は
さて、解析変数のシミュレーション結果を出力するファイルを指定したい場合には
CPDEInfoメニューから
new file folderを選択します。
CPDEFileFoldメニューから
new fileを選択します。
デフォルトのファイル名が作成されるのでCEFileメニューから
change nameを選択する。
任意の名前を設定する。
ここまでくればシミュレーションプログラムを作成することができる。
次の章でNCASによるプログラム設計の方法を説明する。
この章では入力した偏微分方程式の離散化過程を確認および変更する方法を説明します。
この章以降においてはオブジェクトの基本的な操作に対しては説明を省きます。
NCASに偏微分方程式問題を入力したならば、偏微分方程式の離散化を見ながらシミュレーションプログラムの設計を進めていくことができます。
まずCPDEProblemメニューから
runを選択します。
こうなります。
NCASでは
・ 離散化過程を見ながらおこなう方法
・ 離散化過程とプログラム設計の作業を自動で行う(Automatic Run)方法
が用意されています。
●離散化過程とプログラム設計の作業を自動で行う(Automatic Run)方法はこちらを参照してください。
離散化過程を見ながら進めていきたい方は
CPDEPrcDiscメニューからform new processを選択します。
離散化過程を見るために”Sym61.Disc”オブジェクトがsplitされます。
“Sym61.Disc.Eq.1”には入力した解析変数Tの偏微分方程式&境界条件式が格納されています。splitで確認してください。“Sym61.Disc.Eq.1~4”には数式が格納されます。
“Sym61.Disc.1~3”は式を処理する命令が格納されます。つまりEq.1オブジェクトの数式はDisc.1オブジェクトの処理を行いEq.2オブジェクトに格納されると考えてください。
具体的に進めていきます。
Disc.1のメニューから(desc up wind 1st)を選択します。するとEq.1オブジェクトの数式を離散化する命令がDisc.1に割り当てられ、Eq.2には数式の処理結果が格納されます。
Eq.2は(splitして確認)
続けてDisc.2のメニューから(map to fit pos)を選択する。これは各解析変数のセル内の定義点を調整する命令である。
Eq.3を確認すると以下となる。本例では数式は変化しないが複数の解析変数がセル内の異なる位置で定義されている場合に必要な処理である。
次にDisc.3にメニューから(form eqt)を選択する。これは求めるべき解析変数を左辺に(ここではTn+1)、他項(Tn+1以外の項)を右辺に移項し数値解を求める形式に変形する処理である。
Eq.4では
このようにNCASでは数式の処理を割り当てながら、離散化および数式の処理の過程を確認していくことができる。
たとえばEq.2の段階で処理結果を確認し数式を変更することや追加することができ、その後Disc.2やDisc.3に再び命令を割り当て,再処理を行い最終的にユーザが気に入った数式を得るまでなんどでも繰り返し処理を行うことができる。
●離散化過程の変更・追加(ステアリング)の方法はこちらを参照
最終的なEq.4が得られたならばsplitされていた”Sym61.Disc”オブジェクト
をcloseします。
CPDEPrcDiscメニューのpass the resultを選択する。
“Sym61.Solv”を確認すると離散化過程オブジェクトで作成した計算式が格納されている。
この例では入力した偏微分方程式は一つである。複数の偏微分式を入力した場合には偏微分式一つ一つにこの一連の操作を行います。
すべての計算式をNCASで離散化すると,次はシミュレーションプログラムの設計です。
プログラムの設計は次章で説明いたします。
次にシミュレーションプログラムを自動設計します。
さてNCASでは自動設計したプログラムはPADと呼ばれるもので表現されます。
CPDERunSpreadメニュー
のcreate main procedureを選択します。
これでプログラムが自動設計されました。画面は変化しませんが
Sym2.Progオブジェクトをsplitしてみてください。次図のようになります。
この図はプログラムを構成する関数やソルバーを集結させたものです。
自動設計されたプログラムを見てみましょう。
プログラムを実際に確認するには図内の「main()」をsplitしてください。
NCASで設計したプログラムのmain()を確認することができます。
他の関数init(), SlvSym61(), output()…は下の図の各関数をsplitすることで確認することができます。
SlvSym61()を確認してみます。
以下でSlvSym61()をsplitする。
SlvSym61()を確認することができる。
確認の他にPAD上でプログラムを変更することができます。
● プログラム(PAD)を変更・追加・削除(ステアリング)する方法はこちら
NCASではプログラムを自動設計し、そのプログラムを上記のようにPADによって可視化しています。ここまでの作業はあくまでもNCASでの作業であり、設計されたプログラムはまだ実在していません(NCAS内には存在する)。次章ではプログラムの入手方法を説明します。
NCASで設計したプログラムを入手する方法を説明します。
NCAS上でPADによって表現されているプログラムを実際にファイルに作成します。
CPDEObjPrgメニューからcreate program in Cを選択します。
ファイル名を設定しCプログラムを作成します。
以上でシミュレーションプログラムを入手することができます。
このプログラムをコンパイルし実行するとシミュレーション結果を得ることが出来ます。
2次元モデルならばNCAS上でプログラムをコンパイルしシミュレーション結果を可視化することも可能です。この説明は次章でおこないます。
NCASでは設計したプログラムをコンパイル・実行しシミュレーション結果をステップごとに可視化することができます。ただしこの機能が使用できるのは2次元モデルの場合のみである。以下ではその操作方法について説明します。
CPDEObjPrgメニューからcreate program in C debug versionを選択する。
任意のファイル名をつける。
compileを選択する。
2dim var watcherを選択する。
メッシュ図が表示される。
ここでimaxとjmaxをMesh InfoオブジェクトのIMAX、JMAXと等しくする。imax,jmaxの文字をクリックしカーソルキーの↑↓キーで増減する。
runを選択します。
実行するとDOSプロンプトが現れてプログラムを開始する準備ができます。Time Step枠のボタンをクリックする。
l 左ボタン 実行状態を表す。青ならば実行中、赤ならば停止中
l 中ボタン クリックするたびにプログラムが実行・停止する
l 右ボタン ワンステップ実行
ある変数のメッシュ上の結果を調べたい場合
プログラムを実行したらCPDE2DimVarメニューshow memory nowを選択する。すると変数選択を求められるので、可視化したい変数名を選択する。変数の値がメッシュ毎に色分けされて表示される。メッシュをクリックすれば座標値と計算値が表示される。
ある変数の値を調べたい場合
CPDEObjPrgメニューsingle var boxを選択すると、CPDESngVarBoxオブジェクトが出現する。CPDESngVarBox メニューadd new var→selsect varを選択し値変数を選択するとその変数の値が表示される。
プログラムを実行し座標値(15,1)での解析変数Tの値とステップ変数n、メッシュ幅dy(定数)を表示している様子を示す。