Microsoft PowerPoint - 03-FEM3D-C.ppt [互換モード]

Save this PDF as:
Size: px
Start display at page:

Download "Microsoft PowerPoint - 03-FEM3D-C.ppt [互換モード]"

Transcription

1 有限要素法による 三次元定常熱伝導解析プログラム C 言語編 中島研吾東京大学情報基盤センター

2 FEM3D 2 対象とする問題 : 三次元定常熱伝導 Z T ma Z T 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T 一辺長さの立方体 ( 六面体 ) 要素 各方向にX Y Z 個 境界条件 Q 0 X Y X Y ma 体積当たり発熱量は位置 ( メッシュの中心の座標 c c ) に依存 Q QVOL C C

3 FEM3D 3 対象とする問題 : 三次元定常熱伝導 T T T Q 0 原点から遠い部分が高温 体積当たり発熱量は位置 ( メッシュの中心の座標 ) に依存 Q C C move

4 FEM3D 有限要素法の処理 支配方程式 ガラーキン法 : 弱形式 要素単位の積分 要素マトリクス生成 全体マトリクス生成 境界条件適用 連立一次方程式

5 FEM3D 5 有限要素法の処理 : プログラム 初期化 制御変数読み込み 座標読み込み 要素生成 (: 節点数 ICELTOT: 要素数 ) 配列初期化 ( 全体マトリクス 要素マトリクス ) 要素 全体マトリクスマッピング (IndeItem) マトリクス生成 要素単位の処理 (do cel= ICELTOT) 要素マトリクス計算 全体マトリクスへの重ね合わせ 境界条件の処理 連立一次方程式 共役勾配法 (CG)

6 FEM3D 6 三次元要素の定式化 三次元熱伝導方程式 ガラーキン法 要素マトリクス生成 プログラムの実行 データ構造 プログラムの構成

7 FEM3D 7 二次元への拡張 : 三角形要素 任意の形状を扱うことができる 特に一次要素は精度が悪く 一部の問題を除いてあまり使用されない

8 FEM3D 二次元への拡張 : 四角形要素 一次元要素と同じ形状関数を 軸に適用することによって 四角形要素の定式化は可能である 三角形と比較して特に低次要素の精度はよい しかしながら 各辺が座標軸に平行な長方形でなければならない 差分法と変わらない 3 このような形状を扱うことができない 2

9 FEM3D 9 アイソパラメトリック要素 (/3) 各要素を 自然座標系 () の正方形要素 [± ±] に変換する 各要素の全体座標系 (global coordnate)() における座標成分を 自然座標系における形状関数 [] ( 従属変数の内挿に使うのと同じ []) を使用して変換する場合 このような要素をアイソパラメトリック要素 (soparametrc element) という

