WANtaroHP (GMTによるFEM結果表示)

toEN

ページ概要

このページでは,GMTを使ってFEMによる計算結果を表現する方法を紹介しています.

GMTで作成されたepsファイルは,ImageMagickを用いてpng形式に変換されています.

Contents
メッシュ図および3次元モノクロコンター
メッシュ図および2次元カラーコンター
メッシュ図および2次元カラーコンター
2次元プロット

GMTによるFEMメッシュとコンターマップ作成

GMTによる凡例を含む2次元プロット



熱伝導解析結果の表示

概要

このプログラムは,GMTによりFEMメッシュと温度分布の3次元表示を行うプログラムです.

Fortran プログラム (f90_GMTheat.f90)

若干の説明を下に示します.

以下のファイルはプログラム実行前に準備されていなければなりません.

FilenameDescriptionRemarks
_col_mesh.txtメッシュ色を指定する入力ファイルファイル名は固定
_inp_base.txt作図情報を含む入力ファイルファイル名は固定
out_CPT_ondom.csvFEM解析の出力ファイルファイル名は変えられる

FEM解析の出力ファイルは,管理人作:'f90_FEM_HEAT.exe'による出力ファイルです.

処理を実行するバッチファイルを下に示します. Fortranプログラムで読み込まれるいくつかのファイルがバッチファイルの中で作成されています.

