CalculiX による有限要素解析
佐賀大学 海洋エネルギー研究センター 今井康貴
ver. 2013
Getting Started with CalculiX by Jeff Baylor (Convergent Mechanical Solutions LLC) を一部変更
1. なぜシミュレーション？
例：自動車フレーム設計
実物試験（時間と手間）
CADからCAEに
デジタルデータ化による開発サイクルのスピードアップ
CAD製図→強度計算→マシニングセンタ
2. 有限要素解析とは？
数値シミュレーションの一種
現象を微分方程式（積分方程式）で表す（モデル化）
区分化した対象領域に適用する（離散化）全体をまとめた線形方程式を解く
エネルギー解法
プリプロセス、計算、ポストプロセス
3. CalculiXで何ができる？
CGX プリプロセス（形状作成、要素分割、材質、境界条件）
ポストプロセス（応力、変位表示）
CCX 計算4. CalculiX 例題：正方形断面の片持ち梁
4.1 CGX プリプロセス（形状作成、要素分割、材質、境界条件）
4.2 CCX 計算
4.3 CGX ポストプロセス（応力、変位表示）
略記
K: キーボードによるコマンド入力
LMP: マウス左ボタン押す
LMR: マウス左ボタン離す
LMPR: マウス左ボタンを押して離す
MM: マウス中ボタンを押す
RM: マウス右ボタンを押す
M: ボタンを押さずにカーソルを動かす
V: 結果表示E: エンターキーを押す
緑字はコメントであり入力の必要なし
注意
3D画面外(凡例やファイルタイトルが表示されている領域)で、マウス左クリックすると、メニュー表示。
3D画面内で、マウス左/中/右ドラッグすると、View方向/ズーム/平行移動 View操作。
コマンドラインベースのコマンドを実行するには、
1. cgx ウィンドウをアクティブにする
2. 3D画面枠の中にマウスポインタを置く
3. コマンドをキータイプする
3D画面枠の外にマウスポインタを置いていると実行できない。
標準出力されているTerminal(DOS)ウィンドウ、cgxを起動したTerminal(DOS)ウィンドウをアクティブにして、キー入力しても無反応計算モデルごとにディレクトリをつくる。こまめに保存する。 send all frd, E

4.1 プリプロセス（形状作成、要素分割、材質、境界条件設定）
4.1.1 形状作成
WindowsのメニューからCalculiXを起動する。

1

[Start] [Programs] [bConverged] [CalculiX] [CalculiX Command]
cgxを起動する。
K: コマンド cgx -b beam.fbd ( は入力しない)の後にエンターキー(E)。
-b は構築モードを表す。すでに beam.fbd が存在すればファイルが開く。無い場合には新しいファイルが作成される
新しくモデルを作成する場合、もしくはすでに作った形状モデルを立ち上げる場合は、
cgx -b ファイル名
すでに作成したメッシュモデルを立ち上げる場合は、cgx -c ファイル名
ccxの結果ファイルを読み込む場合は、cgx -v ファイル名
V: 図面ウィンドウが開く。最下部に beam.fbd 、座標軸x-y-zがある。
M: カーソルを図面ウィンドウへ移動させる。
K: カーソルを図面ウィンドウへ入れたまま pnt p1 0 0 0 を入力する。
pnt [ポイント名] [x座標 y座標 z座標]
V: cgxを開始したウィンドウにテキスト pnt p1 0 0 0 が表示。
M: カーソルを少し動かす
V: 青い点が図面ウィンドウに表示。
K: 続けて pnt p2 1 0 0 E を入力。
ポイント点を変更する場合は、同じポイント名で座標を再入力
ポイント点を削除する場合は、[qdel]コマンドを使う[qdel] → [r],[r]で選択領域拡大 → 消したい点を選択領域内の中に入れて[q]2番目の点が見えないのは拡大倍率が高いため。以下コマンドでズームアウトする。
LMP
V: 灰色のメニュー現れる。最上段が Viewing 、最下段が -QUIT- 。

M: Frame を選択する。（コマンド入力可）
LMR
V: 入力した青い2点が図面領域に表示。
Frame ：物体に合わせて表示倍率を自動調節
左ボタン：物体の回転
中ボタン：表示倍率の変更

2