10 アイソパラメトリック要素 (2/3) 2 3 各節点の座標 :( ) ( 2 2 ) ( 3 3 ) ( ) 各節点における温度 :T T 2 T 3 T FEM3D 0 T T ) ( ) ( ) (

11 FEM3D アイソパラメトリック要素 (3/3) 高次の補間関数を使えば 曲線 曲面も扱うことが可能となる そういう意味で 自然座標系 と呼んでいる Sub-Parametrc Super-Parametrc

12 2D 自然座標系の形状関数 (/3) 自然座標系における正方形上の内挿多項式は下式で与えられる : T T T T T T T T T T T T T T T T 3 2 T 各節点での条件より : FEM3D 2

13 2D 自然座標系の形状関数 (2/3) FEM3D T T T T T T T T T T T T T T T T T T T T T T T T T 2 3

14 2D 自然座標系の形状関数 (3/3) 元の式に代入して T について整理すると以下のようになる : ) ( ) ( ) ( ) ( 3 2 形状関数 は以下のようになる : 双一次 (b-lnear) 要素とも呼ばれる 各節点における の値を計算してみよ FEM3D T T T T T

15 FEM3D 5 三次元への拡張 四面体要素 : 二次元における三角形要素 任意の形状を扱うことができる 特に一次要素は精度が悪く 一部の問題を除いてあまり使用されない 高次の四面体要素は広く使用されている 本講義では低次六面体要素 ( アイソパラメトリック要素 ) を使用する tr-lnear 自由度 : 各節点上

16 3D 自然座標系の形状関数 ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( FEM3D 6 T T ) ( ) ( ) ( ) (

17 FEM3D 7 三次元要素の定式化 三次元熱伝導方程式 ガラーキン法 要素マトリクス生成 プログラムの実行 データ構造 プログラムの構成

18 ガラーキン法の適用 (/3) 以下のような三次元熱伝導方程式を考慮する ( 熱伝導率一定 ): { T 要素内の温度分布 ( マトリクス形式 ) 節点における温度を としてある ガラーキン法に従い 重み関数を [] とすると 各要素において以下の積分方程式が得られる : dv Q T T T T V Q T T T FEM3D

19 ガラーキン法の適用 (2/3) 三次元のグリーンの定理 前式の 2 階微分の部分に適用 ( 表面積分省略 ): これに以下を代入する : { { { { T T T T V V S dv B A B A B A ds n B A dv B B B A dv T T T dv T T T V T T T T V FEM3D 9

20 FEM3D 20 ガラーキン法の適用 (3/3) 体積あたり発熱量の項を加えて次式が得られる : Q T T T dv Q dv 0 V この式を弱形式 (wea form) と呼ぶ 元の微分方程式では 2 階の微分が含まれていたが 上式では グリーンの定理によって 階微分に低減されている 弱形式によって近似関数 ( 形状関数 内挿関数 ) に対する要求が弱くなっている : すなわち線形関数で2 階微分の効果を記述できる 項が増えただけで 一次元と同じ V

21 境界条件を考慮した弱形式 : 各要素 dv dv dv V T V T V T e ) ( ) ( ) ( ) ( e e e f dv Q f V T e ) ( FEM3D 2

22 FEM3D 22 要素マトリクス : 行列 j j j

23 FEM3D 23 要素マトリクス : j j j dv T ( e) T V V T dv V dv j V j j j dv

24 D-Part2 2 数値的に積分を実施する方法 台形公式 シンプソンの公式 ガウスの積分公式 ( ガウス=ルジャンドル (Gauss-Legendre) とも呼ばれる 精度良い ) 不定積分を解析的に求めるのではなく 有限な数のサンプル点における値を利用する X X 2 f m d w f

25 D-Part2 25 ガウス積分公式 : 一次元の例シンプソンの公式より精度良い Smpson s f Gauss ( ) sn( ) X h S X X 2 X 3 0 X 2 X 3 2 X h 3 2 X X 3 X f X f X f X S h 2 2 / f d W f f h d

26 D-Part2 26 ガウスの積分公式 無次元化された自然座標系 [-+] を対象とする m 個の積分点を使用すると (2m-) 次の関数までは近似可能 ( 従って 次 2 次の内挿関数 ( 形状関数 ) を使用するときは m=2で十分) f m m 2 m 3 m d w f 0.00 w w w / w 5/ 9 =- =0 =+ = =

27 Gaussan Quadrature ガウスの積分公式 自然座標系 () 上で定義 ガウス積分公式が使える ( 三次元 ) j W W W ) ( j LM: 方向の積分点数 : 積分点での重み係数 : 積分点の座標値 j j M j L f W W W d d d f I ) ( ) ( FEM3D 27

28 2 Gaussan Quadrature ガウスの積分公式 この組み合わせがよく 使われる 二次元では 点におけるfの値を計算 して足せば良い 三次 元では点

29 29 Gaussan Quadrature ガウスの積分公式 この組み合わせがよく 使われる 二次元では 点におけるfの値を計算 して足せば良い 三次 元では点 I f ( ) d d W W f ( ) m n j j j.0.0 f ( ).0.0 f ( ).0.0 f ( ).0.0 f ( )

30 あとは積分を求めれば良い 自然座標系 () 上で定義 ガウス積分公式が使える ( 三次元 ) しかし 微分が j W W W ) ( j LM: 方向の積分点数 : 積分点での重み係数 : 積分点の座標値 j j M j L f W W W d d d f I ) ( ) ( FEM3D 30

31 自然座標系における偏微分 (/) 偏微分の公式より以下のようになる : ) ( ) ( ) ( は定義より簡単に求められるがを実際の計算で使用する FEM3D 3

32 自然座標系における偏微分 (2/) マトリックス表示すると : J J : ヤコビのマトリクス (Jacob matr Jacoban) FEM3D 32

33 自然座標系における偏微分 (3/) の定義より簡単に求められる J J J J J J J J J FEM3D 33

34 自然座標系における偏微分 (/) 従って下記のように偏微分を計算できる ヤコビアン (3 3 行列 ) の逆行列を求める J FEM3D 3

35 要素単位での積分 V j j j V j j j j dv dv j j FEM3D 35

36 自然座標系での積分 d d d J ddd dv j j j j j j V j j j det j j FEM3D 36

37 ガウスの積分公式 j j M j L f W W W d d d f I ) ( ) ( d d d J j j j det FEM3D 37 j j

38 FEM3D 3 残りの手順 ここまでで 要素ごとの積分が可能となる あとは : 全体マトリクスへの重ね合わせ 境界条件処理 連立一次方程式を解く 詳細はプログラムの内容を解説しながら説明する

39 要素 全体マトリクス重ね合わせ () () 3 () 2 () () () 3 () 2 () () () 3 () 2 () () 3 () 33 () 32 () 3 () 2 () 23 () 22 () 2 () () 3 () 2 () () () () { ]{ [ f f f f f (2) (2) 3 (2) 2 (2) (2) (2) 3 (2) 2 (2) (2) (2) 3 (2) 2 (2) (2) 3 (2) 33 (2) 32 (2) 3 (2) 2 (2) 23 (2) 22 (2) 2 (2) (2) 3 (2) 2 (2) (2) (2) (2) { ]{ [ f f f f f { ]{ [ B B B B B B D X X X X D X X X X D X X X X X X D X X X X D X X X X D F K FEM3D 39

40 FEM3D 0 三次元要素の定式化 三次元弾性力学方程式 ガラーキン法 要素マトリクス生成 演習 プログラムの実行 データ構造 プログラムの構成

41 FEM3D 演習 ガウスの積分公式を使用して以下の四角形の面積を求めよ ( プログラムを作って 計算機で計算してください ) V 3 2 :(.0.0) 2:(.0 2.0) 3:( ) :(2.0.0) I V dv det J dd

42 FEM3D 2 ヒント (/2) 座標値によってヤコビアン ( ヤコビの行列 ) を計算 ガウスの積分公式 (n=2) に代入する I m W W j f ( j ) f ( ) dd n j mplct REAL* (A-HO-Z) real* W(2) real* POI(2) W()=.0d0 W(2)=.0d0 POI()= d0 POI(2)= d0 SUM= 0.d0 do jp= 2 do p= 2 FC = F(POI(p)POI(jp)) SUM= SUM + W (p)*w (jp)*fc enddo enddo

43 ヒント (2/2) J J det ) ( ) ( ) ( ) ( 3 2 FEM3D 3

44 FEM3D 三次元要素の定式化 三次元弾性力学方程式 ガラーキン法 要素マトリクス生成 プログラムの実行 データ構造 プログラムの構成

45 FEM3D 5 対象とする問題 : 三次元定常熱伝導 Z T ma Z T 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T 一辺長さの立方体 ( 六面体 ) 要素 各方向にX Y Z 個 境界条件 Q 0 X Y X Y ma 体積当たり発熱量は位置 ( メッシュの中心の座標 c c ) に依存 Q QVOL C C

46 FEM3D 6 インストール (Cgwn では *.ee) インストール >$ cd <$P-TOP>/fem3d/src >$ mae >$ ls../run/sol sol メッシュジェネレータインストール >$ cd <$P-TOP>/fem3d/run >$ cc O3 mgcube.c o mgcube

47 FEM3D 7 計算の流れメッシュ生成 計算 ファイル名称固定 mgcube メッシュジェネレータ cube.0 メッシュファイル sol FEM 本体 IPUT.DAT 制御データ test.np 可視化用出力

48 FEM3D メッシュ生成 (Cgwn では mgcube.ee) Z >$ cd <$P-TOP>/fem3d/run >$./mgcube ma X Y Z 各辺長さを訊いてくる このように入れてみる Z >$ ls cube.0 生成を確認 cube.0 X Y X Y

49 FEM3D 9 制御ファイル :IPUT.DAT IPUT.DAT cube.0 fname 2000 ITER.0.0 COD QVOL.0e-0 RESID fname: ITER: COD: QVOL: RESID: メッシュファイル名反復回数上限熱伝導率体積当たり発熱量係数反復法の収束判定値 T Q T QVOL C C T Q 0

50 FEM3D 50 実行 (Cgwn では sol.ee) >$ cd <$P-TOP>/fem3d/run >$./sol >$ ls test.np 生成を確認 test.np

51 FEM3D 5 ParaVew ファイルを開く 図の表示 イメージファイルの保存

52 FEM3D 52 UCD Format (/3) Unstructured Cell Data 要素の種類点線三角形四角形四面体角錐三角柱六面体二次要素線 2 三角形 2 四角形 2 四面体 2 角錐 2 三角柱 2 六面体 2 キーワード pt lne tr quad tet pr prsm he lne2 tr2 quad2 tet2 pr2 prsm2 he2

53 FEM3D 53 UCD Format (2/3) Orgnall for AVS mcroavs Etenson of the UCD fle s np There are two tpes of formats. Onl old tpe can be read b ParaVew.

54 FEM3D 5 UCD Format (3/3): Old Format ( 全節点数 ) ( 全要素数 ) ( 各節点のデータ数 ) ( 各要素のデータ数 ) ( モデルのデータ数 ) ( 節点番号 ) (X 座標 ) (Y 座標 ) (Z 座標 ) ( 節点番号 2) (X 座標 ) (Y 座標 ) (Z 座標 ) ( 要素番号 ) ( 材料番号 ) ( 要素の種類 ) ( 要素を構成する節点のつながり ) ( 要素番号 2) ( 材料番号 ) ( 要素の種類 ) ( 要素を構成する節点のつながり ) ( 要素のデータ成分数 ) ( 成分 の構成数 ) ( 成分 2 の構成数 ) ( 各成分の構成数 ) ( 要素データ成分 のラベル )( 単位 ) ( 要素データ成分 2 のラベル )( 単位 ) ( 各要素データ成分のラベル )( 単位 ) ( 要素番号 ) ( 要素データ ) ( 要素データ 2) ( 要素番号 2) ( 要素データ ) ( 要素データ 2) ( 節点のデータ成分数 ) ( 成分 の構成数 ) ( 成分 2 の構成数 ) ( 各成分の構成数 ) ( 節点データ成分 のラベル )( 単位 ) ( 節点データ成分 2 のラベル )( 単位 ) ( 各節点データ成分のラベル )( 単位 ) ( 節点番号 ) ( 節点データ ) ( 節点データ 2) ( 節点番号 2) ( 節点データ ) ( 節点データ 2)

55 FEM3D 55 三次元要素の定式化 三次元弾性力学方程式 ガラーキン法 要素マトリクス生成 プログラムの実行 データ構造 プログラムの構成

56 FEM3D 56 メッシュファイル構成 :cube.0 番号は から始まっている 節点データ 節点数 節点番号 座標 要素データ 要素数 要素タイプ 要素番号 材料番号 コネクティビティ 節点グループデータ グループ数 グループ内節点数 グループ名 グループ内節点

57 FEM3D 57 cube.0: 節点データ (X=Y=Z=) 25 =5*5*5( 節点数 ) Z ma Z X Y X Y 節点 ID X 座標 Y 座標 Z 座標 move

58 FEM3D 5 cube.0: 要素データ (/2) 6 =**( 要素数 ) Z ma Z 要素タイプ :36 三次元 六面体 一次 Y X Y X

59 FEM3D 59 cube.0: 要素データ (2/2) 要素 ID 材料 ID 節点 ID X Z ma Z Y X Y

60 FEM3D 60 X=Y=Z= XP=YP=ZP=5 ICELTOT= 6 IODTOT= 25 IBODTOT= 25 = = = = =

61 FEM3D 6 cube.0: 節点グループデータ グループ総数 各グループ節点数 ( 累積 ) Z Xmn ma Ymn Z Zmn Zma X Y X Y ( 以下使用せず )

62 FEM3D 62 X=Y=Z= XP=YP=ZP=5 ICELTOT= 6 IODTOT= 25 IBODTOT= 25 = = = = = Xmn: = Ymn: j= Zmn: = Zma:=5

63 FEM3D 63 メッシュ生成 実は技術的には大きな課題 複雑形状 大規模メッシュ 並列化が難しい 市販のメッシュ生成アプリケーション FEMAP CAD データとのインタフェース move

64 FEM3D 6 三次元要素の定式化 三次元弾性力学方程式 ガラーキン法 要素マトリクス生成 プログラムの実行 データ構造 プログラムの構成

65 FEM3D 65 有限要素法の処理 : プログラム 初期化 制御変数読み込み 座標読み込み 要素生成 (: 節点数 E: 要素数 ) 配列初期化 ( 全体マトリクス 要素マトリクス ) 要素 全体マトリクスマッピング (IndeItem) マトリクス生成 要素単位の処理 (do cel= E) 要素マトリクス計算 全体マトリクスへの重ね合わせ 境界条件の処理 連立一次方程式 共役勾配法 (CG)

66 FEM3D 66 test メインプログラム nput_cntl 制御データ入力 nput_grd メッシュファイル入力 fnd_node 節点探索 mat_con0 行列コネクティビティ生成 msort ソート mat_con 行列コネクティビティ生成 mat_ass_man 係数行列生成 jacob ヤコビアン計算 mat_ass_bc 境界条件処理 三次元熱伝導解 析コード heat3d の構成 solve 線形ソルバー制御 output_ucd 可視化処理 cg CG 法計算

67 FEM3D 67 全体処理 /** program heat3d **/ #nclude <stdo.h> #nclude <stdlb.h> FILE* fp_log; #defne GLOBAL_VALUE_DEFIE #nclude "pfem_utl.h" //#nclude "solver.h" etern vod IPUT_CTL(); etern vod IPUT_GRID(); etern vod MAT_CO0(); etern vod MAT_CO(); etern vod MAT_ASS_MAI(); etern vod MAT_ASS_BC(); etern vod SOLVE(); etern vod OUTPUT_UCD(); nt man() { IPUT_CTL(); IPUT_GRID(); MAT_CO0(); MAT_CO(); MAT_ASS_MAI(); MAT_ASS_BC() ; SOLVE(); OUTPUT_UCD() ;

68 FEM3D 6 Global 変数表 :pfem_utl.h(/3) 変数名種別サイズ I/O 内容 fname C [0] I メッシュファイル名 P I I 節点数 ICELTOT I I 要素数 ODGRPtot I I 節点グループ数 XYZ R [][3] I 節点座標 ICELOD I [ICELTOT][] I 要素コネクティビティ ODGRP_IDEX I [ODGRPtot+] I 各節点グループに含まれる節点数 ( 累積 ) ODGRP_ITEM I [ODGRP_IDEX[ODG RPTOT+]] I 節点グループに含まれる節点 ODGRP_AME C0 [ODGRP_IDEX[ODG RPTOT+]] I 節点グループ名 LU I O 各節点非対角成分数 PLU I O 非対角成分総数 D R [] O 全体行列 : 対角ブロック BX R [] O 右辺ベクトル 未知数ベクトル

69 FEM3D 69 Global 変数表 :pfem_utl.h(2/3) 変数名種別サイズ I/O 内容 AMAT R [] O 全体行列 : 非零非対角成分 ndelu I [+] O 全体行列 : 非零非対角成分数 temlu I [PLU] O 全体行列 : 非零非対角成分 ( 列番号 ) ILU I [] O 各節点の非零非対角成分数 IALU I [][LU] O 各節点の非零非対角成分数 ( 列番号 ) IWKX I [][2] O ワーク用配列 ITER ITERactual I I 反復回数の上限 実際の反復回数 RESID R I 打ち切り誤差 (.e-に設定) pfemiarra I [00] O 諸定数 ( 整数 ) pfemrarra R [00] O 諸定数 ( 実数 )

70 FEM3D 70 Global 変数表 :pfem_utl.h(3/3) 変数名種別サイズ I/O 内容 Oth R I =0.25 PQ PE PT R [2][2][] O 各ガウス積分点における POS WEI R [2] O 各ガウス積分点の座標 重み係数 COL COL2 I [00] O ソート用ワーク配列 SHAPE R [2][2][2][] O 各ガウス積分点における形状関数 (=~) PX PY PZ R [2][2][2][] O 各ガウス積分点における ~ ~ DETJ R [2][2][2] O 各ガウス積分点におけるヤコビアン行列式 COD QVOL R I 熱伝導率 体積当たり発熱量係数

71 FEM3D 7 制御ファイル入力 :IPUT_CTL /** ** IPUT_CTL **/ #nclude <stdo.h> #nclude <stdlb.h> #nclude "pfem_utl.h" /** **/ vod IPUT_CTL() { FILE *fp; f( (fp=fopen("iput.dat""r")) == ULL){ fprntf(stdout"nput fle cannot be opened! n"); et(); fscanf(fp"%s"fname); fscanf(fp"%d"&iter); fscanf(fp "%lf %lf" &COD &QVOL); fscanf(fp "%lf" &RESID); fclose(fp); pfemrarra[0]= RESID; pfemiarra[0]= ITER; IPUT.DAT cube.0 fname 2000 ITER.0.0 COD QVOL.0e-0 RESID

72 FEM3D 72 メッシュ入力 :IPUT_GRID(/3) #nclude <stdo.h> #nclude <stdlb.h> #nclude "pfem_utl.h" #nclude "allocate.h" vod IPUT_GRID() { FILE *fp; nt jnncelse; nt TYPEIMAT; /** **/ f( (fp=fopen(fname"r")) == ULL){ fprntf(stdout"nput fle cannot be opened! n"); et(); ODE fscanf(fp"%d"&); P=; XYZ=(KREAL**)allocate_matr(seof(KREAL)3); for(=0;<;++){ for(j=0;j<3;j++){ XYZ[][j]=0.0; for(=0;<;++){ fscanf(fp"%d %lf %lf %lf"&&xyz[][0]&xyz[][]&xyz[][2]);

73 FEM3D 73 cube.0: 節点データ (X=Y=Z=) 25 = Z ma Z X Y X Y XYZ[][3]

74 FEM3D 7 allocate deallocate 関数 #nclude <stdo.h> #nclude <stdlb.h> vod* allocate_vector(nt sent m) { vod *a; f ( ( a=(vod * )malloc( m * se ) ) == ULL ) { fprntf(stdout"error:memor does not enough! n vector n"); et(); return a; vod deallocate_vector(vod *a) { free( a ); vod** allocate_matr(nt sent mnt n) { vod **aa; nt ; f ( ( aa=(vod ** )malloc( m * seof(vod*) ) ) == ULL ) { fprntf(stdout"error:memor does not enough! aa n matr n"); et(); f ( ( aa[0]=(vod * )malloc( m * n * se ) ) == ULL ) { fprntf(stdout"error:memor does not enough! n matr n"); et(); for(=;<m;++) aa[]=(char*)aa[-]+se*n; return aa; vod deallocate_matr(vod **aa) { free( aa ); allocate を FORTRA 並みに簡単にやるための関数

75 FEM3D 75 メッシュ入力 :IPUT_GRID(2/3) /** **/ ELEMET fscanf(fp"%d"&iceltot); ICELOD=(KIT**)allocate_matr(seof(KIT)ICELTOT); for(=0;<iceltot;++) fscanf(fp"%d"&type); ICELOD[][j] の中身としては から始まる通し節点番号がそのまま読み込まれている 要素番号は 0 から番号付け for(cel=0;cel<iceltot;cel++){ fscanf(fp"%d %d %d %d %d %d %d %d %d %d"&&imat &ICELOD[cel][0]&ICELOD[cel][]&ICELOD[cel][2]&ICELOD[cel][3] &ICELOD[cel][]&ICELOD[cel][5]&ICELOD[cel][6]&ICELOD[cel][7]);

76 FEM3D 76 cube.0: 要素データ (/2) 6 = ICELTOT Z ma Z 要素タイプ :36 三次元 六面体 一次 Y X Y X

77 FEM3D 77 cube.0: 要素データ (2/2) MAT ICELOD[cel][] X Z ma Z Y X Y

78 FEM3D 7 メッシュ入力 :IPUT_GRID(3/3) /** **/ ODE grp. nfo. fscanf(fp"%d"&odgrptot); ODGRP_IDEX=(KIT* )allocate_vector(seof(kit)odgrptot+); ODGRP_AME =(CHAR0*)allocate_vector(seof(CHAR0)ODGRPtot); for(=0;<odgrptot+;++) ODGRP_IDEX[]=0; for(=0;<odgrptot;++) fscanf(fp"%d"&odgrp_idex[+]); nn=odgrp_idex[odgrptot]; ODGRP_ITEM=(KIT*)allocate_vector(seof(KIT)nn); for(=0;<odgrptot;++){ S= ODGRP_IDEX[]; E= ODGRP_IDEX[+]; fscanf(fp"%s"odgrp_ame[].name); nn= E - S; f( nn!= 0 ){ for(=s;<e;++) fscanf(fp"%d"&odgrp_item[]); fclose(fp); 節点グループの中身も から始まる通し節点番号がそのまま読み込まれている

79 FEM3D 79 cube.0: 節点グループデータ ODGRPtot ODGTP_IDEX[-] Xmn ODGRP_AME[] ODGRP_ITEM[0-2] Ymn ODGRP_AME[2] ODGRP_ITEM[25-9] Zmn ODGRP_AME[3] ODGRP_ITEM[50-7] Zma ODGRP_AME[] ODGRP_ITEM[75-99]

80 FEM3D 0 test メインプログラム nput_cntl 制御データ入力 nput_grd メッシュファイル入力 fnd_node 節点探索 mat_con0 行列コネクティビティ生成 msort ソート mat_con 行列コネクティビティ生成 mat_ass_man 係数行列生成 jacob ヤコビアン計算 mat_ass_bc 境界条件処理 三次元熱伝導解 析コード heat3d の構成 solve 線形ソルバー制御 output_ucd 可視化処理 cg CG 法計算

81 FEM3D Global 変数表 :pfem_utl.h(/3) 変数名種別サイズ I/O 内容 fname C [0] I メッシュファイル名 P I I 節点数 ICELTOT I I 要素数 ODGRPtot I I 節点グループ数 XYZ R [][3] I 節点座標 ICELOD I [ICELTOT][] I 要素コネクティビティ ODGRP_IDEX I [ODGRPtot+] I 各節点グループに含まれる節点数 ( 累積 ) ODGRP_ITEM I [ODGRP_IDEX[ODG RPTOT+]] I 節点グループに含まれる節点 ODGRP_AME C0 [ODGRP_IDEX[ODG RPTOT+]] I 節点グループ名 LU I O 各節点非対角成分数 PLU I O 非対角成分総数 D R [] O 全体行列 : 対角ブロック BX R [] O 右辺ベクトル 未知数ベクトル

82 FEM3D 2 Global 変数表 :pfem_utl.h(2/3) 変数名種別サイズ I/O 内容 AMAT R [] O 全体行列 : 非零非対角成分 ndelu I [+] O 全体行列 : 非零非対角成分数 temlu I [PLU] O 全体行列 : 非零非対角成分 ( 列番号 ) ILU I [] O 各節点の非零非対角成分数 IALU I [][LU] O 各節点の非零非対角成分数 ( 列番号 ) IWKX I [][2] O ワーク用配列 ITER ITERactual I I 反復回数の上限 実際の反復回数 RESID R I 打ち切り誤差 (.e-に設定) pfemiarra I [00] O 諸定数 ( 整数 ) pfemrarra R [00] O 諸定数 ( 実数 )

83 FEM3D 3 Global 変数表 :pfem_utl.h(3/3) 変数名種別サイズ I/O 内容 Oth R I =0.25 PQ PE PT R [2][2][] O 各ガウス積分点における POS WEI R [2] O 各ガウス積分点の座標 重み係数 COL COL2 I [00] O ソート用ワーク配列 SHAPE R [2][2][2][] O 各ガウス積分点における形状関数 (=~) PX PY PZ R [2][2][2][] O 各ガウス積分点における ~ ~ DETJ R [2][2][2] O 各ガウス積分点におけるヤコビアン行列式 COD QVOL R I 熱伝導率 体積当たり発熱量係数

84 FEM3D マトリクス生成まで 一次元のときは ndetem に関連した情報を簡単に作ることができた 非ゼロ非対角成分の数は2 番号が自分に対して :+と- 三次元の場合はもっと複雑 非ゼロ非対角成分の数は7~26( 現在の形状 ) 実際はもっと複雑 前以て 非ゼロ非対角成分数はわからない move

85 FEM3D 5 マトリクス生成まで 一次元のときは ndetem に関連した情報を簡単に作ることができた 非ゼロ非対角成分の数は2 番号が自分に対して :+と- 三次元の場合はもっと複雑 非ゼロ非対角成分の数は7~26( 現在の形状 ) 実際はもっと複雑 前以て 非ゼロ非対角成分数はわからない ILU[]IALU[][LU] を使って非ゼロ非対角成分数を予備的に勘定する

86 FEM3D 6 全体処理 /** program heat3d **/ #nclude <stdo.h> #nclude <stdlb.h> FILE* fp_log; #defne GLOBAL_VALUE_DEFIE #nclude "pfem_utl.h" //#nclude "solver.h" etern vod IPUT_CTL(); etern vod IPUT_GRID(); etern vod MAT_CO0(); etern vod MAT_CO(); etern vod MAT_ASS_MAI(); etern vod MAT_ASS_BC(); etern vod SOLVE(); etern vod OUTPUT_UCD(); nt man() { IPUT_CTL(); IPUT_GRID(); MAT_CO0(); MAT_CO(); MAT_ASS_MAI(); MAT_ASS_BC() ; SOLVE(); OUTPUT_UCD() ; MAT_CO0: IU IALU 生成 MAT_CO: nde tem 生成 とりあえず から始まる節点番号を記憶

87 FEM3D 7 MAT_CO0: 全体構成 do cel= ICELTOT 節点相互の関係から ILUIALU を生成 (FID_ODE) enddo

88 FEM3D 行列コネクティビティ生成 : MAT_CO0(/) /** ** MAT_CO0 **/ #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h etern FILE *fp_log; /*** eternal functons ***/ etern vod msort(nt* nt* nt); /*** statc functuons ***/ statc vod FID_TS_ODE (ntnt); vod MAT_CO0() { nt jceln; nt nn2n3nn5n6n7n; nt ; LU= 26; ILU=(KIT* )allocate_vector(seof(kit)); IALU=(KIT**)allocate_matr(seof(KIT)LU); for(=0;<;++) ILU[]=0; for(=0;<;++) for(j=0;j<lu;j++) IALU[][j]=0; LU: 各節点における非ゼロ非対角成分の最大数 ( 接続する節点数 ) 今の問題の場合はわかっているので このようにできる 不明の場合の実装 : レポート課題

89 FEM3D 9 行列コネクティビティ生成 : MAT_CO0(/) /** ** MAT_CO0 **/ #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h etern FILE *fp_log; /*** eternal functons ***/ etern vod msort(nt* nt* nt); /*** statc functuons ***/ statc vod FID_TS_ODE (ntnt); vod MAT_CO0() { nt jceln; nt nn2n3nn5n6n7n; nt ; 変数名サイズ内容 ILU IALU [] []{[LU] 各節点の非零非対角成分数 各節点の非零非対角成分 ( 列番号 ) LU= 26; ILU=(KIT* )allocate_vector(seof(kit)); IALU=(KIT**)allocate_matr(seof(KIT)LU); for(=0;<;++) ILU[]=0; for(=0;<;++) for(j=0;j<lu;j++) IALU[][j]=0;

90 FEM3D 90 行列コネクティビティ生成 : MAT_CO0(2/): から始まる番号 for( cel=0;cel< ICELTOT;cel++){ n=icelod[cel][0]; n2=icelod[cel][]; n3=icelod[cel][2]; n=icelod[cel][3]; n5=icelod[cel][]; n6=icelod[cel][5]; n7=icelod[cel][6]; n=icelod[cel][7]; FID_TS_ODE (nn2); FID_TS_ODE (nn3); FID_TS_ODE (nn); FID_TS_ODE (nn5); FID_TS_ODE (nn6); FID_TS_ODE (nn7); FID_TS_ODE (nn); FID_TS_ODE (n2n); FID_TS_ODE (n2n3); FID_TS_ODE (n2n); FID_TS_ODE (n2n5); FID_TS_ODE (n2n6); FID_TS_ODE (n2n7); FID_TS_ODE (n2n); FID_TS_ODE (n3n); FID_TS_ODE (n3n2); FID_TS_ODE (n3n); FID_TS_ODE (n3n5); FID_TS_ODE (n3n6); FID_TS_ODE (n3n7); FID_TS_ODE (n3n);

91 FEM3D 9 節点探索 :FID_TS_ODE ILUIAU 探索 : 一次元ではこの部分は手動 /*** *** FID_TS_ODE **/ statc vod FID_TS_ODE (nt pnt p2) { nt cou; for(=;<=ilu[p-];++){ f(p2 == IALU[p-][-]) return; cou=ilu[p-]+; IALU[p-][cou-]=p2; ILU[p-]=cou; return; 変数名サイズ内容 ILU IALU [] []{[LU] 各節点の非零非対角成分数 各節点の非零非対角成分 ( 列番号 )

92 FEM3D 92 節点探索 :FID_TS_ODE 一次元ではこの部分は手動 /*** *** FID_TS_ODE **/ statc vod FID_TS_ODE (nt pnt p2) { nt cou; for(=;<=ilu[p-];++){ f(p2 == IALU[p-][-]) return; 既に IALU に含まれている場合は 次のペアへ cou=ilu[p-]+; IALU[p-][cou-]=p2; ILU[p-]=cou; return;

93 FEM3D 93 節点探索 :FID_TS_ODE 一次元ではこの部分は手動 /*** *** FID_TS_ODE **/ statc vod FID_TS_ODE (nt pnt p2) { nt cou; for(=;<=ilu[p-];++){ f(p2 == IALU[p-][-]) return; cou=ilu[p-]+; IALU[p-][cou-]=p2; ILU[p-]=cou; return; IALU に含まれていない場合は ILU に を加えて IALU に格納

94 FEM3D 9 行列コネクティビティ生成 : MAT_CO0(3/) FID_TS_ODE (nn); FID_TS_ODE (nn2); FID_TS_ODE (nn3); FID_TS_ODE (nn5); FID_TS_ODE (nn6); FID_TS_ODE (nn7); FID_TS_ODE (nn); FID_TS_ODE (n5n); FID_TS_ODE (n5n2); FID_TS_ODE (n5n3); FID_TS_ODE (n5n); FID_TS_ODE (n5n6); FID_TS_ODE (n5n7); FID_TS_ODE (n5n); FID_TS_ODE (n6n); FID_TS_ODE (n6n2); FID_TS_ODE (n6n3); FID_TS_ODE (n6n); FID_TS_ODE (n6n5); FID_TS_ODE (n6n7); FID_TS_ODE (n6n); FID_TS_ODE (n7n); FID_TS_ODE (n7n2); FID_TS_ODE (n7n3); FID_TS_ODE (n7n); FID_TS_ODE (n7n5); FID_TS_ODE (n7n6); FID_TS_ODE (n7n);

95 FEM3D 95 行列コネクティビティ生成 : MAT_CO0(/) FID_TS_ODE (nn); FID_TS_ODE (nn2); FID_TS_ODE (nn3); FID_TS_ODE (nn); FID_TS_ODE (nn5); FID_TS_ODE (nn6); FID_TS_ODE (nn7); for(n=0;n<;n++){ =ILU[n]; for (=0;<;++){ COL[]=IALU[n][]; msort(colcol2); for(=;>0;--){ IALU[n][-]= COL[COL2[-]-]; 各節点において IALU[][] が小さい番号から大きい番号に並ぶようにソート ( 単純なバブルソート ) せいぜい 00 程度のものをソートする

96 FEM3D 96 CRS 形式への変換 :MAT_CO #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE* fp_log; vod MAT_CO() { nt ; ndelu=(kit*)allocate_vector(seof(kit)+); for(=0;<+;++) ndelu[]=0; for(=0;<;++){ ndelu[+]=ndelu[]+ilu[]; PLU=ndeLU[]; temlu=(kit*)allocate_vector(seof(kit)plu); for(=0;<;++){ for(=0;<ilu[];++){ =+ndelu[]; temlu[]=ialu[][]-; deallocate_vector(ilu); deallocate_vector(ialu); C nde[ ] nde[0] 0 FORTRA nde(0) 0 0 ILU[ ] nde( ) ILU( )

97 FEM3D 97 CRS 形式への変換 :MAT_CO #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE* fp_log; vod MAT_CO() { nt ; ndelu=(kit*)allocate_vector(seof(kit)+); for(=0;<+;++) ndelu[]=0; for(=0;<;++){ ndelu[+]=ndelu[]+ilu[]; PLU=ndeLU[]; temlu=(kit*)allocate_vector(seof(kit)plu); for(=0;<;++){ for(=0;<ilu[];++){ =+ndelu[]; temlu[]=ialu[][]-; PLU=nde[] tem のサイズ非ゼロ非対角成分総数 deallocate_vector(ilu); deallocate_vector(ialu); MAT_CO

98 FEM3D 9 CRS 形式への変換 :MAT_CO #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE* fp_log; vod MAT_CO() { nt ; ndelu=(kit*)allocate_vector(seof(kit)+); for(=0;<+;++) ndelu[]=0; for(=0;<;++){ ndelu[+]=ndelu[]+ilu[]; PLU=ndeLU[]; temlu=(kit*)allocate_vector(seof(kit)plu); for(=0;<;++){ for(=0;<ilu[];++){ =+ndelu[]; temlu[]=ialu[][]-; tem に 0 から始まる節点番号を記憶 deallocate_vector(ilu); deallocate_vector(ialu); MAT_CO

99 FEM3D 99 CRS 形式への変換 :MAT_CO #nclude <stdo.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE* fp_log; vod MAT_CO() { nt ; ndelu=(kit*)allocate_vector(seof(kit)+); for(=0;<+;++) ndelu[]=0; for(=0;<;++){ ndelu[+]=ndelu[]+ilu[]; PLU=ndeLU[]; temlu=(kit*)allocate_vector(seof(kit)plu); for(=0;<;++){ for(=0;<ilu[];++){ =+ndelu[]; temlu[]=ialu[][]-; deallocate_vector(ilu); deallocate_vector(ialu); これらはもはや不要 MAT_CO

100 FEM3D 00 全体処理 /** program heat3d **/ #nclude <stdo.h> #nclude <stdlb.h> FILE* fp_log; #defne GLOBAL_VALUE_DEFIE #nclude "pfem_utl.h" //#nclude "solver.h" etern vod IPUT_CTL(); etern vod IPUT_GRID(); etern vod MAT_CO0(); etern vod MAT_CO(); etern vod MAT_ASS_MAI(); etern vod MAT_ASS_BC(); etern vod SOLVE(); etern vod OUTPUT_UCD(); nt man() { IPUT_CTL(); IPUT_GRID(); MAT_CO0(); MAT_CO(); MAT_ASS_MAI(); MAT_ASS_BC() ; SOLVE(); OUTPUT_UCD() ;

101 FEM3D 0 MAT_ASS_MAI: 全体構成 do pn= 2 ガウス積分点番号 ( 方向 ) do jpn= 2 ガウス積分点番号 ( 方向 ) do pn= 2 ガウス積分点番号 ( 方向 ) ガウス積分点 ( 個 ) における形状関数 およびその 自然座標系 における微分の算出 enddo enddo enddo do cel= ICELTOT 要素ループ 節点の座標から ガウス積分点における 形状関数の 全体座標系 における微分 およびヤコビアンを算出 (JACOBI) do e= 局所節点番号 do je= 局所節点番号全体節点番号 :p jp A pjp のtemLUにおけるアドレス : j e do pn= 2 ガウス積分点番号 ( 方向 ) do jpn= 2 ガウス積分点番号 ( 方向 ) do pn= 2 ガウス積分点番号 ( 方向 ) 要素積分 要素行列成分計算 全体行列への足しこみ enddo enddo enddo enddo enddo enddo e

102 FEM3D 02 係数行列 :MAT_ASS_MAI(/6) #nclude <stdo.h> #nclude <math.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE *fp_log; etern vod JACOBI(); vod MAT_ASS_MAI() { nt ; nt pjpp; nt pnjpnpn; nt cel; nt eje; nt SE; nt nn2n3nn5n6n7n; double SH; double QPQMEPEMTPTM; double XX2X3XX5X6X7X; double YY2Y3YY5Y6Y7Y; double ZZ2Z3ZZ5Z6Z7Z; double PXPYPZPXjPYjPZj; double COD0 QV0 QVC COEFj; double coef; KIT nodlocal[]; AMAT=(KREAL*) allocate_vector(seof(kreal)plu); 係数行列 ( 非零非対角成分 ) B =(KREAL*) allocate_vector(seof(kreal) ); 右辺ベクトル D =(KREAL*) allocate_vector(seof(kreal)); 解ベクトル X =(KREAL*) allocate_vector(seof(kreal)); 係数行列 ( 対角成分 ) for(=0;<plu;++) AMAT[]=0.0; for(=0;< ;++) B[]=0.0; for(=0;< ;++) D[]=0.0; for(=0;< ;++) X[]=0.0; WEI[0]= e0; WEI[]= e0; POS[0]= e0; POS[]= e0;

103 FEM3D 03 係数行列 :MAT_ASS_MAI(/6) #nclude <stdo.h> #nclude <math.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE *fp_log; etern vod JACOBI(); vod MAT_ASS_MAI() { nt ; nt pjpp; nt pnjpnpn; nt cel; nt eje; nt SE; nt nn2n3nn5n6n7n; double SH; double QPQMEPEMTPTM; double XX2X3XX5X6X7X; double YY2Y3YY5Y6Y7Y; double ZZ2Z3ZZ5Z6Z7Z; double PXPYPZPXjPYjPZj; double COD0 QV0 QVC COEFj; double coef; KIT nodlocal[]; AMAT=(KREAL*) allocate_vector(seof(kreal)plu); B =(KREAL*) allocate_vector(seof(kreal) ); D =(KREAL*) allocate_vector(seof(kreal)); X =(KREAL*) allocate_vector(seof(kreal)); for(=0;<plu;++) AMAT[]=0.0; for(=0;< ;++) B[]=0.0; for(=0;< ;++) D[]=0.0; for(=0;< ;++) X[]=0.0; WEI[0]= e0; WEI[]= e0; POS[0]= e0; POS[]= e0; POS: WEI: 積分点座標重み係数

104 FEM3D 0 係数行列 :MAT_ASS_MAI(2/6) /*** IIT. PQ - st-order dervatve of shape functon b QSI PE - st-order dervatve of shape functon b ETA PT - st-order dervatve of shape functon b ZET ***/ for(p=0;p<2;p++){ for(jp=0;jp<2;jp++){ for(p=0;p<2;p++){ QP=.e0 + POS[p]; QM=.e0 - POS[p]; EP=.e0 + POS[jp]; EM=.e0 - POS[jp]; TP=.e0 + POS[p]; TM=.e0 - POS[p]; SHAPE[p][jp][p][0]= Oth * QM * EM * TM; SHAPE[p][jp][p][]= Oth * QP * EM * TM; SHAPE[p][jp][p][2]= Oth * QP * EP * TM; SHAPE[p][jp][p][3]= Oth * QM * EP * TM; SHAPE[p][jp][p][]= Oth * QM * EM * TP; SHAPE[p][jp][p][5]= Oth * QP * EM * TP; SHAPE[p][jp][p][6]= Oth * QP * EP * TP; SHAPE[p][jp][p][7]= Oth * QM * EP * TP;

105 FEM3D 05 係数行列 :MAT_ASS_MAI(2/6) /*** IIT. PQ - st-order dervatve of shape functon b QSI PE - st-order dervatve of shape functon b ETA PT - st-order dervatve of shape functon b ZET ***/ for(p=0;p<2;p++){ for(jp=0;jp<2;jp++){ for(p=0;p<2;p++){ QP=.e0 + POS[p]; QM=.e0 - POS[p]; EP=.e0 + POS[jp]; EM=.e0 - POS[jp]; TP=.e0 + POS[p]; TM=.e0 - POS[p]; SHAPE[p][jp][p][0]= Oth * QM * EM * TM; SHAPE[p][jp][p][]= Oth * QP * EM * TM; SHAPE[p][jp][p][2]= Oth * QP * EP * TM; SHAPE[p][jp][p][3]= Oth * QM * EP * TM; SHAPE[p][jp][p][]= Oth * QM * EM * TP; SHAPE[p][jp][p][5]= Oth * QP * EM * TP; SHAPE[p][jp][p][6]= Oth * QP * EP * TP; SHAPE[p][jp][p][7]= Oth * QM * EP * TP; QP EP TP QM j EM j j TM

106 FEM3D 06 係数行列 :MAT_ASS_MAI(2/6) /*** IIT. PQ - st-order dervatve of shape functon b QSI PE - st-order dervatve of shape functon b ETA PT - st-order dervatve of shape functon b ZET ***/ for(p=0;p<2;p++){ for(jp=0;jp<2;jp++){ for(p=0;p<2;p++){ QP=.e0 + POS[p]; QM=.e0 - POS[p]; EP=.e0 + POS[jp]; EM=.e0 - POS[jp]; TP=.e0 + POS[p]; TM=.e0 - POS[p]; SHAPE[p][jp][p][0]= Oth * QM * EM * TM; SHAPE[p][jp][p][]= Oth * QP * EM * TM; SHAPE[p][jp][p][2]= Oth * QP * EP * TM; SHAPE[p][jp][p][3]= Oth * QM * EP * TM; SHAPE[p][jp][p][]= Oth * QM * EM * TP; SHAPE[p][jp][p][5]= Oth * QP * EM * TP; SHAPE[p][jp][p][6]= Oth * QP * EP * TP; SHAPE[p][jp][p][7]= Oth * QM * EP * TP;

107 FEM3D 07 係数行列 :MAT_ASS_MAI(2/6) /*** IIT. PQ - st-order dervatve of shape functon b QSI PE - st-order dervatve of shape functon b ETA PT - st-order dervatve of shape functon b ZET ***/ for(p=0;p<2;p++){ for(jp=0;jp<2;jp++){ for(p=0;p<2;p++){ QP=.e0 + POS[p]; QM=.e0 - POS[p]; EP=.e0 + POS[jp]; EM=.e0 - POS[jp]; TP=.e0 + POS[p]; TM=.e0 - POS[p]; SHAPE[p][jp][p][0]= Oth * QM * EM * TM; SHAPE[p][jp][p][]= Oth * QP * EM * TM; SHAPE[p][jp][p][2]= Oth * QP * EP * TM; SHAPE[p][jp][p][3]= Oth * QM * EP * TM; SHAPE[p][jp][p][]= Oth * QM * EM * TP; SHAPE[p][jp][p][5]= Oth * QP * EM * TP; SHAPE[p][jp][p][6]= Oth * QP * EP * TP; SHAPE[p][jp][p][7]= Oth * QM * EP * TP; ) ( ) ( ) ( ) ( 3 2 ) ( ) ( ) ( ) ( 7 6 5

108 FEM3D 0 係数行列 :MAT_ASS_MAI(3/6) PQ[jp][p][0]= - Oth * EM * TM; PQ[jp][p][]= + Oth * EM * TM; PQ[jp][p][2]= + Oth * EP * TM; PQ[jp][p][3]= - Oth * EP * TM; PQ[jp][p][]= - Oth * EM * TP; PQ[jp][p][5]= + Oth * EM * TP; PQ[jp][p][6]= + Oth * EP * TP; PQ[jp][p][7]= - Oth * EP * TP; PE[p][p][0]= - Oth * QM * TM; PE[p][p][]= - Oth * QP * TM; PE[p][p][2]= + Oth * QP * TM; PE[p][p][3]= + Oth * QM * TM; PE[p][p][]= - Oth * QM * TP; PE[p][p][5]= - Oth * QP * TP; PE[p][p][6]= + Oth * QP * TP; PE[p][p][7]= + Oth * QM * TP; PT[p][jp][0]= - Oth * QM * EM; PT[p][jp][]= - Oth * QP * EM; PT[p][jp][2]= - Oth * QP * EP; PT[p][jp][3]= - Oth * QM * EP; PT[p][jp][]= + Oth * QM * EM; PT[p][jp][5]= + Oth * QP * EM; PT[p][jp][6]= + Oth * QP * EP; PT[p][jp][7]= + Oth * QM * EP; for( cel=0;cel< ICELTOT;cel++){ COD0= COD; n=icelod[cel][0]; n2=icelod[cel][]; n3=icelod[cel][2]; n=icelod[cel][3]; n5=icelod[cel][]; n6=icelod[cel][5]; n7=icelod[cel][6]; n=icelod[cel][7]; ( j ) l PQ( j ) ( j ) PE( ) l ( j ) PT ( l j) ( j ) ( j ) 2 ( j ) 3 ( j ) 3 ( j ) j j j j における形状関数の一階微分

109 FEM3D 09 係数行列 :MAT_ASS_MAI(3/6) PQ[jp][p][0]= - Oth * EM * TM; PQ[jp][p][]= + Oth * EM * TM; PQ[jp][p][2]= + Oth * EP * TM; PQ[jp][p][3]= - Oth * EP * TM; PQ[jp][p][]= - Oth * EM * TP; PQ[jp][p][5]= + Oth * EM * TP; PQ[jp][p][6]= + Oth * EP * TP; PQ[jp][p][7]= - Oth * EP * TP; PE[p][p][0]= - Oth * QM * TM; PE[p][p][]= - Oth * QP * TM; PE[p][p][2]= + Oth * QP * TM; PE[p][p][3]= + Oth * QM * TM; PE[p][p][]= - Oth * QM * TP; PE[p][p][5]= - Oth * QP * TP; PE[p][p][6]= + Oth * QP * TP; PE[p][p][7]= + Oth * QM * TP; PT[p][jp][0]= - Oth * QM * EM; PT[p][jp][]= - Oth * QP * EM; PT[p][jp][2]= - Oth * QP * EP; PT[p][jp][3]= - Oth * QM * EP; PT[p][jp][]= + Oth * QM * EM; PT[p][jp][5]= + Oth * QP * EM; PT[p][jp][6]= + Oth * QP * EP; PT[p][jp][7]= + Oth * QM * EP; for( cel=0;cel< ICELTOT;cel++){ COD0= COD; n=icelod[cel][0]; n2=icelod[cel][]; n3=icelod[cel][2]; n=icelod[cel][3]; n5=icelod[cel][]; n6=icelod[cel][5]; n7=icelod[cel][6]; n=icelod[cel][7];

110 FEM3D 0 係数行列 :MAT_ASS_MAI(/6) nodlocal[0]= n; nodlocal[]= n2; nodlocal[2]= n3; nodlocal[3]= n; nodlocal[]= n5; nodlocal[5]= n6; nodlocal[6]= n7; nodlocal[7]= n; X=XYZ[n-][0]; X2=XYZ[n2-][0]; X3=XYZ[n3-][0]; X=XYZ[n-][0]; X5=XYZ[n5-][0]; X6=XYZ[n6-][0]; X7=XYZ[n7-][0]; X=XYZ[n-][0]; Y=XYZ[n-][]; Y2=XYZ[n2-][]; Y3=XYZ[n3-][]; Y=XYZ[n-][]; Y5=XYZ[n5-][]; Y6=XYZ[n6-][]; Y7=XYZ[n7-][]; Y=XYZ[n-][]; 節点の節点番号 QVC= Oth*(X+X2+X3+X+X5+X6+X7+X+Y+Y2+Y3+Y+Y5+Y6+Y7+Y); Z=XYZ[n-][2]; Z2=XYZ[n2-][2]; Z3=XYZ[n3-][2]; Z=XYZ[n-][2]; Z5=XYZ[n5-][2]; Z6=XYZ[n6-][2]; Z7=XYZ[n7-][2]; Z=XYZ[n-][2]; JACOBI(DETJ PQ PE PT PX PY PZ X X2 X3 X X5 X6 X7 X Y Y2 Y3 Y Y5 Y6 Y7 Y Z Z2 Z3 Z Z5 Z6 Z7 Z);

111 FEM3D 係数行列 :MAT_ASS_MAI(/6) nodlocal[0]= n; nodlocal[]= n2; nodlocal[2]= n3; nodlocal[3]= n; nodlocal[]= n5; nodlocal[5]= n6; nodlocal[6]= n7; nodlocal[7]= n; X=XYZ[n-][0]; X2=XYZ[n2-][0]; X3=XYZ[n3-][0]; X=XYZ[n-][0]; X5=XYZ[n5-][0]; X6=XYZ[n6-][0]; X7=XYZ[n7-][0]; X=XYZ[n-][0]; Y=XYZ[n-][]; Y2=XYZ[n2-][]; Y3=XYZ[n3-][]; Y=XYZ[n-][]; Y5=XYZ[n5-][]; Y6=XYZ[n6-][]; Y7=XYZ[n7-][]; Y=XYZ[n-][]; 節点の X 座標 節点の Y 座標 座標値 : 節点番号から 引く QVC= Oth*(X+X2+X3+X+X5+X6+X7+X+Y+Y2+Y3+Y+Y5+Y6+Y7+Y); Z=XYZ[n-][2]; Z2=XYZ[n2-][2]; Z3=XYZ[n3-][2]; Z=XYZ[n-][2]; Z5=XYZ[n5-][2]; Z6=XYZ[n6-][2]; Z7=XYZ[n7-][2]; Z=XYZ[n-][2]; 節点の Z 座標 JACOBI(DETJ PQ PE PT PX PY PZ X X2 X3 X X5 X6 X7 X Y Y2 Y3 Y Y5 Y6 Y7 Y Z Z2 Z3 Z Z5 Z6 Z7 Z);

112 FEM3D 2 係数行列 :MAT_ASS_MAI(/6) nodlocal[0]= n; nodlocal[]= n2; nodlocal[2]= n3; nodlocal[3]= n; nodlocal[]= n5; nodlocal[5]= n6; nodlocal[6]= n7; nodlocal[7]= n; X=XYZ[n-][0]; X2=XYZ[n2-][0]; X3=XYZ[n3-][0]; X=XYZ[n-][0]; X5=XYZ[n5-][0]; X6=XYZ[n6-][0]; X7=XYZ[n7-][0]; X=XYZ[n-][0]; Y=XYZ[n-][]; Y2=XYZ[n2-][]; Y3=XYZ[n3-][]; Y=XYZ[n-][]; Y5=XYZ[n5-][]; Y6=XYZ[n6-][]; Y7=XYZ[n7-][]; Y=XYZ[n-][]; 節点の X 座標 節点の Y 座標 座標値 : 節点番号から 引く QVC= Oth*(X+X2+X3+X+X5+X6+X7+X+Y+Y2+Y3+Y+Y5+Y6+Y7+Y); Z=XYZ[n-][2]; Z2=XYZ[n2-][2]; Z3=XYZ[n3-][2]; Z=XYZ[n-][2]; Z5=XYZ[n5-][2]; Z6=XYZ[n6-][2]; Z7=XYZ[n7-][2]; Z=XYZ[n-][2]; T T JACOBI(DETJ PQ PE PT PX PY PZ X X2 X3 X X5 X6 X7 X Y Y2 Y3 Y Y5 Y6 Y7 Y Z Z2 Z3 Z Z5 Z6 Z7 Z); Q QVOL C C T Q 0 体積当たり発熱量は位置 ( メッシュの中心の座標 c c ) に依存

113 FEM3D 3 係数行列 :MAT_ASS_MAI(/6) nodlocal[0]= n; nodlocal[]= n2; nodlocal[2]= n3; nodlocal[3]= n; nodlocal[]= n5; nodlocal[5]= n6; nodlocal[6]= n7; nodlocal[7]= n; X=XYZ[n-][0]; X2=XYZ[n2-][0]; X3=XYZ[n3-][0]; X=XYZ[n-][0]; X5=XYZ[n5-][0]; X6=XYZ[n6-][0]; X7=XYZ[n7-][0]; X=XYZ[n-][0]; Y=XYZ[n-][]; Y2=XYZ[n2-][]; Y3=XYZ[n3-][]; Y=XYZ[n-][]; Y5=XYZ[n5-][]; Y6=XYZ[n6-][]; Y7=XYZ[n7-][]; Y=XYZ[n-][]; 座標値 : 節点番号から 引く QVC= Oth*(X+X2+X3+X+X5+X6+X7+X+Y+Y2+Y3+Y+Y5+Y6+Y7+Y); Z=XYZ[n-][2]; Z2=XYZ[n2-][2]; Z3=XYZ[n3-][2]; Z=XYZ[n-][2]; Z5=XYZ[n5-][2]; Z6=XYZ[n6-][2]; Z7=XYZ[n7-][2]; Z=XYZ[n-][2]; T QVC C C JACOBI(DETJ PQ PE PT PX PY PZ X X2 X3 X X5 X6 X7 X Y Y2 Y3 Y Y5 Y6 Y7 Y Z Z2 Z3 Z Z5 Z6 Z7 Z); Q T QVOL C C T Q 0

114 FEM3D 係数行列 :MAT_ASS_MAI(/6) nodlocal[0]= n; nodlocal[]= n2; nodlocal[2]= n3; nodlocal[3]= n; nodlocal[]= n5; nodlocal[5]= n6; nodlocal[6]= n7; nodlocal[7]= n; X=XYZ[n-][0]; X2=XYZ[n2-][0]; X3=XYZ[n3-][0]; X=XYZ[n-][0]; X5=XYZ[n5-][0]; X6=XYZ[n6-][0]; X7=XYZ[n7-][0]; X=XYZ[n-][0]; Y=XYZ[n-][]; Y2=XYZ[n2-][]; Y3=XYZ[n3-][]; Y=XYZ[n-][]; Y5=XYZ[n5-][]; Y6=XYZ[n6-][]; Y7=XYZ[n7-][]; Y=XYZ[n-][]; QVC= Oth*(X+X2+X3+X+X5+X6+X7+X+Y+Y2+Y3+Y+Y5+Y6+Y7+Y); Z=XYZ[n-][2]; Z2=XYZ[n2-][2]; Z3=XYZ[n3-][2]; Z=XYZ[n-][2]; Z5=XYZ[n5-][2]; Z6=XYZ[n6-][2]; Z7=XYZ[n7-][2]; Z=XYZ[n-][2]; JACOBI(DETJ PQ PE PT PX PY PZ X X2 X3 X X5 X6 X7 X Y Y2 Y3 Y Y5 Y6 Y7 Y Z Z2 Z3 Z Z5 Z6 Z7 Z);

115 FEM3D 5 JACOBI(/) #nclude <stdo.h> #nclude <math.h> #nclude "precson.h" #nclude "allocate.h" /*** *** JACOBI ***/ vod JACOBI( KREAL DETJ[2][2][2] KREAL PQ[2][2][]KREAL PE[2][2][]KREAL PT[2][2][] KREAL PX[2][2][2][]KREAL PY[2][2][2][]KREAL PZ[2][2][2][] KREAL XKREAL X2KREAL X3KREAL XKREAL X5KREAL X6KREAL X7KREAL X KREAL YKREAL Y2KREAL Y3KREAL YKREAL Y5KREAL Y6KREAL Y7KREAL Y KREAL ZKREAL Z2KREAL Z3KREAL ZKREAL Z5KREAL Z6KREAL Z7KREAL Z) { /** calculates JACOBIA & IVERSE JACOBIA d/d d/d & d/d **/ nt pjpp; double dxdqdydqdzdqdxdedydedzdedxdtdydtdzdt; double coef; double aa2a3a2a22a23a3a32a33; for(p=0;p<2;p++){ for(jp=0;jp<2;jp++){ for(p=0;p<2;p++){ PX[p][jp][p][0]=0.0; PX[p][jp][p][]=0.0; PX[p][jp][p][2]=0.0; PX[p][jp][p][3]=0.0; PX[p][jp][p][]=0.0; PX[p][jp][p][5]=0.0; PX[p][jp][p][6]=0.0; PX[p][jp][p][7]=0.0; l l l 入力 l ~ 出力 l l l det J l l l 各ガウス積分点 [p][jp][p] における値

116 FEM3D 6 自然座標系における偏微分 (/) 偏微分の公式より以下のようになる : ) ( ) ( ) ( は定義より簡単に求められるがを実際の計算で使用する

117 FEM3D 7 自然座標系における偏微分 (2/) マトリックス表示すると : J J : ヤコビのマトリクス (Jacob matr Jacoban) J J J J J J J J J J

118 FEM3D 自然座標系における偏微分 (3/) の定義より簡単に求められる J J J J J J J J J

119 FEM3D 9 JACOBI(2/) PY[p][jp][p][0]=0.0; PY[p][jp][p][]=0.0; PY[p][jp][p][2]=0.0; PY[p][jp][p][3]=0.0; PY[p][jp][p][]=0.0; PY[p][jp][p][5]=0.0; PY[p][jp][p][6]=0.0; PY[p][jp][p][7]=0.0; PZ[p][jp][p][0]=0.0; PZ[p][jp][p][]=0.0; PZ[p][jp][p][2]=0.0; PZ[p][jp][p][3]=0.0; PZ[p][jp][p][]=0.0; PZ[p][jp][p][5]=0.0; PZ[p][jp][p][6]=0.0; PZ[p][jp][p][7]=0.0; J J J J 2 3 J J J J J J /** **/ DETERMIAT of the JACOBIA dxdq = PQ[jp][p][0]*X + PQ[jp][p][]*X2 + PQ[jp][p][2]*X3 + PQ[jp][p][3]*X + PQ[jp][p][]*X5 + PQ[jp][p][5]*X6 + PQ[jp][p][6]*X7 + PQ[jp][p][7]*X; dydq = PQ[jp][p][0]*Y + PQ[jp][p][]*Y2 + PQ[jp][p][2]*Y3 + PQ[jp][p][3]*Y + PQ[jp][p][]*Y5 + PQ[jp][p][5]*Y6 + PQ[jp][p][6]*Y7 + PQ[jp][p][7]*Y; dzdq = PQ[jp][p][0]*Z + PQ[jp][p][]*Z2 + PQ[jp][p][2]*Z3 + PQ[jp][p][3]*Z + PQ[jp][p][]*Z5 + PQ[jp][p][5]*Z6 + PQ[jp][p][6]*Z7 + PQ[jp][p][7]*Z; dxde = PE[p][p][0]*X + PE[p][p][]*X2 + PE[p][p][2]*X3 + PE[p][p][3]*X + PE[p][p][]*X5 + PE[p][p][5]*X6 + PE[p][p][6]*X7 + PE[p][p][7]*X; dxdq J dydq J dzdq J 2 3

120 FEM3D 20 /** IVERSE JACOBIA **/ JACOBI(3/) dyde = PE[p][p][0]*Y + PE[p][p][]*Y2 + PE[p][p][2]*Y3 + PE[p][p][3]*Y + PE[p][p][]*Y5 + PE[p][p][5]*Y6 + PE[p][p][6]*Y7 + PE[p][p][7]*Y; dzde = PE[p][p][0]*Z + PE[p][p][]*Z2 + PE[p][p][2]*Z3 + PE[p][p][3]*Z + PE[p][p][]*Z5 + PE[p][p][5]*Z6 + PE[p][p][6]*Z7 + PE[p][p][7]*Z; dxdt = PT[p][jp][0]*X + PT[p][jp][]*X2 + PT[p][jp][2]*X3 + PT[p][jp][3]*X + PT[p][jp][]*X5 + PT[p][jp][5]*X6 + PT[p][jp][6]*X7 + PT[p][jp][7]*X; dydt = PT[p][jp][0]*Y + PT[p][jp][]*Y2 + PT[p][jp][2]*Y3 + PT[p][jp][3]*Y + PT[p][jp][]*Y5 + PT[p][jp][5]*Y6 + PT[p][jp][6]*Y7 + PT[p][jp][7]*Y; dzdt = PT[p][jp][0]*Z + PT[p][jp][]*Z2 + PT[p][jp][2]*Z3 + PT[p][jp][3]*Z + PT[p][jp][]*Z5 + PT[p][jp][5]*Z6 + PT[p][jp][6]*Z7 + PT[p][jp][7]*Z; DETJ[p][jp][p]= dxdq*(dyde*dzdt-dzde*dydt) + dydq*(dzde*dxdt-dxde*dzdt) + dzdq*(dxde*dydt-dyde*dxdt); coef=.0 / DETJ[p][jp][p]; a= coef * ( dyde*dzdt - dzde*dydt ); a2= coef * ( dzdq*dydt - dydq*dzdt ); a3= coef * ( dydq*dzde - dzdq*dyde ); a2= coef * ( dzde*dxdt - dxde*dzdt ); a22= coef * ( dxdq*dzdt - dzdq*dxdt ); a23= coef * ( dzdq*dxde - dxdq*dzde ); a3= coef * ( dxde*dydt - dyde*dxdt ); a32= coef * ( dydq*dxdt - dxdq*dydt ); a33= coef * ( dxdq*dyde - dydq*dxde ); DETJ[p][jp][p]=fabs(DETJ[p][jp][p]); J J J J 2 3 J J J J J J

121 FEM3D 2 自然座標系における偏微分 (/) 従って下記のように偏微分を計算できる ヤコビアン (3 3 行列 ) の逆行列を求める J

122 FEM3D 22 /** IVERSE JACOBIA JACOBI(3/) dyde = PE[p][p][0]*Y + PE[p][p][]*Y2 + PE[p][p][2]*Y3 + PE[p][p][3]*Y + PE[p][p][]*Y5 + PE[p][p][5]*Y6 + PE[p][p][6]*Y7 + PE[p][p][7]*Y; dzde = PE[p][p][0]*Z + PE[p][p][]*Z2 + PE[p][p][2]*Z3 + PE[p][p][3]*Z + PE[p][p][]*Z5 + PE[p][p][5]*Z6 + PE[p][p][6]*Z7 + PE[p][p][7]*Z; dxdt = PT[p][jp][0]*X + PT[p][jp][]*X2 + PT[p][jp][2]*X3 + PT[p][jp][3]*X + PT[p][jp][]*X5 + PT[p][jp][5]*X6 + PT[p][jp][6]*X7 + PT[p][jp][7]*X; dydt = PT[p][jp][0]*Y + PT[p][jp][]*Y2 + PT[p][jp][2]*Y3 + PT[p][jp][3]*Y + PT[p][jp][]*Y5 + PT[p][jp][5]*Y6 + PT[p][jp][6]*Y7 + PT[p][jp][7]*Y; dzdt = PT[p][jp][0]*Z + PT[p][jp][]*Z2 + PT[p][jp][2]*Z3 + PT[p][jp][3]*Z + PT[p][jp][]*Z5 + PT[p][jp][5]*Z6 + PT[p][jp][6]*Z7 + PT[p][jp][7]*Z; DETJ[p][jp][p]= dxdq*(dyde*dzdt-dzde*dydt) + dydq*(dzde*dxdt-dxde*dzdt) + dzdq*(dxde*dydt-dyde*dxdt); **/ coef=.0 / DETJ[p][jp][p]; a= coef * ( dyde*dzdt - dzde*dydt ); a2= coef * ( dzdq*dydt - dydq*dzdt ); a3= coef * ( dydq*dzde - dzdq*dyde ); a2= coef * ( dzde*dxdt - dxde*dzdt ); a22= coef * ( dxdq*dzdt - dzdq*dxdt ); a23= coef * ( dzdq*dxde - dxdq*dzde ); a3= coef * ( dxde*dydt - dyde*dxdt ); a32= coef * ( dydq*dxdt - dxdq*dydt ); a33= coef * ( dxdq*dyde - dydq*dxde ); J a a a 2 3 a a a a a a DETJ[p][jp][p]=fabs(DETJ[p][jp][p]);

123 FEM3D 23 JACOBI(/) /** set the d/dx d/dy & d/dz components **/ PX[p][jp][p][0]=a*PQ[jp][p][0]+a2*PE[p][p][0]+a3*PT[p][jp][0]; PX[p][jp][p][]=a*PQ[jp][p][]+a2*PE[p][p][]+a3*PT[p][jp][]; PX[p][jp][p][2]=a*PQ[jp][p][2]+a2*PE[p][p][2]+a3*PT[p][jp][2]; PX[p][jp][p][3]=a*PQ[jp][p][3]+a2*PE[p][p][3]+a3*PT[p][jp][3]; PX[p][jp][p][]=a*PQ[jp][p][]+a2*PE[p][p][]+a3*PT[p][jp][]; PX[p][jp][p][5]=a*PQ[jp][p][5]+a2*PE[p][p][5]+a3*PT[p][jp][5]; PX[p][jp][p][6]=a*PQ[jp][p][6]+a2*PE[p][p][6]+a3*PT[p][jp][6]; PX[p][jp][p][7]=a*PQ[jp][p][7]+a2*PE[p][p][7]+a3*PT[p][jp][7]; PY[p][jp][p][0]=a2*PQ[jp][p][0]+a22*PE[p][p][0]+a23*PT[p][jp][0]; PY[p][jp][p][]=a2*PQ[jp][p][]+a22*PE[p][p][]+a23*PT[p][jp][]; PY[p][jp][p][2]=a2*PQ[jp][p][2]+a22*PE[p][p][2]+a23*PT[p][jp][2]; PY[p][jp][p][3]=a2*PQ[jp][p][3]+a22*PE[p][p][3]+a23*PT[p][jp][3]; PY[p][jp][p][]=a2*PQ[jp][p][]+a22*PE[p][p][]+a23*PT[p][jp][]; PY[p][jp][p][5]=a2*PQ[jp][p][5]+a22*PE[p][p][5]+a23*PT[p][jp][5]; PY[p][jp][p][6]=a2*PQ[jp][p][6]+a22*PE[p][p][6]+a23*PT[p][jp][6]; PY[p][jp][p][7]=a2*PQ[jp][p][7]+a22*PE[p][p][7]+a23*PT[p][jp][7]; PZ[p][jp][p][0]=a3*PQ[jp][p][0]+a32*PE[p][p][0]+a33*PT[p][jp][0]; PZ[p][jp][p][]=a3*PQ[jp][p][]+a32*PE[p][p][]+a33*PT[p][jp][]; PZ[p][jp][p][2]=a3*PQ[jp][p][2]+a32*PE[p][p][2]+a33*PT[p][jp][2]; PZ[p][jp][p][3]=a3*PQ[jp][p][3]+a32*PE[p][p][3]+a33*PT[p][jp][3]; PZ[p][jp][p][]=a3*PQ[jp][p][]+a32*PE[p][p][]+a33*PT[p][jp][]; PZ[p][jp][p][5]=a3*PQ[jp][p][5]+a32*PE[p][p][5]+a33*PT[p][jp][5]; PZ[p][jp][p][6]=a3*PQ[jp][p][6]+a32*PE[p][p][6]+a33*PT[p][jp][6]; PZ[p][jp][p][7]=a3*PQ[jp][p][7]+a32*PE[p][p][7]+a33*PT[p][jp][7]; a a a a a a a a a

124 FEM3D 2 係数行列 :MAT_ASS_MAI(5/6) /** COSTRUCT the GLOBAL MATRIX **/ for(e=0;e<;e++){ p=nodlocal[e]; for(je=0;je<;je++){ jp=nodlocal[je]; =-; f( jp!= p ){ S=ndeLU[p-]; E=ndeLU[p ]; for( =S;<E;++){ f( temlu[] == jp- ){ =; brea; 全体行列の非対角成分 A p jp :tem におけるアドレス p= nodlocal[e] jp= nodlocal[je] から始まる節点番号 2

125 FEM3D 25 要素マトリクス : 行列 j j j

126 FEM3D 26 係数行列 :MAT_ASS_MAI(5/6) /** COSTRUCT the GLOBAL MATRIX **/ for(e=0;e<;e++){ p=nodlocal[e]; for(je=0;je<;je++){ jp=nodlocal[je]; =-; f( jp!= p ){ S=ndeLU[p-]; E=ndeLU[p ]; for( =S;<E;++){ f( temlu[] == jp- ){ =; brea; 要素マトリクス ( e ~j e ) 全体マトリクス ( p ~j p ) の関係 :temlu におけるアドレス

127 FEM3D 27 係数行列 :MAT_ASS_MAI(6/6) QV0= 0.e0; COEFj= 0.e0; for(pn=0;pn<2;pn++){ for(jpn=0;jpn<2;jpn++){ for(pn=0;pn<2;pn++){ coef= fabs(detj[pn][jpn][pn])*wei[pn]*wei[jpn]*wei[pn]; PX= PX[pn][jpn][pn][e]; PY= PY[pn][jpn][pn][e]; PZ= PZ[pn][jpn][pn][e]; PXj= PX[pn][jpn][pn][je]; PYj= PY[pn][jpn][pn][je]; PZj= PZ[pn][jpn][pn][je]; COEFj+= coef*cod0*(px*pxj+py*pyj+pz*pzj); SH= SHAPE[pn][jpn][pn][e]; QV0+= SH * QVOL * coef; f (jp==p) { D[p-]+= COEFj; B[p-]+= QV0*QVC; f (jp!= p) { AMAT[]+= COEFj; j j j det J ddd

128 FEM3D 2 係数行列 :MAT_ASS_MAI(6/6) QV0= 0.e0; COEFj= 0.e0; for(pn=0;pn<2;pn++){ for(jpn=0;jpn<2;jpn++){ for(pn=0;pn<2;pn++){ coef= fabs(detj[pn][jpn][pn])*wei[pn]*wei[jpn]*wei[pn]; PX= PX[pn][jpn][pn][e]; PY= PY[pn][jpn][pn][e]; PZ= PZ[pn][jpn][pn][e]; PXj= PX[pn][jpn][pn][je]; PYj= PY[pn][jpn][pn][je]; PZj= PZ[pn][jpn][pn][je]; COEFj+= coef*cod0*(px*pxj+py*pyj+pz*pzj); SH= SHAPE[pn][jpn][pn][e]; QV0+= SH * QVOL * coef; f (jp==p) { D[p-]+= COEFj; B[p-]+= QV0*QVC; f (jp!= p) { AMAT[]+= COEFj; j j M j L f W W W d d d f I ) ( ) ( d d d J j j j det

129 FEM3D 29 係数行列 :MAT_ASS_MAI(6/6) QV0= 0.e0; COEFj= 0.e0; for(pn=0;pn<2;pn++){ for(jpn=0;jpn<2;jpn++){ for(pn=0;pn<2;pn++){ coef= fabs(detj[pn][jpn][pn])*wei[pn]*wei[jpn]*wei[pn]; PX= PX[pn][jpn][pn][e]; PY= PY[pn][jpn][pn][e]; PZ= PZ[pn][jpn][pn][e]; PXj= PX[pn][jpn][pn][je]; PYj= PY[pn][jpn][pn][je]; PZj= PZ[pn][jpn][pn][je]; COEFj+= coef*cod0*(px*pxj+py*pyj+pz*pzj); SH= SHAPE[pn][jpn][pn][e]; QV0+= SH * QVOL * coef; f (jp==p) { D[p-]+= COEFj; B[p-]+= QV0*QVC; f (jp!= p) { AMAT[]+= COEFj; j j M j L f W W W d d d f I ) ( ) ( j j J W W W coef det d d d J j j j det

130 FEM3D 30 係数行列 :MAT_ASS_MAI(6/6) QV0= 0.e0; COEFj= 0.e0; for(pn=0;pn<2;pn++){ for(jpn=0;jpn<2;jpn++){ for(pn=0;pn<2;pn++){ coef= fabs(detj[pn][jpn][pn])*wei[pn]*wei[jpn]*wei[pn]; PX= PX[pn][jpn][pn][e]; PY= PY[pn][jpn][pn][e]; PZ= PZ[pn][jpn][pn][e]; PXj= PX[pn][jpn][pn][je]; PYj= PY[pn][jpn][pn][je]; PZj= PZ[pn][jpn][pn][je]; COEFj+= coef*cod0*(px*pxj+py*pyj+pz*pzj); SH= SHAPE[pn][jpn][pn][e]; QV0+= SH * QVOL * coef; j j j f (jp==p) { D[p-]+= COEFj; B[p-]+= QV0*QVC; f (jp!= p) { AMAT[]+= COEFj;

131 FEM3D 3 係数行列 :MAT_ASS_MAI(6/6) QV0= 0.e0; COEFj= 0.e0; for(pn=0;pn<2;pn++){ for(jpn=0;jpn<2;jpn++){ for(pn=0;pn<2;pn++){ coef= fabs(detj[pn][jpn][pn])*wei[pn]*wei[jpn]*wei[pn]; PX= PX[pn][jpn][pn][e]; PY= PY[pn][jpn][pn][e]; ( e) ( e) f ( e PZ= PZ[pn][jpn][pn][e]; PXj= PX[pn][jpn][pn][je]; PYj= PY[pn][jpn][pn][je]; PZj= PZ[pn][jpn][pn][je]; COEFj+= coef*cod0*(px*pxj+py*pyj+pz*pzj); SH= SHAPE[pn][jpn][pn][e]; QV0+= SH * QVOL * coef; f (jp==p) { D[p-]+= COEFj; B[p-]+= QV0*QVC; f (jp!= p) { AMAT[]+= COEFj; ) ( e) T f Q dv Q V QVOL C C QVC C C QV 0 QVOL f ( e) V QV 0QVC T dv

132 FEM3D 32 MAT_ASS_BC: 全体構成 do = 節点ループ ( ディリクレ ) 境界条件を設定する節点をマーク (IWKX) enddo do = 節点ループ f (IWKX().eq.) then マークされた節点だったら対応する右辺ベクトル (B) の成分 対角成分 (D) の成分の修正 ( 行 列 ) do = nde(-)+ nde() 対応する非零非対角成分 (AMAT) の成分の修正 ( 行 ) enddo endf enddo Z ma do = 節点ループ do = ndelu (-)+ nde () f (IWKX(tem ()).eq.) then 対応する非零非対角成分の節点がマークされていたら対応する右辺ベクトル 非零非対角成分 (AMAT) の成分の修正 ( 列 ) endf enddo enddo X Y X Z Y

133 FEM3D 33 境界条件 :MAT_ASS_BC(/2) #nclude <stdo.h> #nclude <stdlb.h> #nclude <strng.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE *fp_log; vod MAT_ASS_BC() { nt jnbb0cel; nt nn2n3nn5n6n7n; nt qq2q3qq5q6q7q; nt SE; double STRESSVAL; IWKX=(KIT**) allocate_matr(seof(kit)2); for(=0;<;++) for(j=0;j<2;j++) IWKX[][j]=0; /** Z=Zma **/ for(n=0;n<;n++) IWKX[n][0]=0; b0=-; 節点グループ名が Zma である節点 n( から始まる ) において : IWKX[n-][0]= とする for( b0=0;b0<odgrptot;b0++){ f( strcmp(odgrp_ame[b0].name"zma") == 0 ) brea; for( b=odgrp_idex[b0];b<odgrp_idex[b0+];b++){ n=odgrp_item[b]; IWKX[n-][0]=;

134 FEM3D 3 境界条件 :MAT_ASS_BC(2/2) for(n=0;n<;n++){ f( IWKX[n][0] == ){ B[n]= 0.e0; D[n]=.e0; for(=ndelu[n];<ndelu[n+];++){ AMAT[]= 0.e0; for(n=0;n<;n++){ for(=ndelu[n];<ndelu[n+];++){ f (IWKX[temLU[]][0] == ) { AMAT[]= 0.e0;

135 FEM3D 35 対象とする問題 : 一次元熱伝導問題 体積当たり一様発熱 Q T Q 0 =0 ( mn ) = ma 一様な : 断面積 A 熱伝導率 体積当たり一様発熱 ( 時間当たり ) QL -3 T - 境界条件 =0 :=0 ( 固定 ) T = ma : 0( 断熱 ) Q 復習 : 一次元問題

136 FEMD 36 =0 で成立する方程式 T 0 =0 体積当たり一様発熱 Q T Q 0 =0 ( mn ) = ma 一様な : 断面積 A 熱伝導率 体積当たり一様発熱 ( 時間当たり ) QL -3 T - 境界条件 =0 :=0 ( 固定 ) T = ma : 0( 断熱 ) Q 復習 : 一次元問題

137 FEMD 37 プログラム :d.c(6/6) /* // // BOUDARY condtons // */ /* X=Xmn */ =0; js= Inde[]; AMat[jS]= 0.0; Dag[ ]=.0; Rhs [ ]= 0.0; T 0 =0 対角成分 = 右辺 =0 非対角成分 =0 for(=0;<plu;++){ f(item[]==0){amat[]=0.0; 復習 : 一次元問題

138 FEMD 3 プログラム :d.c(6/6) /* // // BOUDARY condtons // */ /* X=Xmn */ =0; js= Inde[]; AMat[jS]= 0.0; Dag[ ]=.0; Rhs [ ]= 0.0; T 0 =0 対角成分 = 右辺 =0 非対角成分 =0 ゼロクリア for(=0;<plu;++){ f(item[]==0){amat[]=0.0; 復習 : 一次元問題

139 FEMD 39 プログラム :d.c(6/6) /* // // BOUDARY condtons // */ /* X=Xmn */ =0; js= Inde[]; AMat[jS]= 0.0; Dag[ ]=.0; Rhs [ ]= 0.0; T 0 =0 対角成分 = 右辺 =0 非対角成分 =0 消去 ゼロクリア for(=0;<plu;++){ f(item[]==0){amat[]=0.0; 行列の対称性を保つため 第一種境界条件を適用している節点に対応する 列 を 右辺に移項して消去する ( 今の場合は非対角成分を 0 にするだけで良い ) 復習 : 一次元問題

140 FEMD 0 第一種境界条件が T 0 の場合 /* // // BOUDARY condtons // */ 行列の対称性を保つため 第一種境界条件を適用している節点に対応する 列 を 右辺に移項して消去する /* X=Xmn */ =0; js= Inde[]; AMat[jS]= 0.0; Dag[ ]=.0; Rhs [ ]= PHImn; Dag j j Inde[ j ] Inde[ j] Amat Item[ ] Rhs j for(j=;<;++){ for (=Inde[j];<Inde[j+];++){ f(item[]==0){ Rhs [j]= Rhs[j] Amat[]*PHImn; AMat[]= 0.0; 復習 : 一次元問題

141 FEMD 第一種境界条件が T 0 の場合 /* // // BOUDARY condtons // */ 行列の対称性を保つため 第一種境界条件を適用している節点に対応する 列 を 右辺に移項して消去する /* X=Xmn */ =0; js= Inde[]; AMat[jS]= 0.0; Dag[ ]=.0; Rhs [ ]= PHImn; Dag for(j=;<;++){ for (=Inde[j];<Inde[j+];++){ f(item[]==0){ Rhs [j]= Rhs[j] Amat[]*PHImn; AMat[]= 0.0; j Rhs Rhs j j j Inde[ j ] Inde[ j] Amat Amat s s Amat Item[ mn s s ] Item[ ] where Item[ s ] 0 復習 : 一次元問題

142 FEM3D 2 境界条件 :MAT_ASS_BC(2/2) for(n=0;n<;n++){ f( IWKX[n][0] == ){ B[n]= 0.e0; D[n]=.e0; for(=ndelu[n];<ndelu[n+];++){ AMAT[]= 0.e0; for(n=0;n<;n++){ for(=ndelu[n];<ndelu[n+];++){ f (IWKX[temLU[]][0] == ) { AMAT[]= 0.e0; IWKX[n-][0]= となる節点に対して対角成分 = 右辺 =0 非零対角成分 =0 ゼロクリア ここでやっていることも一次元の時と全く変わらない

143 FEM3D 3 境界条件 :MAT_ASS_BC(2/2) for(n=0;n<;n++){ f( IWKX[n][0] == ){ B[n]= 0.e0; D[n]=.e0; for(=ndelu[n];<ndelu[n+];++){ AMAT[]= 0.e0; IWKX[n-][0]= となる節点を非零非対角成分として有している節点に対して 右辺へ移項 当該非零非対角成分 =0 for(n=0;n<;n++){ for(=ndelu[n];<ndelu[n+];++){ f (IWKX[temLU[]][0] == ) { AMAT[]= 0.e0; 消去 ゼロクリア ここでやっていることも一次元の時と全く変わらない

144 FEM3D test メインプログラム nput_cntl 制御データ入力 nput_grd メッシュファイル入力 fnd_node 節点探索 mat_con0 行列コネクティビティ生成 msort ソート mat_con 行列コネクティビティ生成 mat_ass_man 係数行列生成 jacob ヤコビアン計算 mat_ass_bc 境界条件処理 三次元熱伝導解 析コード heat3d の構成 solve 線形ソルバー制御 output_ucd 可視化処理 cg CG 法計算

145 FEM3D 5 全体処理 /** program heat3d **/ #nclude <stdo.h> #nclude <stdlb.h> FILE* fp_log; #defne GLOBAL_VALUE_DEFIE #nclude "pfem_utl.h" //#nclude "solver.h" etern vod IPUT_CTL(); etern vod IPUT_GRID(); etern vod MAT_CO0(); etern vod MAT_CO(); etern vod MAT_ASS_MAI(); etern vod MAT_ASS_BC(); etern vod SOLVE(); etern vod OUTPUT_UCD(); nt man() { IPUT_CTL(); IPUT_GRID(); MAT_CO0(); MAT_CO(); MAT_ASS_MAI(); MAT_ASS_BC() ; SOLVE(); OUTPUT_UCD() ;

146 FEM3D 6 SOLVE #nclude <stdo.h> #nclude <strng.h> #nclude <math.h> #nclude "pfem_utl.h" #nclude "allocate.h" etern FILE *fp_log; etern vod CG(); vod SOLVE() { nt jl; nt ERROR ICFLAG=0; CHAR_LEGTH BUF; /** PARAMETERs **/ ITER = pfemiarra[0]; CG 法の最大反復回数 RESID = pfemrarra[0]; CG 法の収束判定値 /** ITERATIVE solver **/ CG (PLU D AMAT ndelu temlu B X RESID ITER &ERROR); ITERactual= ITER;

147 FEM3D 7 前処理付き共役勾配法 Precondtoned Conjugate Gradent Method (CG) Compute r (0) = b-[a] (0) for = 2 solve [M] (-) = r (-) - = r (-) (-) f = p () = (0) else 前処理 : 対角スケーリング end - = - / -2 p () = (-) + - endf q () = [A]p () = - /p () q () () = (-) + p () r () = r (-) - q () chec convergence r p (-)

148 FEM3D 対角スケーリング 点ヤコビ前処理 前処理行列として もとの行列の対角成分のみを取り出した行列を前処理行列 [M] とする 対角スケーリング 点ヤコビ (pont-jacob) 前処理 M D D D D solve [M] (-) = r (-) という場合に逆行列を簡単に求めることができる

149 FEM3D 9 #nclude <stdo.h> #nclude <math.h> #nclude "precson.h" #nclude "allocate.h" etern FILE *fp_log; CG ソルバー (/6) vod CG ( KIT KIT PLUKREAL D[] KREAL AMAT[]KIT ndelu[] KIT temlu[] KREAL B[]KREAL X[]KREAL RESIDKIT ITER KIT *ERROR) { nt j; nt elsleusu; double WVAL; double BRM20BRM2DRM20DRM2; double S_TIMEE_TIME; double ALPHABETA; double CC0RHORHO0RHO; nt terpre; KREAL **WW; KIT R=0Z=Q=P=2DD=3; KIT MAXIT; KREAL TOL;

150 FEM3D 50 #nclude <stdo.h> #nclude <math.h> #nclude "precson.h" #nclude "allocate.h" etern FILE *fp_log; CG ソルバー (/6) WW[][0]= WW[][R] {r WW[][]= WW[][Z] { WW[][]= WW[][Q] {q vod CG ( KIT KIT PLUKREAL D[] WW[][2]= WW[][P] {p KREAL AMAT[]KIT ndelu[] KIT temlu[] WW[][3]= KREAL B[]KREAL WW[][DD] X[]KREAL RESIDKIT /{D ITER KIT *ERROR) { nt j; nt elsleusu; double WVAL; double BRM20BRM2DRM20DRM2; double S_TIMEE_TIME; double ALPHABETA; double CC0RHORHO0RHO; nt terpre; KREAL **WW; KIT R=0Z=Q=P=2DD=3; KIT MAXIT; KREAL TOL; Compute r (0) = b-[a] (0) for = 2 solve [M] (-) = r (-) - = r (-) (-) f = end p () = (0) else - = - / -2 p () = (-) + - p (-) endf q () = [A]p () = - /p () q () () = (-) + p () r () = r (-) - q () chec convergence r

Microsoft PowerPoint - FEM3D-C [互換モード]

Microsoft PowerPoint - FEM3D-C [互換モード] 有限要素法による 三次元定常熱伝導解析プログラム C 言語編 202 年夏季集中講義中島研吾 並列計算プログラミング (66-2057) 先端計算機演習 (66-4009) FEM3D 2 対象とする問題 : 三次元定常熱伝導 Z T T=0@Z= ma Z T 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T 一辺長さの立方体 ( 六面体 ) 要素 各方向にX Y Z 個 境界条件 Q 0 X Y

More information

Microsoft PowerPoint - 03-FEM3D-F.ppt [互換モード]

Microsoft PowerPoint - 03-FEM3D-F.ppt [互換モード] 有限要素法による 三次元定常熱伝導解析プログラム Fortran 編 中島研吾東京大学情報基盤センター FEM3D 2 対象とする問題 : 三次元定常熱伝導 Z T T=0@Z=z ma Z T z 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T z 一辺長さの立方体 ( 六面体 ) 要素 各方向にX Y Z 個 境界条件 Q z 0 X Y X Y T=0@Z=z ma 体積当たり発熱量は位置

More information

Microsoft PowerPoint - FEM3D-F [互換モード]

Microsoft PowerPoint - FEM3D-F [互換モード] 有限要素法による 三次元定常熱伝導解析プログラム Fortran 編 202 年夏季集中講義中島研吾 並列計算プログラミング (66-2057) 先端計算機演習 (66-4009) FEM3D 2 対象とする問題 : 三次元定常熱伝導 Z T T=0@Z=z ma Z T z 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T z 一辺長さの立方体 ( 六面体 ) 要素 各方向にX Y Z 個 境界条件

More information

Microsoft PowerPoint - 3D-FEM-2.ppt [互換モード]

Microsoft PowerPoint - 3D-FEM-2.ppt [互換モード] 三次元弾性解析コード (2/3) マトリクス生成 22 年夏学期 中島研吾 科学技術計算 Ⅰ(482-27) コンピュータ科学特別講義 Ⅰ(48-24) FEM3D-Prt2 2 初期化 有限要素法の処理 : プログラム 制御変数読み込み 座標読み込み 要素生成 (: 節点数 ICELTOT: 要素数 ) 配列初期化 ( 全体マトリクス 要素マトリクス ) 要素 全体マトリクスマッピング (IndeItem)

More information

Microsoft PowerPoint - FEM3D-C.ppt [互換モード]

Microsoft PowerPoint - FEM3D-C.ppt [互換モード] 3D-FEM n C: Stead State Heat Conducton Kengo aajma Informaton echnolog Center Programmng for Parallel Computng (66-2057) Semnar on Advanced Computng (66-009) FEM3D 2 3D Stead-State Heat Conducton Z =0@Z=

More information

Microsoft PowerPoint - 3D-FEM-1.ppt [互換モード]

Microsoft PowerPoint - 3D-FEM-1.ppt [互換モード] 三次元弾性解析コード (/3) プログラムの概要 2 年夏学期 中島研吾 科学技術計算 Ⅰ(482-27) コンピュータ科学特別講義 Ⅰ(48-24) FEM3D-Part 2 対象とする問題 弾性体 Z ヤング率 E ポアソン比 ν U Z Z Z Y Y 直方体 一辺長さの立方体 ( 六面体 ) 要素 各方向に Y Z 個 境界条件 対称条件 U @ U Y @Y U Z @Z 強制変位 U Z

More information

Microsoft PowerPoint - 3D-FEM-1.ppt [互換モード]

Microsoft PowerPoint - 3D-FEM-1.ppt [互換モード] 三次元弾性解析コード (/3) プログラムの概要 22 年夏学期 中島研吾 科学技術計算 Ⅰ(82-27) コンピュータ科学特別講義 Ⅰ(8-2) FEM3D-Part 2 対象とする問題 弾性体 Z ヤング率 E ポアソン比 ν U Z Z Z Y Y 直方体 一辺長さの立方体 ( 六面体 ) 要素 各方向に Y Z 個 境界条件 対称条件 U @ U Y @Y U Z @Z 強制変位 U Z @ZZ

More information

パソコンシミュレータの現状

パソコンシミュレータの現状 第 2 章微分 偏微分, 写像 豊橋技術科学大学森謙一郎 2. 連続関数と微分 工学において物理現象を支配する方程式は微分方程式で表されていることが多く, 有限要素法も微分方程式を解く数値解析法であり, 定式化においては微分 積分が一般的に用いられており. 数学の基礎知識が必要になる. 図 2. に示すように, 微分は連続な関数 f() の傾きを求めることであり, 微小な に対して傾きを表し, を無限に

More information

Microsoft PowerPoint - 08-pFEM3D-2C.ppt [互換モード]

Microsoft PowerPoint - 08-pFEM3D-2C.ppt [互換モード] 並列有限要素法による 三次元定常熱伝導解析プログラム (2/2)C 言語編 中島研吾東京大学情報基盤センター pfem3d-2 2 対象とする問題 : 三次元定常熱伝導 Z x T x T=0@Z=z max y NZ T y z 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T z 一辺長さの立方体 ( 六面体 ) 要素 各方向にNX NY NZ 個 境界条件 Q x, y, z 0 X NY NX

More information

OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 富山富山県立大学中川慎二

OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 富山富山県立大学中川慎二 OpenFOAM(R) ソースコード入門 pt1 熱伝導方程式の解法から有限体積法の実装について考える 前編 : 有限体積法の基礎確認 2013/11/17 オープンCAE 勉強会 @ 富山富山県立大学中川慎二 * OpenFOAM のソースコードでは, 基礎式を偏微分方程式の形で記述する.OpenFOAM 内部では, 有限体積法を使ってこの微分方程式を解いている. どのようにして, 有限体積法に基づく離散化が実現されているのか,

More information

FEM原理講座 (サンプルテキスト)

FEM原理講座 (サンプルテキスト) サンプルテキスト FEM 原理講座 サイバネットシステム株式会社 8 年 月 9 日作成 サンプルテキストについて 各講師が 講義の内容が伝わりやすいページ を選びました テキストのページは必ずしも連続していません 一部を抜粋しています 幾何光学講座については 実物のテキストではなくガイダンスを掲載いたします 対象とする構造系 物理モデル 連続体 固体 弾性体 / 弾塑性体 / 粘弾性体 / 固体

More information

Microsoft PowerPoint - 08-pFEM3D-2F.ppt [互換モード]

Microsoft PowerPoint - 08-pFEM3D-2F.ppt [互換モード] 並列有限要素法による 三次元定常熱伝導解析プログラム (2/2)Fortran 編 中島研吾東京大学情報基盤センター pfem3d-2 2 対象とする問題 : 三次元定常熱伝導 Z x T x T=0@Z=z max y NZ T y z 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T z 一辺長さ1の立方体 ( 六面体 ) 要素 各方向にNX NY NZ 個 境界条件 Q x, y, z 0 X

More information

Microsoft PowerPoint - 2_FrontISTRと利用可能なソフトウェア.pptx

Microsoft PowerPoint - 2_FrontISTRと利用可能なソフトウェア.pptx 東京大学本郷キャンパス 工学部8号館2階222中会議室 13:30-14:00 FrontISTRと利用可能なソフトウェア 2017年4月28日 第35回FrontISTR研究会 FrontISTRの並列計算ハンズオン 精度検証から並列性能評価まで 観測された物理現象 物理モデル ( 支配方程式 ) 連続体の運動を支配する偏微分方程式 離散化手法 ( 有限要素法, 差分法など ) 代数的な数理モデル

More information

(Microsoft PowerPoint - \221\34613\211\361)

(Microsoft PowerPoint - \221\34613\211\361) 計算力学 ~ 第 回弾性問題の有限要素解析 (Ⅱ)~ 修士 年後期 ( 選択科目 ) 担当 : 岩佐貴史 講義の概要 全 5 講義. 計算力学概論, ガイダンス. 自然現象の数理モデル化. 行列 場とその演算. 数値計算法 (Ⅰ) 5. 数値計算法 (Ⅱ) 6. 初期値 境界値問題 (Ⅰ) 7. 初期値 境界値問題 (Ⅱ) 8. マトリックス変位法による構造解析 9. トラス構造の有限要素解析. 重み付き残差法と古典的近似解法.

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx m u. 固有値とその応用 8/7/( 水 ). 固有値とその応用 固有値と固有ベクトル 行列による写像から固有ベクトルへ m m 行列 によって線形写像 f : R R が表せることを見てきた ここでは 次元平面の行列による写像を調べる とし 写像 f : を考える R R まず 単位ベクトルの像 u y y f : R R u u, u この事から 線形写像の性質を用いると 次の格子上の点全ての写像先が求まる

More information

Microsoft PowerPoint - シミュレーション工学-2010-第1回.ppt

Microsoft PowerPoint - シミュレーション工学-2010-第1回.ppt シミュレーション工学 ( 後半 ) 東京大学人工物工学研究センター 鈴木克幸 CA( Compter Aded geerg ) r. Jaso Lemo (SC, 98) 設計者が解析ツールを使いこなすことにより 設計の評価 設計の質の向上を図る geerg の本質の 計算機による支援 (CA CAM などより広い名前 ) 様々な汎用ソフトの登場 工業製品の設計に不可欠のツール 構造解析 流体解析

More information

行列、ベクトル

行列、ベクトル 行列 (Mtri) と行列式 (Determinnt). 行列 (Mtri) の演算. 和 差 積.. 行列とは.. 行列の和差 ( 加減算 ).. 行列の積 ( 乗算 ). 転置行列 対称行列 正方行列. 単位行列. 行列式 (Determinnt) と逆行列. 行列式. 逆行列. 多元一次連立方程式のコンピュータによる解法. コンピュータによる逆行列の計算.. 定数項の異なる複数の方程式.. 逆行列の計算

More information

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx 0. 固有値とその応用 固有値と固有ベクトル 2 行列による写像から固有ベクトルへ m n A : m n n m 行列によって線形写像 f R R A が表せることを見てきた ここでは 2 次元平面の行列による写像を調べる 2 = 2 A 2 2 とし 写像 まず 単位ベクトルの像を求める u 2 x = v 2 y f : R A R を考える u 2 2 u, 2 2 0 = = v 2 0

More information

<4D F736F F F696E74202D20906C8D488AC28BAB90DD8C7689F090CD8D488A D91E F1>

<4D F736F F F696E74202D20906C8D488AC28BAB90DD8C7689F090CD8D488A D91E F1> 人工環境設計解析工学構造力学と有限要素法 ( 第 回 ) 東京大学新領域創成科学研究科 鈴木克幸 固体力学の基礎方程式 変位 - ひずみの関係 適合条件式 ひずみ - 応力の関係 構成方程式 応力 - 外力の関係 平衡方程式 境界条件 変位規定境界 反力規定境界 境界条件 荷重応力ひずみ変形 場の方程式 Γ t Γ t 平衡方程式構成方程式適合条件式 構造力学の基礎式 ひずみ 一軸 荷重応力ひずみ変形

More information

Microsoft PowerPoint - 08-pFEM3D-2F.ppt [互換モード]

Microsoft PowerPoint - 08-pFEM3D-2F.ppt [互換モード] 並列有限要素法による 三次元定常熱伝導解析プログラム (2/2)Fortran 編 中島研吾東京大学情報基盤センター RIKEN AICS HPC Spring School 204 pfem3d-2 2 対象とする問題 : 三次元定常熱伝導 Z x T x T=0@Z=z max y NZ T y z 定常熱伝導 + 発熱 一様な熱伝導率 直方体 T z 一辺長さの立方体 ( 六面体 ) 要素 各方向にNX

More information

数学の世界

数学の世界 東京女子大学文理学部数学の世界 (2002 年度 ) 永島孝 17 6 行列式の基本法則と効率的な計算法 基本法則 三次以上の行列式についても, 二次の場合と同様な法則がなりたつ ここには三次の場合を例示するが, 四次以上でも同様である 1 単位行列の行列式の値は 1 である すなわち 1 0 0 0 1 0 1 0 0 1 2 二つの列を入れ替えると行列式の値は 1 倍になる 例えば a 13 a

More information

スライド 1

スライド 1 数値解析 2019 年度前期第 13 週 [7 月 11 日 ] 静岡大学創造科学技術大学院情報科学専攻工学部機械工学科計測情報講座 三浦憲二郎 講義アウトライン [7 月 11 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ラグランジュ補間 T.Kanai, U.Tokyo 関数近似 p.116 複雑な関数を簡単な関数で近似する 関数近似 閉区間 [a,b] で定義された関数 f(x)

More information

09.pptx

09.pptx 講義内容 数値解析 第 9 回 5 年 6 月 7 日 水 理学部物理学科情報理学コース. 非線形方程式の数値解法. はじめに. 分法. 補間法.4 ニュートン法.4. 多変数問題への応用.4. ニュートン法の収束性. 連立 次方程式の解法. 序論と行列計算の基礎. ガウスの消去法. 重対角行列の場合の解法項目を変更しました.4 LU 分解法.5 特異値分解法.6 共役勾配法.7 反復法.7. ヤコビ法.7.

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ

以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ 以下 変数の上のドットは時間に関する微分を表わしている (e. d d, dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( や, などがすべて 次で なおかつそれらの係数が定数であるような微分方程式 ) に対して安定性の解析を行ってきた しかしながら 実際には非線形の微分方程式で記述される現象も多く存在する

More information

Microsoft Word - NumericalComputation.docx

Microsoft Word - NumericalComputation.docx 数値計算入門 武尾英哉. 離散数学と数値計算 数学的解法の中には理論計算では求められないものもある. 例えば, 定積分は, まずは積分 ( 被積分関数の原始関数をみつけること できなければ値を得ることはできない. また, ある関数の所定の値における微分値を得るには, まずその関数の微分ができなければならない. さらに代数方程式の解を得るためには, 解析的に代数方程式を解く必要がある. ところが, これらは必ずしも解析的に導けるとは限らない.

More information

テンソル ( その ) テンソル ( その ) スカラー ( 階のテンソル ) スカラー ( 階のテンソル ) 階数 ベクトル ( 階のテンソル ) ベクトル ( 階のテンソル ) 行列表現 シンボリック表現 [ ]

テンソル ( その ) テンソル ( その ) スカラー ( 階のテンソル ) スカラー ( 階のテンソル ) 階数 ベクトル ( 階のテンソル ) ベクトル ( 階のテンソル ) 行列表現 シンボリック表現 [ ] Tsor th-ordr tsor by dcl xprsso m m Lm m k m k L mk kk quott rul by symbolc xprsso Lk X thrd-ordr tsor cotrcto j j Copyrght s rsrvd. No prt of ths documt my b rproducd for proft. テンソル ( その ) テンソル ( その

More information

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ 4 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プログラミング技術 工業 333 実教出版 ) 共通 : 科目 プログラミング技術 のオリエンテーション プログラミング技術は

More information

NS NS Scalar turbulence 5 6 FEM NS Mesh (A )

NS NS Scalar turbulence 5 6 FEM NS Mesh (A ) 22 3 2 1 2 2 2 3 3 4 NS 4 4.1 NS............ 5 5 Scalar turbulence 5 6 FEM 5 6.1 NS.................................... 6 6.2 Mes A )................................... 6 6.3.....................................

More information

静的弾性問題の有限要素法解析アルゴリズム

静的弾性問題の有限要素法解析アルゴリズム 概要 基礎理論. 応力とひずみおよび平衡方程式. 降伏条件式. 構成式 ( 応力 - ひずみ関係式 ) 有限要素法. 有限要素法の概要. 仮想仕事の原理式と変分原理. 平面ひずみ弾性有限要素法定式化 FEM の基礎方程式平衡方程式. G G G ひずみ - 変位関係式 w w w. kl jkl j D 構成式応力 - ひずみ関係式 ) (. 変位の境界条件力の境界条件境界条件式 t S on V

More information

連立方程式の解法

連立方程式の解法 連立方程式の解法連立方程式をエクセルを用いて解く方法は以下の 2 種類が考えられます 1) エクセルの行列関数を用いる 2) VBA でヤコビ法やガウスザイデル法を用いる ここでは両方について説明します 1) エクセルの行列関数を用いる方法エクセルは表計算ですから行と列に並んだ数値を扱うのは得意です 連立方程式は次のように行列を用いて表すことができます 連立方程式が行列形式で表されることを考慮して解法を考えてみます

More information

演習2

演習2 神戸市立工業高等専門学校電気工学科 / 電子工学科専門科目 数値解析 2017.6.2 演習 2 山浦剛 (tyamaura@riken.jp) 講義資料ページ h t t p://clim ate.aic s. riken. jp/m embers/yamaura/num erical_analysis. html 曲線の推定 N 次多項式ラグランジュ補間 y = p N x = σ N x x

More information

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます

More information

有限要素法入門 中島研吾 東京大学情報基盤センター

有限要素法入門 中島研吾 東京大学情報基盤センター 有限要素法入門 中島研吾 東京大学情報基盤センター EM-ntro 有限要素法入門 偏微分方程式の数値解法 重み付き残差法 偏微分方程式の数値解法 変分法 EM-ntro 差分法と有限要素法 偏微分方程式の近似解法 全領域を小領域 メッシュ 要素 に分割する 差分法 微分係数を直接近似 Tylor 展開 nte fference Method M Tylor Seres Epnson -!!!! nd

More information

GeoFEM開発の経験から

GeoFEM開発の経験から FrontISTR における並列計算のしくみ < 領域分割に基づく並列 FEM> メッシュ分割 領域分割 領域分割 ( パーティショニングツール ) 全体制御 解析制御 メッシュ hecmw_ctrl.dat 境界条件 材料物性 計算制御パラメータ 可視化パラメータ 領域分割ツール 逐次計算 並列計算 Front ISTR FEM の主な演算 FrontISTR における並列計算のしくみ < 領域分割に基づく並列

More information

Microsoft PowerPoint - 夏の学校(CFD).pptx

Microsoft PowerPoint - 夏の学校(CFD).pptx /9/5 FD( 計算流体力学 ) の基礎理論 性能 運動分野 夏の学校 神戸大学大学院海事科学研究科勝井辰博 流体の質量保存 流体要素内の質量の増加率 [ 単位時間当たりの増加量 ] 単位時間に流体要素に流入する質量 流体要素 Fl lm (orol olm) v ( ) ガウスの定理 v( ) /9/5 = =( ) b=b =(b b b ) b= b = b + b + b アインシュタイン表記

More information

Microsoft PowerPoint - NA03-09black.ppt

Microsoft PowerPoint - NA03-09black.ppt きょうの講義 数値 記号処理 2003.2.6 櫻井彰人 NumSymbol@soft.ae.keo.ac.jp http://www.sakura.comp.ae.keo.ac.jp/ 数値計算手法の定石 多項式近似 ( 復習 )» 誤差と手間の解析も 漸化式» 非線型方程式の求解 数値演算上の誤差 数値計算上の誤差 打ち切り誤差 (truncaton error)» 使う公式を有限項で打ち切る

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile data.txt #define OutFile sorted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "sorted.txt"

More information

Microsoft PowerPoint - Lec17 [互換モード]

Microsoft PowerPoint - Lec17 [互換モード] 情報デザイン専攻 画像情報処理論及び演習 - フィルタ処理 エッジ強調 - 差分法 変分法と平滑化 エッジ S Yoszw: s@re.p 今日の授業内容 www.re.p/rc/yoszw/ecres/e.ml www.re.p/rc/yoszw/ecres/ec7.p. 勾配とエッジの基礎 : 差分法.. plcと拡散方程式の基礎 : 変分法. 第 6 回講義水曜日 限教室 68 吉澤信 s@re.p

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X (

例 e 指数関数的に減衰する信号を h( a < + a a すると, それらのラプラス変換は, H ( ) { e } e インパルス応答が h( a < ( ただし a >, U( ) { } となるシステムにステップ信号 ( y( のラプラス変換 Y () は, Y ( ) H ( ) X ( 第 週ラプラス変換 教科書 p.34~ 目標ラプラス変換の定義と意味を理解する フーリエ変換や Z 変換と並ぶ 信号解析やシステム設計における重要なツール ラプラス変換は波動現象や電気回路など様々な分野で 微分方程式を解くために利用されてきた ラプラス変換を用いることで微分方程式は代数方程式に変換される また 工学上使われる主要な関数のラプラス変換は簡単な形の関数で表されるので これを ラプラス変換表

More information

モデリングとは

モデリングとは コンピュータグラフィックス基礎 第 5 回曲線 曲面の表現 ベジェ曲線 金森由博 学習の目標 滑らかな曲線を扱う方法を学習する パラメトリック曲線について理解する 広く一般的に使われているベジェ曲線を理解する 制御点を入力することで ベジェ曲線を描画するアプリケーションの開発を行えるようになる C++ 言語の便利な機能を使えるようになる 要素数が可変な配列としての std::vector の活用 計算機による曲線の表現

More information

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生

0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生 0 21 カラー反射率 slope aspect 図 2.9: 復元結果例 2.4 画像生成技術としての計算フォトグラフィ 3 次元情報を復元することにより, 画像生成 ( レンダリング ) に応用することが可能である. 近年, コンピュータにより, カメラで直接得られない画像を生成する技術分野が生まれ, コンピューテーショナルフォトグラフィ ( 計算フォトグラフィ ) と呼ばれている.3 次元画像認識技術の計算フォトグラフィへの応用として,

More information

5-仮想仕事式と種々の応力.ppt

5-仮想仕事式と種々の応力.ppt 1 以上, 運動の変数についての話を終える. 次は再び力の変数に戻る. その前に, まず次の話が唐突と思われないように 以下は前置き. 先に, 力の変数と運動の変数には対応関係があって, 適当な内積演算によって仕事量を表す ことを述べた. 実は,Cauchy 応力と速度勾配テンソル ( あるいは変位勾配テンソル ) を用いると, それらの内積は内部仮想仕事を表していて, そして, それは外力がなす仮想仕事に等しいという

More information

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile data.txt #define OutFile surted.txt #def C プログラミング演習 1( 再 ) 6 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include #define InFile "data.txt" #define OutFile "surted.txt"

More information

Microsoft PowerPoint - Eigen.pptx

Microsoft PowerPoint - Eigen.pptx 固有値解析 中島研吾 東京大学情報基盤センター同大学院情報理工学系研究科数理情報学専攻数値解析 ( 科目番号 -58) 行列の固有値問題 べき乗法 対称行列の固有値計算法 : ヤコビ法 A 行列の固有値問題 標準固有値問題 (Stndrd vlue Prolem を満足する と を求める : 固有値 (eigenvlue) : 固有ベクトル (eigenvector) 一般固有値問題 (Generl

More information

微分方程式 モデリングとシミュレーション

微分方程式 モデリングとシミュレーション 1 微分方程式モデリングとシミュレーション 2018 年度 2 質点の運動のモデル化 粒子と粒子に働く力 粒子の運動 粒子の位置の時間変化 粒子の位置の変化の割合 速度 速度の変化の割合 加速度 力と加速度の結び付け Newtonの運動方程式 : 微分方程式 解は 時間の関数としての位置 3 Newton の運動方程式 質点の運動は Newton の運動方程式で記述される 加速度は力に比例する 2

More information

Microsoft Word - thesis.doc

Microsoft Word - thesis.doc 剛体の基礎理論 -. 剛体の基礎理論初めに本論文で大域的に使用する記号を定義する. 使用する記号トルク撃力力角運動量角速度姿勢対角化された慣性テンソル慣性テンソル運動量速度位置質量時間 J W f F P p .. 質点の並進運動 質点は位置 と速度 P を用いる. ニュートンの運動方程式 という状態を持つ. 但し ここでは速度ではなく運動量 F P F.... より質点の運動は既に明らかであり 質点の状態ベクトル

More information

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講?

今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講? 今後の予定 6/29 パターン形成第 11 回 7/6 データ解析第 12 回 7/13 群れ行動 ( 久保先生 ) 第 13 回 7/17 ( 金 ) 休講 7/20 まとめ第 14 回 7/27 休講? 数理生物学演習 第 11 回パターン形成 本日の目標 2 次元配列 分子の拡散 反応拡散モデル チューリングパタン 拡散方程式 拡散方程式 u t = D 2 u 拡散が生じる分子などの挙動を記述する.

More information

kiso2-09.key

kiso2-09.key 座席指定はありません 計算機基礎実習II 2018 のウェブページか 第9回 ら 以下の課題に自力で取り組んで下さい 計算機基礎実習II 第7回の復習課題(rev07) 第9回の基本課題(base09) 第8回試験の結果 中間試験に関するコメント コンパイルできない不完全なプログラムなど プログラミングに慣れていない あるいは複雑な問題は 要件 をバラして段階的にプログラムを作成する exam08-2.c

More information

Microsoft PowerPoint - 三次元座標測定 ppt

Microsoft PowerPoint - 三次元座標測定 ppt 冗長座標測定機 ()( 三次元座標計測 ( 第 9 回 ) 5 年度大学院講義 6 年 月 7 日 冗長性を持つ 次元座標測定機 次元 辺測量 : 冗長性を出すために つのレーザトラッカを配置し, キャッツアイまでの距離から座標を測定する つのカメラ ( 次元的なカメラ ) とレーザスキャナ : つの角度測定システムによる座標測定 つの回転関節による 次元 自由度多関節機構 高増潔東京大学工学系研究科精密機械工学専攻

More information

<4D F736F F D2097CD8A7793FC96E582BD82ED82DD8A E6318FCD2E646F63>

<4D F736F F D2097CD8A7793FC96E582BD82ED82DD8A E6318FCD2E646F63> - 第 章たわみ角法の基本式 ポイント : たわみ角法の基本式を理解する たわみ角法の基本式を梁の微分方程式より求める 本章では たわみ角法の基本式を導くことにする 基本式の誘導法は各種あるが ここでは 梁の微分方程式を解いて基本式を求める方法を採用する この本で使用する座標系は 右手 右ネジの法則に従った座標を用いる また ひとつの部材では 図 - に示すように部材の左端の 点を原点とし 軸線を

More information

Microsoft PowerPoint - FEMintro [互換モード]

Microsoft PowerPoint - FEMintro [互換モード] 有限要素法入門 年夏季集中講義中島研吾 並列計算プログラミング 66-57 先端計算機演習 66-49 EM-ntro 有限要素法入門 偏微分方程式の数値解法 重み付き残差法 ガウス グリーンの定理 偏微分方程式の数値解法 変分法 EM-ntro 差分法と有限要素法 偏微分方程式の近似解法 全領域を小領域 メッシュ 要素 に分割する 差分法 微分係数を直接近似 Tylor 展開 EM-ntro 差分法

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

有限要素法法による弾弾性変形解析 (Gmsh+Calculix)) 海洋エネルギギー研究センター今井 問題断面が1mmx1mm 長さ 20mmm の鋼の一端端を固定 他他端に点荷重重をかけた場場合の先端変変位および最大応力を求求める P Equation Chapter 1 Section 1 l

有限要素法法による弾弾性変形解析 (Gmsh+Calculix)) 海洋エネルギギー研究センター今井 問題断面が1mmx1mm 長さ 20mmm の鋼の一端端を固定 他他端に点荷重重をかけた場場合の先端変変位および最大応力を求求める P Equation Chapter 1 Section 1 l 有限要素法法による弾弾性変形解析 (Gmsh+Calculix)) 海洋エネルギギー研究センター今井 問題断面が1mmx1mm 長さ 20mmm の鋼の一端端を固定 他他端に点荷重重をかけた場場合の先端変変位および最大応力を求求める P Equation Chapter 1 Section 1 l δ 1 形状の作作成 (Gmsh) c: gmsh test1 フォルダを作る http://geuz.org/gmsh/#

More information

PowerPoint Presentation

PowerPoint Presentation 付録 2 2 次元アフィン変換 直交変換 たたみ込み 1.2 次元のアフィン変換 座標 (x,y ) を (x,y) に移すことを 2 次元での変換. 特に, 変換が と書けるとき, アフィン変換, アフィン変換は, その 1 次の項による変換 と 0 次の項による変換 アフィン変換 0 次の項は平行移動 1 次の項は座標 (x, y ) をベクトルと考えて とすれば このようなもの 2 次元ベクトルの線形写像

More information

Microsoft PowerPoint - H21生物計算化学2.ppt

Microsoft PowerPoint - H21生物計算化学2.ppt 演算子の行列表現 > L いま 次元ベクトル空間の基底をケットと書くことにする この基底は完全系を成すとすると 空間内の任意のケットベクトルは > > > これより 一度基底を与えてしまえば 任意のベクトルはその基底についての成分で完全に記述することができる これらの成分を列行列の形に書くと M これをベクトル の基底 { >} による行列表現という ところで 行列 A の共役 dont 行列は A

More information

Microsoft Word - 補論3.2

Microsoft Word - 補論3.2 補論 3. 多変量 GARC モデル 07//6 新谷元嗣 藪友良 対数尤度関数 3 章 7 節では 変量の対数尤度を求めた ここでは多変量の場合 とくに 変量について対数尤度を求める 誤差項 は平均 0 で 次元の正規分布に従うとする 単純化のため 分散と共分散は時間を通じて一定としよう ( この仮定は後で変更される ) したがって ij から添え字 を除くことができる このとき と の尤度関数は

More information

スライド 1

スライド 1 数値解析 平成 24 年度前期第 13 週 [7 月 11 日 ] 静岡大学創造科学技術大学院情報科学専攻工学部機械工学科計測情報講座 三浦憲二郎 講義アウトライン [7 月 11 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ラグランジュ補間 形状処理工学の基礎 点列からの曲線の生成 T.Kanai, U.Tokyo 関数近似 p.116 複雑な関数を簡単な関数で近似する関数近似 閉区間

More information

Microsoft Word - 1B2011.doc

Microsoft Word - 1B2011.doc 第 14 回モールの定理 ( 単純梁の場合 ) ( モールの定理とは何か?p.11) 例題 下記に示す単純梁の C 点のたわみ角 θ C と, たわみ δ C を求めよ ただし, 部材の曲げ 剛性は材軸に沿って一様で とする C D kn B 1.5m 0.5m 1.0m 解答 1 曲げモーメント図を描く,B 点の反力を求める kn kn 4 kn 曲げモーメント図を描く knm 先に得られた曲げモーメントの値を

More information

2018年度 東京大・理系数学

2018年度 東京大・理系数学 08 東京大学 ( 理系 ) 前期日程問題 解答解説のページへ関数 f ( ) = + cos (0 < < ) の増減表をつくり, + 0, 0 のと sin きの極限を調べよ 08 東京大学 ( 理系 ) 前期日程問題 解答解説のページへ n+ 数列 a, a, を, Cn a n = ( n =,, ) で定める n! an qn () n とする を既約分数 an p として表したときの分母

More information

中学 1 年生 e ライブラリ数学教材一覧 学校図書 ( 株 ) 中学 1 年 数学 文字式式の計算 項と係数 中学 1 年 数学 次式 中学 1 年 数学 項のまとめ方 中学 1 年 数学 次式の加法 中学 1 年 数学 77

中学 1 年生 e ライブラリ数学教材一覧 学校図書 ( 株 ) 中学 1 年 数学 文字式式の計算 項と係数 中学 1 年 数学 次式 中学 1 年 数学 項のまとめ方 中学 1 年 数学 次式の加法 中学 1 年 数学 77 中学 1 年生 e ライブラリ数学教材一覧 学校図書 ( 株 ) 中学 1 年 数学 1 14-20 正の数 負の数正の数 負の数 14- ある基準から考えた量の表現 中学 1 年 数学 14- 正の数 中学 1 年 数学 14- 負の数 中学 1 年 数学 14- 量の基準を表す数 中学 1 年 数学 15- 反対の性質をもつ量の表現 中学 1 年 数学 17- 数直線 中学 1 年 数学 18-19

More information

偏微分方程式、連立1次方程式、乱数

偏微分方程式、連立1次方程式、乱数 数値計算法 011/6/8 林田清 大阪大学大学院理学研究科 常微分方程式の応用例 1 Rutherford 散乱 ( 原子核同士の散乱 ; 金の薄膜に α 粒子をあてる ) 1 クーロン力 f= 4 0 r r r Ze y からf cos, si f f f y f f 粒子の 方向 y方向の速度と座標について dv Ze dvy Ze y, 3 3 dt 40m r dt 40m r d dy

More information

解析力学B - 第11回: 正準変換

解析力学B - 第11回: 正準変換 解析力学 B 第 11 回 : 正準変換 神戸大 : 陰山聡 ホームページ ( 第 6 回から今回までの講義ノート ) http://tinyurl.com/kage2010 2011.01.27 正準変換 バネ問題 ( あえて下手に座標をとった ) ハミルトニアンを考える q 正準方程式は H = p2 2m + k 2 (q l 0) 2 q = H p = p m ṗ = H q = k(q

More information

行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行

行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行 行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行列 B が正方行列で のとき B を収束行列と呼ぶ 定理収束行列のスペクトル半径は である 簡単な証明もし

More information

memo

memo 数理情報工学特論第一 機械学習とデータマイニング 4 章 : 教師なし学習 3 かしまひさし 鹿島久嗣 ( 数理 6 研 ) kashima@mist.i.~ DEPARTMENT OF MATHEMATICAL INFORMATICS 1 グラフィカルモデルについて学びます グラフィカルモデル グラフィカルラッソ グラフィカルラッソの推定アルゴリズム 2 グラフィカルモデル 3 教師なし学習の主要タスクは

More information

スライド 1

スライド 1 数値解析 平成 29 年度前期第 14 週 [7 月 10 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報分野創造科学技術大学院情報科学専攻 三浦憲二郎 期末試験 7 月 31 日 ( 月 ) 9 10 時限 A : 佐鳴会議室 B : 佐鳴ホール 講義アウトライン [7 月 10 日 ] 関数近似と補間 最小 2 乗近似による関数近似 ( 復習 ) ラグランジュ補間 形状処理工学の基礎

More information

[Problem D] ぐらぐら 一般に n 個の物体があり i 番目の物体の重心の x 座標を x i, 重さを w i とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる i= 1 i i n i= 1 i 良さそうな方法は思いつかなかった

[Problem D] ぐらぐら 一般に n 個の物体があり i 番目の物体の重心の x 座標を x i, 重さを w i とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる i= 1 i i n i= 1 i 良さそうな方法は思いつかなかった [Problem D] ぐらぐら 一般に n 個の物体があり 番目の物体の重心の x 座標を x, 重さを w とすると 全体の n 重心の x 座標と重さ w は x = ( x w ) / w, w = w となる = n = 良さそうな方法は思いつかなかった アイデア募集中!!! ので 少し強引に解いている 入力データの読み込みは w と h を scanf で読み込み getchar でその行の行末コードを読み込み

More information

memo

memo 計数工学プログラミング演習 ( 第 3 回 ) 2016/04/26 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 内容 ポインタ malloc 構造体 2 ポインタ あるメモリ領域 ( アドレス ) を代入できる変数 型は一致している必要がある 定義時には値は不定 ( 何も指していない ) 実際にはどこかのメモリを指しているので, #include

More information

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�)

Microsoft Word ã‡»ã…«ã‡ªã…¼ã…‹ã…žã…‹ã…³ã†¨åłºæœ›å•¤(佒芤喋çfl�) Cellulr uo nd heir eigenlues 東洋大学総合情報学部 佐藤忠一 Tdzu So Depren o Inorion Siene nd rs Toyo Uniersiy. まえがき 一次元セルオ-トマトンは数学的には記号列上の行列の固有値問題である 固有値問題の行列はふつう複素数体上の行列である 量子力学における固有値問題も無限次元ではあるが関数環上の行列でその成分は可換環である

More information

スライド 1

スライド 1 数値解析 平成 30 年度前期第 10 週 [6 月 12 日 ] 静岡大学工学研究科機械工学専攻ロボット 計測情報分野創造科学技術大学院情報科学専攻 三浦憲二郎 講義アウトライン [6 月 12 日 ] 連立 1 次方程式の直接解法 ガウス消去法 ( 復習 ) 部分ピボット選択付きガウス消去法 連立 1 次方程式 連立 1 次方程式の重要性 非線形の問題は基本的には解けない. 非線形問題を線形化して解く.

More information

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図 数学 Ⅱ < 公理 > 公理を論拠に定義を用いて定理を証明する 大小関係の公理 順序 >, =, > つ成立 >, > > 成立 順序と演算 > + > + >, > > 図形の公理 平行線の性質 錯角 同位角 三角形の合同条件 三角形の合同相似 量の公理 角の大きさ 線分の長さ < 空間における座漂とベクトル > ベクトルの演算 和 差 実数倍については 文字の計算と同様 ベクトルの成分表示 平面ベクトル

More information

応用数学Ⅱ 偏微分方程式(2) 波動方程式(12/13)

応用数学Ⅱ 偏微分方程式(2) 波動方程式(12/13) 偏微分方程式. 偏微分方程式の形 偏微分 偏導関数 つの独立変数 をもつ関数 があるとき 変数 が一定値をとって だけが変化したとす ると は だけの関数となる このとき を について微分して得られる関数を 関数 の に関する 偏微分係数 略して偏微分 あるいは偏導関数 pil deiie といい 次のように表される についても同様な偏微分を定義できる あるいは あるいは - あるいは あるいは -

More information

PowerPoint Presentation

PowerPoint Presentation 応用数学 Ⅱ (7) 7 連立微分方程式の立て方と解法. 高階微分方程式による解法. ベクトル微分方程式による解法 3. 演算子による解法 連立微分方程式 未知数が複数個あり, 未知数の数だけ微分方程式が与えられている場合, これらを連立微分方程式という. d d 解法 () 高階微分方程式化による解法 つの方程式から つの未知数を消去して, 未知数が つの方程式に変換 のみの方程式にするために,

More information

微分方程式による現象記述と解きかた

微分方程式による現象記述と解きかた 微分方程式による現象記述と解きかた 土木工学 : 公共諸施設 構造物の有用目的にむけた合理的な実現をはかる方法 ( 技術 ) に関する学 橋梁 トンネル ダム 道路 港湾 治水利水施設 安全化 利便化 快適化 合法則的 経済的 自然および人口素材によって作られた 質量保存則 構造物の自然的な性質 作用 ( 外力による応答 ) エネルギー則 の解明 社会的諸現象のうち マスとしての移動 流通 運動量則

More information

Microsoft PowerPoint - H22制御工学I-2回.ppt

Microsoft PowerPoint - H22制御工学I-2回.ppt 制御工学 I 第二回ラプラス変換 平成 年 4 月 9 日 /4/9 授業の予定 制御工学概論 ( 回 ) 制御技術は現在様々な工学分野において重要な基本技術となっている 工学における制御工学の位置づけと歴史について説明する さらに 制御システムの基本構成と種類を紹介する ラプラス変換 ( 回 ) 制御工学 特に古典制御ではラプラス変換が重要な役割を果たしている ラプラス変換と逆ラプラス変換の定義を紹介し

More information

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計

8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性 座標独立性 曲線上の点を直接に計算可能 多価の曲線も表現可能 gx 低次の多項式は 計 8. 自由曲線 曲面. 概論. ベジエ曲線 曲面. ベジエ曲線 曲面の数学. OeGLによる実行. URS. スプライン関数. スプライン曲線 曲面. URS 曲線 曲面 4. OeGLによる実行 8. 自由曲線と曲面の概要 陽関数 陰関数 f x f x x y y y f f x y z g x y z パラメータ表現された 次元曲線 パラメータ表現は xyx 毎のパラメータによる陽関数表現 形状普遍性

More information

2014 年 10 月 2 日 本日の講義及び演習 数値シミュレーション 2014 年度第 2 回 偏微分方程式の偏微分項をコンピュータで扱えるようにする 離散化 ( 差分化 ) テイラー展開の利用 1 階微分項に対する差分式 2 階微分項に対する差分式 1 次元熱伝導方程式に適用して差分式を導出

2014 年 10 月 2 日 本日の講義及び演習 数値シミュレーション 2014 年度第 2 回 偏微分方程式の偏微分項をコンピュータで扱えるようにする 離散化 ( 差分化 ) テイラー展開の利用 1 階微分項に対する差分式 2 階微分項に対する差分式 1 次元熱伝導方程式に適用して差分式を導出 04 年 0 月 日 本日の講義及び演習 数値シミュレーション 04 年度第 回 偏微分方程式の偏微分項をコンピュータで扱えるようにする 離散化 ( 差分化 テイラー展開の利用 階微分項に対する差分式 階微分項に対する差分式 次元熱伝導方程式に適用して差分式を導出 Ecel を利用した温度変化シミュレーション 永野 ( 熱流体システム研究室 hagao@tc.ac.p 重要! 熱の伝わり方 ( 伝熱モード

More information

Chap2

Chap2 逆三角関数の微分 Arcsin の導関数を計算する Arcsin I. 初等関数の微積分 sin [, ], [π/, π/] cos sin / (Arcsin ) 計算力の体力をつけよう π/ π/ E. II- 次の関数の導関数を計算せよ () Arccos () Arctan E. I- の解答 不定積分あれこれ () Arccos n log C C (n ) n e e C log (log

More information

航空機の運動方程式

航空機の運動方程式 オブザーバ 状態フィードバックにはすべての状態変数の値が必要であった. しかしながら, システムの外部から観測できるのは出力だけであり, すべての状態変数が観測できるとは限らない. そこで, 制御対象システムの状態変数を, システムのモデルに基づいてその入出力信号から推定する方法を考える.. オブザーバとは 次元 m 入力 r 出力線形時不変システム x Ax Bu y Cx () の状態変数ベクトル

More information

情報処理概論(第二日目)

情報処理概論(第二日目) 情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 8 回 2005 年 6 月 9 日 前回の演習の解答例 多項式の計算 ( 前半 ): program poly implicit none integer, parameter :: number = 5 real(8), dimension(0:number) :: a real(8) :: x, total integer

More information

Microsoft Word - Chap17

Microsoft Word - Chap17 第 7 章化学反応に対する磁場効果における三重項機構 その 7.. 節の訂正 年 7 月 日. 節 章の9ページ の赤枠に記載した説明は間違いであった事に気付いた 以下に訂正する しかし.. 式は 結果的には正しいので安心して下さい 磁場 の存在下でのT 状態のハミルトニアン は ゼーマン項 と時間に依存するスピン-スピン相互作用の項 との和となる..=7.. g S = g S z = S z g

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 空間フィルタリング (spatal lterng) 入力画像の対応する画素値だけではなく その周囲 ( 近傍領域 ) の画素も含めた領域内の画素値を用いて 出力画像の対応する画素値を計算する処理 入力画像出力画像入力画像出力画像 画素ごとの濃淡変換 ( 階調処理 ) 領域に基づく濃淡変換 ( 空間フィルタリング ) 空間フィルタ (spatal lter) 線形フィルタ (lnear lter) w

More information

ベクトル公式.rtf

ベクトル公式.rtf 6 章ラプラシアン, ベクトル公式, 定理 6.1 ラプラシアン Laplacian φ はベクトル量である. そこでさらに発散をとると, φ はどういう形になるであろうか? φ = a + a + a φ a + a φ + a φ = φ + φ + φ = 2 φ + 2 φ 2 + 2 φ 2 2 φ = 2 φ 2 + 2 φ 2 + 2 φ 2 = 2 φ したがって,2 階の偏微分演算となる.

More information

データ構造

データ構造 アルゴリズム及び実習 7 馬青 1 表探索 定義表探索とは 表の形で格納されているデータの中から条件に合ったデータを取り出してくる操作である 但し 表は配列 ( 連結 ) リストなどで実現できるので 以降 表 の代わりに直接 配列 や リスト などの表現を用いる場合が多い 表探索をただ 探索 と呼ぶ場合が多い 用語レコード : 表の中にある個々のデータをレコード (record) と呼ぶ フィールド

More information

学習指導要領

学習指導要領 (1) いろいろな式 学習指導要領紅葉川高校学力スタンダードア式と証明展開の公式を用いて 3 乗に関わる式を展開すること ( ア ) 整式の乗法 除法 分数式の計算ができるようにする 三次の乗法公式及び因数分解の公式を理解し そ 3 次の因数分解の公式を理解し それらを用いて因数れらを用いて式の展開や因数分解をすること また 分解することができるようにする 整式の除法や分数式の四則計算について理解し

More information

技術者のための構造力学 2014/06/11 1. はじめに 資料 2 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した

技術者のための構造力学 2014/06/11 1. はじめに 資料 2 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した . はじめに 資料 節点座標系による傾斜支持節点節点の処理 三好崇夫加藤久人 従来, マトリックス変位法に基づく骨組解析を紹介する教科書においては, 全体座標系に対して傾斜 した斜面上の支持条件を考慮する処理方法として, 一旦, 傾斜支持を無視した全体座標系に関する構造 全体の剛性マトリックスを組み立てた後に, 傾斜支持する節点に関して対応する剛性成分を座標変換に よって傾斜方向に回転処理し, その後は通常の全体座標系に対して傾斜していない支持点に対するのと

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2

More information

JSMECM教育認定

JSMECM教育認定 一般社団法人日本機械学会 018/09/6 計算力学技術者 級問題集 ( 固体力学分野 )018 年度版 ( 第 9 版 3 刷 ) P 項目誤正 175 問 -6/ 上 8 行 1 1 sin cos sin cos rs y y xy rs y x xy i 計算力学技術者 級 ( 固体力学分野の有限要素法解析技術者 ) の認定の範囲 認定技術者の技術レベル本認定を取得した技術者は, 基本的な固体力学の問題に対して,

More information

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1>

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1> 3 三次における行列 要旨高校では ほとんど 2 2 の正方行列しか扱ってなく 三次の正方行列について考えてみたかったため 数 C で学んだ定理を三次の正方行列に応用して 自分たちで仮説を立てて求めていったら 空間における回転移動を表す行列 三次のケーリー ハミルトンの定理 三次における逆行列を求めたり 仮説をたてることができた. 目的 数 C で学んだ定理を三次の正方行列に応用する 2. 概要目的の到達点として

More information

Fortran 勉強会 第 5 回 辻野智紀

Fortran 勉強会 第 5 回 辻野智紀 Fortran 勉強会 第 5 回 辻野智紀 今回のお品書き サブルーチンの分割コンパイル ライブラリ 静的ライブラリ 動的ライブラリ モジュール その前に 以下の URL から STPK ライブラリをインストールしておいて下さい. http://www.gfd-dennou.org/library/davis/stpk 前回参加された方はインストール済みのはず. サブルーチンの分割コンパイル サブルーチンの独立化

More information

Microsoft PowerPoint - 講義10改.pptx

Microsoft PowerPoint - 講義10改.pptx 計算機プログラミング ( 後半組 ) Computer Programming (2nd half group) 担当 : 城﨑知至 Instructor: Tomoyuki JOHZAKI 第 9 回ファイルの入出力 Lesson 9 input/output statements 教科書 7.3 章 1 ファイル入出力 : サンプル 1 下記プログラムを outin1.f90 として作成し コンパイル実

More information

Microsoft PowerPoint - 4.pptx

Microsoft PowerPoint - 4.pptx while 文 (1) 繰り返しの必要性 while の形式と動作 繰り返しにより平 根を求める ( 演習 ) 繰り返しにより 程式の解を求める ( 課題 ) Hello. をたくさん表示しよう Hello. を画面に 3 回表示するには, 以下で OK. #include int main() { printf("hello. n"); printf("hello. n");

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 p 1 S = T i = 1 2 p i p i+1 i=0 i=0

More information

熱伝達の境界条件 (OF-2.1 OF-2.3) 1/7 藤井 15/01/30 熱伝達の境界条件 (OF-2.1 OF-2.3) 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認

熱伝達の境界条件 (OF-2.1 OF-2.3) 1/7 藤井 15/01/30 熱伝達の境界条件 (OF-2.1 OF-2.3) 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認 1/7 藤井 15/01/30 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認 3-1. モデルの作成 3-2. solver 3-3. 境界条件 3-4. 計算結果の確認 4. 計算結果の検証 5. まとめ 1. はじめに 現在 OpenFOAM で laplacianfoam

More information

<4D F736F F D208D5C91A297CD8A7793FC96E591E631308FCD2E646F63>

<4D F736F F D208D5C91A297CD8A7793FC96E591E631308FCD2E646F63> 第 1 章モールの定理による静定梁のたわみ 1-1 第 1 章モールの定理による静定梁のたわみ ポイント : モールの定理を用いて 静定梁のたわみを求める 断面力の釣合と梁の微分方程式は良く似ている 前章では 梁の微分方程式を直接積分する方法で 静定梁の断面力と変形状態を求めた 本章では 梁の微分方程式と断面力による力の釣合式が類似していることを利用して 微分方程式を直接解析的に解くのではなく 力の釣合より梁のたわみを求める方法を学ぶ

More information

ex04_2012.ppt

ex04_2012.ppt 2012 年度計算機システム演習第 4 回 2012.05.07 第 2 回課題の補足 } TSUBAMEへのログイン } TSUBAMEは学内からのログインはパスワードで可能 } } } } しかし 演習室ではパスワードでログインできない設定 } 公開鍵認証でログイン 公開鍵, 秘密鍵の生成 } ターミナルを開く } $ ssh-keygen } Enter file in which to save

More information

平成 年 月 7 日 ( 土 第 75 回数学教育実践研究会アスティ 45 ビル F セミナールーム A 札幌医科大学 年 P ab, を正の定数とする 平面上において ( a, を中心とする円 Q 4 C と (, b を中心とする円 C が 原点 O で外接している また P を円 C 上の点と

平成 年 月 7 日 ( 土 第 75 回数学教育実践研究会アスティ 45 ビル F セミナールーム A 札幌医科大学 年 P ab, を正の定数とする 平面上において ( a, を中心とする円 Q 4 C と (, b を中心とする円 C が 原点 O で外接している また P を円 C 上の点と 平成 年 月 7 日 ( 土 第 75 回数学教育実践研究会アスティ 45 ビル F セミナールーム 微分積分の拡張 変数関数問題へのアプローチ 予選決勝優勝法からラグランジュ未定乗数法 松本睦郎 ( 札幌北高等学校 変数関数の最大値 最小値に関する問題には多様なアプローチ法がある 文字を固定した 予選決勝優勝法, 計算のみで解法する 文字消去法, 微分積分を利用した ラグランジュ未定乗数法 がある

More information

コンピュータグラフィックス第6回

コンピュータグラフィックス第6回 コンピュータグラフィックス 第 6 回 モデリング技法 1 ~3 次元形状表現 ~ 理工学部 兼任講師藤堂英樹 本日の講義内容 モデリング技法 1 様々な形状モデル 曲線 曲面 2014/11/10 コンピュータグラフィックス 2 CG 制作の主なワークフロー 3DCG ソフトウェアの場合 モデリング カメラ シーン アニメーション テクスチャ 質感 ライティング 画像生成 2014/11/10 コンピュータグラフィックス

More information