001  gfortran -o f90_GMTheat.exe f90_GMTheat.f90
002
003  rem definition of mesh color (1:MATEL)
004  echo 255,192,203 > _col_mesh.txt
005  echo 255,250,205 >> _col_mesh.txt
006
007  rem definition of basic data
008  rem integer::ind,ibc
009  rem real(4)::baselength,baseheight
010  rem real(4)::bavx,bfvx
011  rem real(4)::bavz,bfvz
012  rem character::strx*100,stry*100
013  echo 0 0 > _inp_base.txt
014  echo 10.0 5.0 >> _inp_base.txt
015  echo 10.0 5.0 >> _inp_base.txt
016  echo 5.0 1.0 >> _inp_base.txt
017  echo "x-distance (m)" >> _inp_base.txt
018  echo "y-distance (m)" >> _inp_base.txt
019
020  f90_GMTheat out_CPT_ondom.csv
021
022
023  del _*
001
プログラム 'f90_GMTheat.f90'のコンパイル
004-005
ファイル'_col_mesh.txt.' の作成. メッシュ色はこのファイルで定義され,3種類の数値は 'R G B' を示す. この事例では,'echo'コマンドを用いて新しいファイルを作成しています.また2材料が使われている(パラメータMATEL=2)ので,2種類の色が定義されています.
013-018
ファイル '_inp_base.txt'の作成. このファイルはGMTのためのパラメータを定義します.
indFEMメッシュ図に節点番号と要素番号を描画する (0: 描画しない, 1: 描画する)
ibcFEMメッシュ図に境界条件を描画する (0: 描画しない, 1: 描画する)
baselengthx軸とy軸の寸法(単位はcm)
baseheightz軸の寸法(単位はcm)
bavxGMTのx軸とy軸に対する-Bオプションのaに続く値
bfvxGMTのx軸とy軸に対する-Bオプションのfに続く値
bavzGMTのz軸に対する-Bオプションのaに続く値
bfvzGMTのz軸に対する-Bオプションのfに続く値
strxx軸のラベル.文字列のためダブルプライム(")が必要
stryy軸のラベル.文字列のためダブルプライム(")が必要
注意) z軸のラベルは 'Temperature'に固定されています.
020
プログラム'f90_GMTheat.exe'の実行.このexeファイルの機能は,バッチファイル'bat_gmt_xyz.bat'を作成し,組み込みサブルーチン'system(***)'によりこれを実行するものです.
FEM解析結果が入った入力ファイル'out_CPT_ondom.csv'は,Windowsのコマンドプロンプトのコマンドラインより読み込まれます.
出力図は以下に示すとおり.
FilenameDescriptionRemarks
fig_gmt_mesh.epsFEMメッシュ図(eps)出力ファイル名は固定
fig_gmt_xyz_xx.eps3次元温度分布図(eps)出力ファイル名は固定.'xx'は時刻を意味します.
FEMメッシュにおける境界条件の記号
SymbolDescription
温度指定境界
熱伝達境界
023
作業ファイルの削除

プログラムと出力図

ソースプログラムと実行用バッチファイル

FilenameDescription
F90プログラムソースコード
GMT実行用バッチファイル

トンネル周辺の温度の出力サンプル

以下のサンプルは岩盤内トンネル周辺の温度変化を示します.年平均温度は 10°C, 年間の温度変化振幅は ±10°Cです.

Filenamedescription
実行用バッチファイル
出力事例 (初期状態)
出力事例 (639 日後)
出力事例 (pdf ファイル)


浸透流解析結果の表示

概要

このプログラムは,GMTにより,FEMメッシュ・圧力水頭コンター・全水頭コンターおよび流速ベクトルを示すプログラムです.

Fortran プログラム (f90_GMTseep.f90)

簡単な説明を以下に示します.

以下のファイルはプウログラム実行前に準備されていなければなりません.

FilenameDescriptionRemarks
_col_mesh.txtメッシュ色を定義する入力ファイルファイル名は固定
_inp_base.txt作図情報の入力ファイルファイル名は固定
0_cpt.cptGMTが読み込むcptファイルファイル名は固定
out_fem_zone4m.csvFEM解析結果のファイルファイル名は変えられる

FEM解析の出力ファイルは,管理人作 'f90_FEM_SEEP.exe' による出力ファイルです.

処理を実行するためのバッチファイルを以下に示します. Fortranプログラムで読み込まれるいくつかのファイルは,このバッチファイルの中で作成されます.

001  gfortran -o f90_GMTseep.exe f90_GMTseep.f90
002
003  copy 0_cpt_dam.cpt 0_cpt.cpt
004
005  rem define of mesh color (1:MATEL)
006  echo 255 255 204 > _col_mesh.txt
007  echo   0 255 255 >> _col_mesh.txt
008  echo 255   0 255 >> _col_mesh.txt
009  echo   0 255 255 >> _col_mesh.txt
010  echo 255 255 204 >> _col_mesh.txt
011
012  rem integer::ind,ibc,iph,ivc,isc
013  rem real(4)::baselength,grdspc
014  rem real(4)::bav,bfv
015  rem real(4)::conint,annint
016  rem character::strx*100,strz*100
017  echo 0 1 1 1 1 > _inp_base.txt
018  echo 12.0 0.1 >> _inp_base.txt
019  echo 10.0 5.0 >> _inp_base.txt
020  echo  1.0 5.0 >> _inp_base.txt
021  echo "Distance (m)" >> _inp_base.txt
022  echo "Altitude (m)" >> _inp_base.txt
023
024  f90_GMTseep out_fem_zone4m.csv
025  copy fig_gmt_mesh.eps fig_gmt_mesh_dam.eps
026  copy fig_gmt_conp.eps fig_gmt_conp_dam.eps
027  copy fig_gmt_vect.eps fig_gmt_vect_dam.eps
028
029  del fig_gmt_mesh.eps
030  del fig_gmt_conp.eps
031  del fig_gmt_conh.eps
032  del fig_gmt_vect.eps
033  del _*
001
プログラム 'f90_GMTseep.f90'のコンパイル
003
事前に準備された '0_cpt_dam.cpt' を '0_cpt.cpt'にコピー
006-010
ファイル '_col_mesh.txt' の作成. メッシュ色はこのファイルで定義されます.このファイル中の3つの数値は'R G B'を意味します. このサンプルでは,'echo'コマンドを用いて,新しいファイルを作成しています.また5種類の材料が用いられている(MATEL=5)ため,5種類の色が定義されています.
017-022
ファイル '_inp_base.txt'の作成.このファイルはGMTのためのパラメータを定義します.
indメッシュ図への節点番号・要素番号の描画 (0: 描画しない, 1: 描画する)
ibcメッシュ図への境界条件の描画 (0: 描画しない, 1: 描画する)
iph圧力水頭コンターへの全水頭線の重ねがき,あるいはその逆 (0: 行わない, 1: 行う)
ivc速度ベクトル図に重ねがきするコンターの種類 (1: 圧力水頭コンター, 2: 全水頭コンター)
iscコンター用スケールマップの描画 (0: 描画しない, 1: 描画する)
baselength図の寸法(単位:cm)
grdspc'grd'ファイルにおけるメッシュ間隔
bavGMTのx軸およびy軸に対する-Bオプションのaに続く数値
bfvGMTのx軸およびy軸に対する-Bオプションのfに続く数値
conint'grdcontour'コマンドの-Cオプションにおけるコンター間隔の値
annint'grdcontour'コマンドの-Aオプションにおける目盛間隔の値
strxx(水平)軸ラベル.文字列のためダブルプライム(")が必要
strzz(垂直)軸ラベル.文字列のためダブルプライム(")が必要
024
プログラム 'f90_GMTseep.exe' の実行.このexeファイルの機能は,バッチファイル 'bat_gmt_seep.bat' を作成し,組み込みサブルーチン'system(***)'によりこれを実行することです.
FEM解析結果が収められた入力ファイル 'out_fem_zone4m.csv' は,Windowsコマンドプロンプトのコマンドラインから読み込まれます.
出力画像ファイルは以下のとおり.
FilenameDescriptionRemarks
fig_gmt_mesh.epsFEMメッシュ図(eps)ファイル名は固定
fig_gmt_conp.eps圧力水頭コンター図(eps)ファイル名は固定
fig_gmt_conh.eps全水頭コンター図(eps)ファイル名は固定
fig_gmt_vect.eps流速ベクトル図(eps)ファイル名は固定
FEMメッシュ図における境界条件の記号
SymbolDescription
全水頭指定境界
流量指定境界
浸出点境界
025-027
出力ファイル名は固定されているため,copyコマンドにより出力ファイル名を変更
029-033
作業ファイルの削除

プログラムと図面

ソースプログラム

FilenameDescription
f90 プログラムソースコード
GMT実行用バッチファイル

ゾーン型フィルダム

FilenameDescription
GMT用cptファイル (コンターマップ色を定義)
GMT実行用バッチファイル
FEMメッシュ図
圧力水頭コンター
流速ベクトル図

均一型フィルダム

FilenameDescription
GMT実行用バッチファイル
FEMメッシュ図
圧力水頭コンター図
流速ベクトル図

トンネル周辺の圧力水頭分布

FilenameDescription
GMT用cptファイル (コンターマップ色を定義)
GMT実行用バッチファイル
FEMメッシュ図
圧力水頭コンター図
全水頭コンター図
流速ベクトル図


2次元応力解析結果の表示

概要

このプログラムは,GMTによりFEMメッシュ図と主応力コンター図を示すプログラムです.

Fortran プログラム (f90_GMTplnt.f90)

下記ファイルはプログラム実行前に準備されていなければなりません.

FilenameDescriptionRemarks
_col_mesh.txtメッシュ色を定義する入力ファイルファイル名は固定
_inp_base.txt作図用情報の入力ファイルファイル名は固定
0_cpt.cptGMT用cptファイルファイル名は固定
out4nodPS0_L.csvFEM解析出力ファイルファイル名は変えられる

FEM解析による出力ファイルは,管理人作 'f90_FEM_PLNT.exe' の出力ファイルです.

処理実行用バッチファイルを以下に示します. Fortranプログラムから読み込まれるいくつかのファイルが,このバッチファイルの中で作られています.

001  gfortran -o f90_GMTplnt.exe f90_GMTplnt.f90
002
003  makecpt -Cno_green -T-1/1/0.1 -I > 1_cpt.cpt
004  gawk "{a[NR]=$0}END{for(i=1;i<=NR-1;i++){print a[i]};gsub(/(128)/,\"255\",a[NR]);print a[NR]}" 1_cpt.cpt > 0_cpt.cpt
005
006  rem define of drawing data
007  rem integer::ind,ibc,ifc,isc
008  rem real(4)::baselength,grdspc
009  rem real(4)::bav,bfv
010  rem real(4)::conint,annint
011  rem character::strx*100,stry*100
012  rem integer::ncut,numcut(10)
013  echo 0 1 0 1 > _inp_base.txt
014  echo 12.0 50 >> _inp_base.txt
015  echo 5000.0 5000.0 >> _inp_base.txt
016  echo  0.5 0.5 >> _inp_base.txt
017  echo "x-distance (mm)" >> _inp_base.txt
018  echo "y-distance (mm)" >> _inp_base.txt
019  echo  1 1 >> _inp_base.txt
020
021  rem define of mesh colour (1:MATEL)
022  echo 0,0,0 > _col_mesh.txt
023  echo 255,192,203 >> _col_mesh.txt
024  echo 255,250,205 >> _col_mesh.txt
025
026  f90_GMTplnt out4nodPS0_L.csv
027  copy fig_gmt_mesh.eps fig_gmt_mesh_ps.eps
028  copy fig_gmt_ps1.eps fig_gmt_ps1_ps.eps
029  copy fig_gmt_ps2.eps fig_gmt_ps2_ps.eps
030
031  del fig_gmt_mesh.eps
032  del fig_gmt_ps1.eps
033  del fig_gmt_ps2.eps
034  del _*
001
プログラム 'f90_GMTplnt.f90'のコンパイル
003
GMTコマンド 'makecpt' による,ファイル '1_cpt.cpt' の作成. このケースでは, 'no_green' が基になるファイルとして使われており,レンジは-1から1の範囲,符号はデフォルト値の逆にセットされています.
004
'gawk'により,ファイル '0_cpt.cpt' を作成. ここでの扱いは,ファイル '1_cpt.cpt' の最終行で,色'gray'を'white'に変えています.
013-019
ファイル '_inp_base.txt'の作成. このファイルは,GMT用のパラメータを定義します.
indメッシュ図における節点番号・要素番号の表示 (0: 表示しない 1: 表示する)
ibcメッシュ図における境界条件の表示 (0: 表示しない, 1: 表示する)
ifcメッシュ図における荷重条件の表示 (0: 表示しない, 1: 表示する)
iscコンター用スケールマップの表示 (0: 表示しない, 1: 表示する)
baselength図の寸法(単位:cm)
grdspc'grd'ファイルにおけるメッシュ間隔
bavGMTのx軸・y軸における-Bオプションのaに続く値
bfvGMTのx軸・y軸における-Bオプションのfに続く値Value of 'f' in '-B' option for x and y-axis on GMT
conint'grdcontour'コマンドのオプション-Cにおけるコンター間隔の値
annint'grdcontour'コマンドのオプション-Aの目盛間隔の値
strxx(水平)軸ラベル.文字列のためダブルプライム(")が必要.
stryy(垂直)軸ラベル.文字列のためダブルプライム(")が必要.
ncutコンター作成に用いない材料の数.このケースでは鉄管に対する値'1'
numcut(i)コンター作成に用いない材料種別番号.このケースでは鉄管の残量種別番号に対する'1'
022-024
ファイル '_col_mesh.txt' の作成.このファイルでメッシュ色が定義される.ファイル内の3つの数値は'R G B'を意味する. この事例では,バッチファイル内で'echo'コマンドを使ってファイルが生成され,3種類の材料(MATEL=3)が用いられているため3種類の色が定義される.
026
プログラム 'f90_GMTplnt.exe' の実行.このexeファイルの機能は,バッチファイル 'bat_gmt_plnt.bat' を生成し,組み込みサブルーチン 'system(***)'を用いてこれを実行することです.
FEM解析結果を格納した入力ファイル 'out_4nodPS0_L.csv' はWindowsコマンドプロンプトのコマンドラインから読み込まれます.
出力図は下に示すとおりです.
FilenameDescriptionRemarks
fig_gmt_mesh.epsFEMメッシュ図(eps)ファイル名は固定
fig_gmt_ps1.eps第一主応力コンター図(eps)ファイル名は固定
fig_gmt_ps2.eps第二主応力コンター図(eps)ファイル名は固定
FEMメッシュ図における境界条件の記号
SymbolDescription
x方向変位指定境界
y方向変位指定境界
xおよびy方向変位指定境界
027-029
出力ファイル名は固定されているので,copyコマンドを用いてファイル名を変更することが必要.
031-034
作業用ファイルの削除

プログラムと図面

ソースコード

FilenameDescription
f90ソースコード
GMT実行用バッチファイル

一様引張りを受ける孔を有する板の主応力分布事例

ここでは,一様引張りを受ける孔を有する板の主応力分布の事例が示されています.

FilenameDescription
GMT実行用バッチファイル
FEMメッシュ図
第一主応力コンター図
第二主応力コンター図

埋設水圧鉄管周辺の主応力分布事例

FilenameDescription
GMT実行用バッチファイル
FEMメッシュ図
第一主応力コンター図
第二主応力コンター図


凡例を含む2次元プロット

概要

f90プログラム実行用バッチファイルを下に示します.

gfortran -o f90_GMTgra.exe f90_GMTgra.f90
f90_GMTgra inp_form.txt bat_test.bat

データ読み込みのためのf90プログラムコードを以下に示します.

call getarg(1,fnameR) !input filename for control
call getarg(2,fnameW) !output filename (batch filename for GMT execution)

open(11,file=fnameR,status='old')
read(11,'(a)') fnameF  !output image filename (eps)
read(11,'(a)') xlabel  !label of x-axis
read(11,'(a)') ylabel  !label of y-axis
read(11,'(a)') range   !range of x-axis/range of y-axis
read(11,'(a)') scale   !length of x-axis/length of y-axis
read(11,'(a)') xga     !grid interval and tickmark for x-axis
read(11,'(a)') yga     !grid interval and tickmark for y-axis
read(11,*) nplot,dplot !number of plot data, size of symbol
allocate(fn(1:nplot),sxp(1:nplot),syp(1:nplot),sleg(1:nplot))
allocate(nline(1:nplot),nsymb(1:nplot))
do i=1,nplot
    !data filename, column for x, column for y, line type, symbol, title
    read(11,*) fn(i),sxp(i),syp(i),nline(i),nsymb(i),sleg(i)
end do
read(11,*) strP,dx,dy   !location of legend, distance from x-axis, distance from y-axis
read(11,*) ipt,scl,llen !font size, font w/h, line length (number of characters)
close(11)
線種 (nline) 記号 (nsymb)
0none 0none
1solid line 10circle 11black circle
2dash line 20square 21black square
3long and short dash line30triangle 31black triangle
4broken line 40diamond 41black diamond
凡例領域の位置 (strP)
"bl"グラフ内左下 (bottom left in graph area)
"br"グラフ内右下 (bottom right in graph area)
"tr"グラフ内右上 (top right in graph area)
"tl"グラフ内左上 (top left in graph area)
"ot"グラフ外右上 (top right out of graph area)
"or"グラフ外右下 (bottom right out of graph area)
dx, dy
: 凡例領域外枠のx軸・y軸からの距離(最短距離)
ipt
: フォントサイズ (pt)
scl
: 1フォントの幅と高さの比 (width/height)
llen
: 文字数で数えた線の長さ

プログラムと図面

ソースコード

FilenameDescription
f90プログラムソースコード

Samples

FilenameDescription
入力データ
入力データ
制御用データ
GMT実行用バッチファイル
凡例描画用バッチファイル
出力画像ファイル

toEN
inserted by FC2 system