右ボタン：物体の平行移動
視点移動 メニュー→ Orientationコマンド+x view：+x軸方向に向かって見る+y view：+y軸方向に向かって見る+z view：+z軸方向に向かって見る
コマンド入力の場合
rot x rot -x ：x軸方向視点
rot y rot -y ：y軸方向視点
rot z rot -z ：z軸方向視点
K: plot pa all
V: 文字 p1 および p2 が青い点の隣りに表示
paのpはポイント、aが番号表示を指定するオプション、allは全てのポイントについて表示の指定
K: plot pa all r
V: 点とラベルが赤くなる。g＝緑、y＝黄色、k＝黒、b＝青、m＝紫、w＝白
コマンドの最初の文字をタイプミスした場合は、enterを押し再入力。他の文字をタイプミスした場合は、矢印キーで後ろに移動し、間違った文字を再入力。
線分の作成
２点を選択して接続する（qlinコマンド）
K: qlin
M: カーソルを図面領域に移動
K: r
M: カーソルを少し右下に移動
K: r
M: カーソルを少し動かす
V: カーソルが矩形になる。矩形の大きさは上記 r を入力した位置で決定される。１回目の r が左上、２回目の r が右下

M: 矩形カーソルをp1上に移動
K: b (for begin)
V: カーソルが正しく点を認識すると点の情報が入力ウィンドウに表示される。表示されない場合は正し

3

く認識されていない。
M: p2上にカーソルを移動
K: g (for generate)
V: 認識された点の情報、p1-p2を結ぶ線の情報が入力ウィンドウに表示される。

K: q (to quit the qadd command)
V: done が表示される。
M
V: カーソルがオリジナル形式に戻る。まだ線分は表示されない。
qlinを終了しない場合、 g を繰り返し使って接続する線分を作成することにより線を引き続けることが可能である。 b で新規開始点をつくることも可能。 l で既存の線分を選択し b c g で再定義する。
K: plus la all,E
V: 新しく作られた線およびそのラベルを表示。ラベルを消すには plus l all 。 plot l all を入力すると最初から線を描くことになり、線だけが表示される。点やラベルが消える。
セットse1の作成
K: qadd se1,E
K: a
V: 入力ウィンドウに mode:a 表示。
[a]は領域選択モード。[i]を押すと単一選択モードに戻る
先に進む前に mode:a 表示を確認する
次に線を包含するウィンドウを作成する。
M: 線を包含する仮想矩形の左上角にカーソルを移動
K: r
M: 線を包含する仮想矩形の右下角にカーソルを移動
K: rM
V: 矩形が表示される
何も起こらない場合、メニューエリアでLMPRした後にカーソルを描画領域に戻す。
M: 矩形領域内に線を入れる。矩形が小さすぎる場合には矩形領域選択（ r ）からやりなおす。

4

K: l (for lines)
V: 矩形カーソルによって線が認識されると線はピンクに変色し、その情報が入力ウィンドウに表示される。
K: q (to quit the qadd command)

前のコマンドで、 se1 という名前のセットを作った。これには L1 という名前の線だけである。
線の名前は自動的に与えられる。プログラムがつける名前は常に大文字である。
セットで指定されているエンティティの確認
plot [エンティティタイプ] [セット名称] ：指定したセット内だけのエンティティを表示
plus [エンティティタイプ] [セット名称] ：表示を追加
minus [エンティティタイプ] [セット名称] ：表示を除く
エンティティタイプ
n：節点 e：要素 l：ライン f：フェイス
表示する情報指定（組み合わせ）plus [エンティティタイプ]a [セット名称] ：エンティティ + ID
plus [エンティティタイプ]d [セット名称] ：エンティティ + (lineエンティティの場合、線上の分割数)
plus [エンティティタイプ]v [セット名称] ：エンティティ + 結果値
セット名称の変更
rnam [セット名称] [新しいセット名称]
セットの削除del se [セット名称]
K: plot la se1, E
V: se1の線とそのラベルが描画領域に表示される。今の場合は１本の線のみ。
K: plot la all, E
V: 変化なし
セット all は全てを含む。
swepコマンドでse1をベクトル(0,1,0)の方向に平行移動して3本の新しい線(L002,L003,L004)および1つの面（A001）を作る。
K: swep se1 se2 tra 0 1 0, E5

M:
V: 4つの線およびそのラベルが図面ウィンドウに表示される
K: plus sa all, E
V: A001面とラベルが桃色で表示される。
K: plus la se2 g, E
swepコマンドで定義されたse2セットの線が緑になる。

swepコマンドは2つの引数をとる:
1番目は移動するセット、2番目は移動物体が移動先の目標である
K: prnt se, E
V: 入力画面に全てのセット（se1,se2,all）が表示される。
n =nodes, e =elements, p =points, l =lines, b =bodies,
prnt se1 all stat:o n:0 e:0 f:0 p:4 l:4 s:1 b:0 L:0 S:0 se:0
2 se1 stat:c n:0 e:0 f:0 p:0 l:1 s:0 b:0 L:0 S:0 se:0
3 se2 stat:c n:0 e:0 f:0 p:2 l:1 s:0 b:0 L:0 S:0 se:0se3セット（A001面）を作成する
K: qadd se3, E
K: a
M: A001面を囲む矩形の左上角にカーソルを移動させる。
K: r
M: 矩形の右下角に移動してクリック
K: r
M
V: 矩形が表示される
M: 矩形カーソルで面を囲む。少なくともラベルは囲む
K: s (for surface)6V: 認識された面の情報が入力画面にに表示される。また描画領域の面が赤に変色
K: q (for quit)
M: カーソルがオリジナル形式に戻る
上記で a を省略すると、それぞれの s で最も大きな面が選択される。
a コマンドは s 入力によって矩形カーソル内にある全てのラベルがセットに入ることを保証する。
別の物体を追加選択するには、カーソルを移動し s （もしくは p =points, l =lines, b =bodies, n =nodes, e=elements）を繰り返せばよい。
面A001を平行移動させて角柱を作る。
K: swep se3 se4 tra 0 0 10, EM
V: 図面領域に6つの面および12本の線が描かれる。

7

K: plot ld all, E

V: 線はデフォルトでそれぞれ4分割される。
4.1.2 要素分割
各線に沿って4つの線形要素あるいは2つの二次要素を作成する。使用できる要素は以下の通り。
tr3 3-node 2-D elements (linear) 3節点三角形要素
qu4 4-node 2-D elements (linear) 4節点四角形要素qu8 8-node 2-D elements (quadratic) 8節点四角形要素
he8 8-node brick elements (linear) 8節点立方体要素8he20 20-node brick elements (quadratic) 20節点立方体要素
tr3, qu4, qu8要素は二次元分割に使用され、he8, he20は三次元分割に使用される。
要素タイプ
5.1.1 Eight-node brick element (C3D8 and F3D8)
5.1.2 Eight-node brick element with reduced integration (C3D8R and F3D8R)
5.1.3 Twenty-node brick element (C3D20 and F3D20)
5.1.4 Twenty-node brick element with reduced integration (C3D20R and F3D20R)
5.1.5 Twenty-node brick element with reduced integration and incompressibility condition at thecorner nodes (C3D20RI)
5.1.6 Four-node tetrahedral element (C3D4 and F3D4)
5.1.7 Ten-node tetrahedral element (C3D10 and F3D10)
5.1.8 Six-node wedge element (C3D6 and F3D6)
5.1.9 Fifteen-node wedge element (C3D15 and F3D15)
5.1.10 Six-node shell element (S6)5.1.11 Eight-node shell element (S8 and S8R)
5.1.12 Six-node plane stress element (CPS6)
5.1.13 Eight-node plane stress element (CPS8 and CPS8R)
5.1.14 Six-node plane strain element (CPE6)
5.1.15 Eight-node plane strain element (CPE8 and CPE8R)
5.1.16 Six-node axisymmetric element (CAX6)
5.1.17 Eight-node axisymmetric element (CAX8 and CAX8R)
5.1.18 Three-node beam element (B32 and B32R)
5.1.19 Three-node fluid element (D)5.1.20 Two-node unidirectional gap element (GAPUNI)
5.1.21 Two-node 3-dimensional dashpot (DASHPOTA)
5.1.22 Two-node 3-dimensional spring (SPRINGA)
角柱を8節点の立方体要素で分割する。
K: elty all he8, E
K: mesh all, E
K: plot m all, E
V: 梁が緑色に変色
M: カーソルをメニュー領域へ移動させる。
LMP
M: viewing → LINES
LMR
V: 面の色が消え、64要素を示す線が表示される。

9

K: plot e all, E
V: 変化なし
K: plot ea all, E
V: 要素がラベルが表示される
K: plus na all, E
V: 節点が表示される。
K: plot ba all, E
V: 物体B1が表示される。物体端（黒色）は viewing toggle model edges で消去可能。
K: plot ld all, E
V: 線が表示
長い線の分割数を変更
K: qdiv, E
M: 長い線の1つにカーソルを移動
K: 2
M
V: 線の分割が4から2に変更される
M: 別の長い線にカーソルを移動
K: 12 (12の前に空白)
M
V: 線が12分割される
K: a
入力ウィンドウに mode:a が表示された後、 r コマンドで全ての長い線の分割数が入る矩形を作る。
K: 12
V: 全ての線が12分割される
K: q (qdiv 終了)
K: del me all, E
4分割の粗いメッシュが削除される。
K: elty all he20, E
新しい要素でメッシュを切りなおす。
K: mesh all, E
K: plus e all, E10

完成した分割は以下の図になる

4.1.3 境界条件の設定
固定節点
メニューの orientation, +x view を選択する。
V: 物体をx軸+方向に向かって見る
K: plot l all, E
K: plus n all, E
z=0の面にある要素を固定点とする。
K: qadd fix1, E
K: a
M: カーソルを仮想矩形の左上方角へ移動
K: r
M: カーソルを仮想矩形の右下角へ移動
K: r
M: 矩形カーソルを動かし、z=0の節点を矩形内に入れる（y=1のエッジ部分は除く）
K: n
カーソルを大きくしてz=0の点を一挙に選択したいところだが、領域選択モードは複数のエンティティを一度に選択するものではない。
単にマウスポインタからの許容ズレ量を増やすだけで、選択できるのは一つずつ（nコマンドで繰り返し選択）。
しかし、複数のエンティティを一度に選択できる方法もあるにはあるので説明に加えておく。
メニューもしくはコマンド入力による視点変更を行う。その後マウスによる視点変更を行うことなく、領域選択モードで複数の点を一度に選択すれば、領域内の点は全て選択される。このとき、最前面の点だけでなく領域内に入る後方の点も選択の対象となる。
K: q
K: plot n all, E
K: plus n fix1 g, E
V: セットfix1の節点が緑になる

11

同様にfix2の設定
z=0かつy=1の点で、x=1を除く点をfix2とする（青の節点）

同様にfix3の設定
z=0かつy=1の点で、x=1の点をfix3とする（紫の節点）

12

荷重節点
メニューから orientation, +x view を選択する。
y=1の面を load セットとする。
K: plot f all, E
メニューから viewing - FILL 、 viewing - Toggle Element Edges を選択。
全ての面が黄色で表示される。面は要素の外側で、分割後にのみ存在する。
K: qadd load, E
K: a
M: 矩形の左上角へ移動
K: r
M: 矩形の右下角へ移動
K: r
M: 矩形を移動させ、y=1のすべての面を選択する。

K: f13

V: 荷重に関連した面はピンクで表される。
K: q
K: plot f load, E
V: load の節点が表示される
4.1.4 ファイルへの出力
形状情報ファイル all.fbd の作成
K: send all fbd, E
V: Some text in the typing window, ending with ready
入力ウィンドウに情報が表示され、ファイル書き出し終了後 ready が表示される。
点、線、表面、物体、セットが含まれるが節点や要素はない
節点および要素ファイル all.frd の作成
K: send all frd, E
V: 入力ウィンドウに情報が表示され、ファイル書き出し終了後 ready が表示される。
ABAQUSフォーマットの節点と要素ファイル all.msh の作成
K: send all abq
V: 入力ウィンドウに情報が表示され、ファイル書き出し終了後 ready が表示される。
さらに、空のファイル all.temp が生成された。
このファイルは温度定義に使用する
load セットの節点が属するすべての要素に大きさ1.0の圧力が分布するABAQUSファイル
load.dlo を作成する
K: send load abq pres 1.0
V: 入力ウィンドウに情報が表示され、ファイル書き出し終了後 ready が表示される。
ABAQUS形式の固定節点ファイル fix1.nam、fix2.nam、fix3.nam を作る。
K: send fix1 abq nam
K: send fix2 abq nam
K: send fix3 abq nam
V: 入力ウィンドウに情報が表示され、ファイル書き出し終了後 ready が表示される。
これは節点集合に荷重をかけるのに有用である。また個別の要素集合に違う材料特性を与えるのに有用である。
K: help
V: 入力ウィンドウにヘルプメニューが表示される。本書より多数の情報が含まれている
メニューから -QUIT- を選択しcgxを終了する。 all.fbd, all.frd などのファイルができた。

4.2 CCXによる解析
幾何形状を要素分割後、以下を与える
材料特性
境界条件における拘束と荷重解法の種類
出力項目
これらの段階ごとの例を示す。
Windowsメニュー[Start] [Programs] [CalculiX] [CalculiX Command] で入力ウィンドウを出す。
K: mkdir beam, E
K: move all.msh beam, E
K: move fix1.nam beam , E
K: move load.dlo beam , E
K: cd beam, Eテキストエディタを開く。
Windowsでは標準でノートパッドがある（[Start][Programs][Accessories][Notepad]）。

14しかし他にもっと良いテキストエディタが多数ある。
たとえばSciTE (http://www.scintilla.orq/SciTE.html)。EmacsやVI(またはGVIM)でもよい。
テキストエディタでファイル beam.inp を作りbeamディレクトリに保存する。
beam.inp の中身は以下の通り。
*INCLUDE, INPUT=all.msh*INCLUDE, INPUT=fix1.nam*MATERIAL, Name=steel*ELASTIC
28000, 0.3*SOLID SECTION, Elset=Eall, Material=steel*STEP*STATIC*BOUNDARY
Nfix1,3,3,0*DLOAD*INCLUDE, INPUT=load.dlo*NODE FILEU*EL FILE
S, E*END STEP
入力ファイルを 入力デッキ と呼ぶ。
星印から最初のコンマまでの文字を キーワード と呼ぶ。
関連データのキーワードを カード と呼ぶ。
この入力デッキについて説明する。
入力デッキは、有限要素解析問題を定義する。
一般に、メッシュ定義、材質、解法のタイプ、境界条件、出力リクエストから構成される。
上記のデッキは単純な解析である;
普通は問題定義により多くのカードが必要である。
Mesh:*INCLUDE, INPUT=all.msh*INCLUDE, INPUT=fix1.nam*INCLUDEキーワードはCCXに追加ファイルを読むよう命令する。
このモデルのメッシュは all.msh ファイルに定義されている。
.nam 拡張子ファイルに節点の定義がある。
これらは前節のCGXで生成された。
Material:*MATERIAL, Name=steel*ELASTIC
28000000, 0.3*SOLID SECTION, Elset=Eall, Material=steel
この解析に使用された材質モデルは線形弾性モデルである。
静的な線形弾性の解法にはヤング率とポアソン比があればよい。
これは最も単純な材質モデルである。
材質定義と共にSECTIONカードがある。今の場合*SOLID SECTION。
材質データはMatWeb(http://www.matweb.com)にある。
Analysis type:*STEP*STATIC...
*END STEP

15

解析には少なくとも1つのステップを定義する。
1ステップは *STEP で開始、 *END STEP で終了する。
ステップ内には、解析、境界条件、出力の定義がある。
この場合、線形の静的解析である。
Boundary conditions:*BOUNDARY
Nfix1,3,3,0*DLOAD*INCLUDE, INPUT=load.dlo
モデルの境界条件は*BOUNDARYに定義される。
Nfix1 節点は3番目の自由度(DOF)の変位が拘束される分布荷重も適用される(*DLOAD)。
This load is applied to element faces in the file load.dlo
この荷重は load.dlo ファイルの面に適用される
Output requests:*NODE FILEU*EL FILE
S, E
ポストプロセス用に節点変位および要素応力を出力する。出力はFRDフォーマットのファイルである。
これらのキーワードおよび他の多くのオプションはCCX解説にある。
ソルバを実行して問題を解く。
K: ccx beam, E
解析が正常終了すると Job finished が表示される。

4.3 CGXによるポストプロセス
K: cgx -v beam.frd, E
M: 描画領域の左側あるいは下（メニュー領域と呼ぶ）にカーソルを移動
LMP
V: 灰色のメニューが表示される。上が Datasets 、下が -QUITM: Datasets で停止
V: 灰色のサブメニューが表示される。
M: カーソルを 1.Disp 1.00000 に移動
LMR
現在のデータセットは変位である。
M: カーソルを描画領域の左側あるいは下に移動
LMP
V: 灰色のメニューが表示される。上が Datasets, 下が -QUITM: Datasets で停止
V: 灰色のサブメニューが表示される
M: -Entity- で停止V: サブメニューが表示される
M: カーソルを D2 に移動
LMR
鉛直方向の変位が等高線で表示される。

梁の鉛直方向の変位は-0.536である。
理論式 Ymax=(-wl^4)/8EI からする、結果は十分近い。
Stress データセットおよびSZZを選択する。

16

理論式 σyy=Mc/I から曲げ応力理論値は300である。
FEMの結果は315と-289である。
梁理論の仮定により合致する細かいメッシュを使うとより理論に一致する結果が出るだろう。
しかし、今の結果は実用的に十分である。
本稿では単位を記述していない。単位はモデルの全体にわたって一貫していなければならない。
Getting More HelpThe Yahoo! Group for CalculiX (http://groups.yahoo.com/qroup/calculix/)（以下略）
デザインversion1.0 有尾元基 2013/06/11

17