近況?

Windows版(PrePoMax?OptiMax?

PrePoMax?(プリポスト付き)

OptiMax?(最適化)

Windows版(CalculiXLauncher)

  • ソルバー(ccx)は普通に動くが、プリ・ポストプロセッサ(cgx)のサイズ感がおかしい(たまたま?)。 ちなみに近藤マシンでは、WSL上のcgxでも同様な問題あり。
  • CCX WIZARD! はLinuxのみで使えるとのこと。
  • UNV→inpコンバーターも使える模様。

FreeCADでCalculiXをソルバーとして解析できる?

SalomeとCalculiXを連携できそうなCalculiXLaucher(要調査)

直交異方性材料

今まで通りのひずみ-応力関係の逆関係を入力する方法

  • (

ELASTIC,TYPE=ORTHOROPIC

D1111,D1122,D2222,D1133,D2233,D3333,D1212,D1313 D2323

  • ) の他にも,Code_Asterと同様な入力方法↓もできるようになった.
  • (

ELASTIC,TYPE=ENGINEERING CONSTANTS

E1,E2,E3,nu12,nu13,nu23,G12,G13, G23

  • )

unvからinpへの変換

インストール

CalculiXは、バージョン1.8以降は実行ファイルを展開しただけでは走らなくなって、 SPOOLES.2.2やARPACKの導入も必要となり、インストールが難しくなってしまった。 恐らくインターフェースやプリ・ポストプロセッサーなどがGUIで使いやすいと 思われる &link(DEXCS,http://dexcs.gifu-nct.ac.jp/pukiwiki/index.php?%CD%D7%A4%CF%B2%BF%A4%CA%A4%CE) は、ADVENTUREを利用していて、今のところ動的解析などには対応していないようだが、 いずれ、 &link(CalculiXを導入して動的解析にも対応する方向性,http://dexcs.gifu-nct.ac.jp/pukiwiki/index.php?cmd=read&page=%A5%A2%A5%F3%A5%B1%A1%BC%A5%C8&word=calculix) みたいなので、様子を見たい。 CalculiXのrpm版もバージョン2.0以降のものも検索すればそれなりに見つかるが (64ビット版が主流で32ビット版は少ないので注意)、依存性が高く、 Vine等へのインストールは簡単ではない。 &link(CAElinux,http://caelinux.com/CMS/index.php)の64bit版が比較的最近のCalculixが プレインストールされてるようなので、64bitパソコンにCAElinuxをインストールして 計算サーバーとするか。

Ubuntu 16.04 LTS へのインストール

 Ubuntu16.04LTSを(近藤のPCに)インストールして、色々と試してみた。 Ubuntu16.04LTSの&link(公式パッケージ,http://packages.ubuntu.com/search?keywords=calculix&searchon=names&suite=xenial&section=all)を探してみるとccx_2.9が入っているようで、端末で次のように入力するとインストールできる。

  • ( $ sudo apt-get install calculix-ccx
  • ) これだけでいつも通りの計算できるようだが、cgxはパッケージにないので結果が見れない。そこで、&link(千田さんのメモ,http://www.str.ce.akita-u.ac.jp/cgi-bin/gwiki/wiki.cgi?CalculiX%a5%e1%a5%e2#i49)を参考にcgx_2.11をインストールしてみると、ccxとはバージョン違いだが、ちゃんと結果も見れる。ちなみに、ubuntu16.10ではcgxもパッケージに追加されているらしい。
  • ccx_2.6との違い
    • 荷重や強制変位の方向の書き方が変わった。例えば、&link(ccxkataz.f90,http://www.str.ce.akita-u.ac.jp/~gotou/programoj/ccx/ccxkataz.f90)を実行すると、節点群"LAST"のy軸方向に載荷するという意味で、下の**に続く行のような入力データができあがるが、それをその下の行のように書き換えないといけない。つまり、載荷したい方向を2回続けて書かないといけない。何でだろう?
    • (

CLOAD

LAST, 2, 6.6666666666666666E-002

LAST,  2,  2,  6.6666666666666666E-002
  • )

後藤ちゃちゃ(17/3/29)**はコメント文では?

  • 近藤(17/3/29)そこの行でエラーが出るので、それをコメント文にしました。それで、その下の行のように書かないといけないみたいです。
  • 後藤(17/3/30)そうですか。CalculiXのinpファイルはABAQUSのinpファイルにほぼ対応させた形式ですが、ABAQUSのinpファイルが変わったのに合わせたとか?
  • 接触解析のとき、接触面の組み合わせの他にも、面同士の種類を入れないといけなくなった。例えば、スレーブ面の接点がマスター面に接触するときには、
  • (

CONTACT PAIR,INTERACTION=SI1,TYPE=NODE TO SURFACE

  • )
  • というように、TYPEが必要。上記以外にも、スレーブ面がマスター面に接触する場合の"~,TYPE=SURFACE TO SURFACE"などがある("NODE TO SURFACE"の方が収束する)。
  • 後藤ちゃちゃ(2016/11/14):そういうことなら、2017年度以降のパソコン環境はubuntu16.04ベースでいいのかも。Salome-Mecaはたぶん普通に入るでしょう。MateだのLaTeXだのも特に問題ないかなと。 Ubuntu12.04は2017/4までのサポートだし、それまでCAELinuxの新しいのが出るかどうかは微妙だし。来年3月辺りに環境整備しますか。それまでに、インストールしたいものがインストールできるか、今までと同様の作業ができるかの検証をしておく必要がありますね。

CAELinux

&link(CAElinux,http://caelinux.com/CMS/index.php)はUbuntuベースだが、 インストール後にアップグレードしたらccxも最新版の2.3にアップグレードされた。 これはいいかもしれない。 Ubuntuのクライアント版はサーバー系ツールのセットアップがちょっと めんどくさいような気がしていたが、CAELinuxにはsshdがプリインストールされていて、proftpdも簡単にインストールできる。 サービス管理(system-config-services)は、synapticの一覧にはないようだけど、 なんか他のツールがあるのかな。

コンクリート

 コンクリートのように圧縮のみに抵抗する材料も扱える。

  • 例えば、
    • (

MATERIAL,NAME=COMPRESSION_ONLY

USER MATERIAL,CONSTANTS=2

 14.e3,        1.e3
  • )
  • と書くと、ヤング率が14MPaで、許容する最大引張応力が1MPaという設定になる。
    • ところで、ポアソン比を入力するところがないのはどうなっているのだろう?
  • COMPRESSION_ONLYの他にも特殊な材料がたくさんある(/opt/CaluliX_2.6.1/src/umat_*.fがそれ)。また、/opt/CaluliX_2.6.1/src/umat_*.fは新しくユーザーが追加できるらしい。
  • 参考:http://open-shelf.appspot.com/CalculiX/ccx-doc/node19.html

面の定義

マニュアル(ccx_2.6.1.pdf)のp.367に要素ごとの面番号の定義が書かれている。よく使うC3D8とかは、

  • ( 面1:節点1,2,3,4 面2:節点5,8,7,6 面3:節点1,5,6,2 面4:節点2,6,7,3 面5:節点3,7,8,4 面6:節点4,8,5,1
  • ) というように定義されている。例えば、接触解析とかで、要素番号1~4の面6(S6)の集まりを接触面に定義したい時は、
  • (

SURFACE,NAME=men

1,S6
2,S6
3,S6
4,S6
  • ) みたいにして使う。 ちなみに、接触解析をするとき、マスター面の定義は必ず上記のようしなければならないが、スレーブ面に関しては上記以外にも節点で定義する方法もある。

ヒンジ

立体要素と板要素を組み合わせる場合

CAELinuxの場合、/opt/CalculiX_2.6.1/ccx_2.6.1.pdfがマニュアル。 ここのp.96によると、「立体要素と板要素」あるいは「立体要素と梁要素」の組み合わせでは、初期状態でその境目がヒンジになる。 以下、その例題(/opt/CalculiX_2.6.1/ccx_2.6.1/test にある)

  • solidshell1.inp:ただ、立体と板の節点を共有させただけのモデル。パタリと蝶番のように動く。
  • solidshell2.inp:立体要素に重ねて板要素を入れることで剛結にしたモデル。板部分が曲がる。

多点拘束を用いる場合

立体要素だけ

 特別なことをしなくても、立体要素同士を線状に接点共有させるだけでヒンジになる。ただし、ただの線形解析だと回転した要素が膨らんでしまうので、幾何学非線形解析にすることが必須。勿論、強制変位でないと計算できない。  この方法なら、折り畳み円筒を一定厚にし、かつ蝶番を再現するというモデリングが楽にできるのでは?

梁の場合のヒンジ節点

ccx_2.5

ざっといじっていてわかったこと(変更点?)を箇条書きで

  • 2.5 http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h.png

&link(daiya6h.dat,http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h.dat)

  • 2.3 http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h23.png

&link(daiya6h23.dat,http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h23.dat)

  • ある載荷節点(節点番号17から20)の変位

2.5

  • (
           17  9.337687E-11 -1.359864E-23 -1.388775E-09
           18  1.085580E-23  9.337687E-11 -1.388775E-09
           19 -9.337687E-11 -8.762945E-24 -1.388775E-09
           20  5.218346E-24 -9.337687E-11 -1.388775E-09
  • )

2.3

  • (
           17  9.3377E-11 -2.7324E-23 -1.3888E-09
           18  7.1344E-24  9.3377E-11 -1.3888E-09
           19 -9.3377E-11 -1.1550E-23 -1.3888E-09
           20 -6.2168E-24 -9.3377E-11 -1.3888E-09
  • )
  • 上の画像からわかるように、2.5で解いて出来たfrdファイルをcgxでみると、 inpファイルで設定した厚さを反映したモデルを見ることができる。
    • cgxで節点を見ると http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/25setten.png

のようになっていて、これは&link(マニュアル(the documemtation),http://www.dhondt.de/)のFigure 63と同じ節点の振り方。

ccx_2.6.1をCAELinux2011で実行できるように(まだできない)

CalculiXの作者guido dhondtさんに問い合わせたところ、外向き法線シェル要素で1.7では 解けるものが2.3では解けない問題は、2.6では解決されているということなので、 ccx_2.6.1を使うのがよさそうだ。 ccx_2.6.1のa Linux executable(ccx_2.6.1.tar.bz2)を適当なところにダウンロードして

  • ( $ bunzip2 ccx_2.6.1.tar.bz2 $ tar xvf ccx_2.6.1.tar
  • ) で展開。CalculiX/ccx_2.6.1/src/の中にある実行ファイルccx_2.6.1を/usr/binに移動。 libgfortran3がもしインストールされてなければ、synaptic等からインストール。
  • ( $ ls -l /usr/lib/libgfortran*
  • ) とやって、/usr/libにあるlibgfortranのバージョン(とリンク関係)を確認。 恐らく、/usr/lib/libgfortran.so.3.0.0があって、 /usr/lib/libgfortran.so.3(青色)からリンクが張られている。 この状態で ccx_2.6.1を実行すると、恐らく以下のエラーが出る。
  • ( error while loading shared libraries: libgfortran.so.2: cannot open shared object file: No such file or directory
  • ) そこで、以下のように/usr/libに移動してからlibgfortran.so.2からもlibgfortran.so.3.0.0にリンクを張る。
  • ( sudo ln -s libgfortran.so.3.0.0 libgfortran.so.2
  • ) これでccx_2.6.1を実行すると、Usage: CalculiX.exe -i jobname を聞いてくるところまで行くが、hoge.inpファイルを読みこませると以下のエラー。
  • ( ccx_2.6.1 hoge ccx_2.6.1: symbol lookup error: ccx_2.6.1: undefined symbol: _gfortran_internal_malloc
  • )

1.7と2.3の比較

  • 上の計算で得られた.frdファイルの図 http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/daiya/1-7m8n2.png http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/ccx/2-3m8n2.png

マニュアル

inpファイルの書き方

サンプルファイル

コメント

  • (

こんなふうに ** を最初に書くとコメントが書ける

つまり ** の行はデータ入力の際に無視される

  • )

要素の節点番号

inpファイルで、まず各節点と節点座標を定義してから、 各要素ごとに要素番号とその要素の各節点の節点番号を設定していくが、 要素の種類ごとに1要素の節点番号の並べ順には決まりがあるので、 マニュアルやサンプルの節点番号の振り方を参照すること。 例えば、8節点シェル要素(S8)では、頂点の節点番号を4つ並べてから、 辺中点の節点番号を4つ並べなければならないとか。 これを間違うと、変な形になる。

拘束条件

複数の節点にまとめて同じ拘束条件を与える場合

  • (

NSET,NSET=FIX

ここに拘束したい節点番号とコンマを1行ずつ並べる

例えば拘束節点が1と2だったら

    1,
    2,

みたいに

BOUNDARY

以下のFIX,に続けて拘束変位1=x,2=y,3=zをコンマ区切りで

FIX,1,3

1から3(xからz)を拘束

  • ) 上記の例を、
  • (

BOUNDARY

FIX,1 FIX,2 FIX,3

  • ) みたいに分けて書いても良いっぽい

1節点ずつ拘束条件を与える場合

  • (

BOUNDARY

 1, 3, 0.
 2, 1, 3, 0.

節点番号1の3(z)を拘束

節点番号2の1から3(xからz)を拘束

  • )

材料定数

  • (

MATERIAL,NAME=EL

ELASTIC

以下にヤング率(MPa)とポアソン比

 210000.,  0.300000012
  • )

載荷条件

複数の節点にまとめて同じ荷重条件を与える場合

  • (

NSET,NSET=SAIKA

ここに載荷したい節点番号とコンマを1行ずつ並べる

例えば載荷節点が3と4だったら

    3,
    4,

みたいに

STEP

STATIC,SOLVER=SPOOLES

CLOAD

以下のSAIKAに続けて載荷方向、載荷荷重を書く

例えば載荷方向が3=zで、載荷荷重が1/載荷節点数なら

SAIKA,3,  0.5
  • )

1節点ずつ荷重条件を与える場合

  • (

CLOAD

 1, 2, 10.
 2, 3, 20.

節点番号1の2(y)方向に10MN載荷

節点番号2の3(z)方向に20MN載荷

  • )

ひずみについて

inpファイルで最後の方に、

  • (

EL FILE,POSITION=AVERAGED AT NODES

S,E,PE

  • ) っていれる。 ちなみに、Sは応力、Eはひずみ、PEって入れると相当塑性ひずみも出力できる。 ほかにもいろいろ出力できそう。 詳しくはマニュアルの EL FILEとかNODE FILE,EL PRINT,NODE PRINT 参照..

座屈解析

datファイル内の座屈荷重の読み方

  • inpファイルのCLOADで載荷節点の倍率bを書き込む。
  • datファイルのEIGEN VALUEのとこに書き込まれる荷重\( P_{dat} \)に倍率\( b \)と節点数\( n \)をかけたのが座屈荷重(MN)
  • \( P_{cr}=bnP_{dat} \)
  • つまり、倍率\( b \)\( 1/n \)としておけば、datファイルの荷重\( P_{dat} \)がそのまま座屈荷重になる ということでいいかな?(次項の結果と整合するかな)
  • 比較しやすいように、datファイルの座屈荷重を頭にすれば
    • \( P_{dat}=\frac{P_{cr}}{nb} \)
  • 注意:inpファイルをgfortranで作る際、上記の倍率(\( b=1/n \))をのフォーマットなしで出力すると、 桁数が多くなりすぎて、-E003の部分が読み込まれず、座屈荷重が1/1000になったりする。

inpのCLOADと、datの座屈荷重との関係

いつもは、CLOADで(1/載荷節点数)と入力したものを、座屈荷重とみなしている。

もし10/載荷節点数とかにしたら、座屈荷重はどう変わるのか見てみた↓。

CLOAD0.001/n0.01/n0.1/n1/n10/n100/n
理論値との誤差座屈せず3%3%3%3%座屈せず

n:載荷節点数

10/nの座屈荷重は、1/nの座屈荷重の0.1倍になる。0.1/nにすれば10倍、0.01/nにすれば100倍の座屈荷重になる。

だから、inpのCLOADで0.1/nで入力したら、datファイルの座屈荷重に0.1かければよい、みたい

ただ、サイズによって座屈が出ない問題も、(相似形状で10倍とかしなくても) ACCURACYのところを0.01ではなく、0.1とか1とかにすれば解けるようになるようだ。

モード図の描かせ方など

cgxのアニメ機能を利用する場合

  • cgxでfrdファイルを開き、Datasetsを選ぶと、計算した座屈モードの低次のものから順に、L101, L102, L103と並んでいる。
  • L101とか、値が0になっているところは自明解なので、最初に非0の値が入っているL102とかが、最低次の座屈モードになるので、それを選択。
  • 更にDISPを選択
  • 改めてDatasets→Entitiy→Allを選択すると、座屈モードがまず色スケールで表示される
  • 次にAnimateのStartを選択すると、座屈モード変形がアニメ再生される
  • 画像がほしい瞬間のところでマウスのポインターを枠外に出してアニメを止め、そこでHardcopyを取れば座屈モードの画像ファイルが得られる
  • モードの倍率を大きくしたければ、Animate→Tune Valueで、Tune*2で2倍とか、Tune*5で5倍とかにできる。

倍率を調整して手動で変形モードを加算したfrdファイルがほしい場合(変形図上に応力等を色スケールで表示させたい場合)

&link(tasu.f系のプログラム,http://www.str.ce.akita-u.ac.jp/~gotou/programoj/#tasu)で、どうやればちゃんと描けるか、ここに書いておく。

  • ccxkataiza.fの直方体要素ならば、ccx_1.7+tasudatw.fでモード図がかける

ダイヤカットをやったシェル要素では、ccx_1.7*tasudatw.fではうまくいかなくて、 ccx_1.5+tasu.fの昔のやり方でモード図を描いていたというような事情はないか? 確認してほしい。

円筒ダイヤカットも伸縮できる円筒折り紙も、圧縮でも引っ張りでも局部座屈を 起こせていたが、これはバージョンに依存するか? 例えば、ccx_1.5では座屈するが、 ccx_1.7では、no convergence.....maybe no buckling occurs のエラーが出るといった 事情があるかどうか確認。

  • シェル要素でもccx_1.7+tasudatw.fの組み合わせでモード図は描けました。

l=1,m=16,n=2

半径(m)高さ(cm)ヤング率ポアソン比厚さ[m]座屈モード精度載荷荷重[MN]
1.d0/2.d0/pi50700000.3000000120.1120.060.149253731
  • これだとccx_1.7では「job finished」になるが、ccx_1.5だと「*ERROR: too many cutbacks」と表示される。
    • 「job finished」は荷重1E-1~E-4の間。
  • ccx_1.5では1E-5から「セグメンテーション違反です」とおこられる。
    • 1E100以上、1E-5以下でもおこられる。その他は「*ERROR: too many cutbacks」
  • 厚さによって荷重が同じでも「no convergence for the buckling factor」と出る場合がある。

バージョン比較

バージョンによって答えが違った例をここに書き込む。

  • 2枚の板をくっつけた折れ板を引っ張って広げると、ccx_1.5では、 too many cutbacksエラーが出る。ccx_1.7線形では解ける。 ccx_1.7非線型ではtoo many cutbacksエラー(稲荷の卒論日誌?参照)

ウェブ上の情報など

cgxでinpファイルをみる。

  • ( cgx -c hoge.inp
  • ) でみることができる。

cgxで変形図やモード図を描かせる

&link(ここ,http://www.str.ce.akita-u.ac.jp/~gotou/programoj/#tasu)の &link(tasu.f,http://www.str.ce.akita-u.ac.jp/~gotou/programoj/ccx/tasu.f)を 使ってデータを整形する。具体的な方法はプログラムの中に書いてある。

CADとの連携

  • Available add-onsを使うとvda(ドイツ自動車工業会策定?のフォーマット)またはacis(autoCAD等で出力可能、拡張子はsat)形式のCADモデルをfbdにしてcgxに読み込めるようだ。それをAbaqus形式に出力してccxのinpファイルに整形することができそうだろうか?
    • ( ./acis2fbd.pl < hoge.sat >hoge.fbd
    • ) で変換できるようだが、サンプルのsatファイルは変換できるが、学生がautoCADだかで作ってきたsatファイルは 変換できなかった。

cgxをプリプロセッサーとして使う

  • http://www.dhondt.de/tutorial.txt
  • &link(川原さんによる和訳にはパスワードによるアクセス制限を付けておきました,http://www.str.ce.akita-u.ac.jp/kako/j2006/kawahara/pas/#i29) ちょっとめんどくさいような気もするのですが、 プリプロセッサーを使わないことにしたとして、 CADやモデリングツールの出力から節点情報を抜き出す プログラムを作る際に、メッシュを指定する節点の並び順をccxの流儀に並べるのをCADやモデリングツールの側では うまくやれなくて節点情報だけを頼りに自力でプログラムで対処しなければならないんだとすると、 cgxをプリプロセッサーとして利用してfbdを作るのもそう悪くないのかも知れない。

いや&link(blenderのメッシュ情報,http://www.str.ce.akita-u.ac.jp/cgi-bin/gwiki/wiki.cgi?blender%a5%e1%a5%e2#i3)は使えそうかも。

blender

CalculiXのモデリングに使える??

各種フォーマット

ccxのインストール簡単マニュアル(linux)

ccx_2.6

ccx_2.3

ccx_1.8以降のコンパイルはうまくいっていないが、SPOOLES.2.2とARPACKのコンパイルまでは、なんとかできるのでメモ。

SPOOLESのインストール

ccxのサイト経由で、 spooles.2.2.tgzをダウンロードして、 /usr/local/SPOOLES.2.2を作成してからそこにコピーして展開。 (アーカイブファイルがディレクトリ内に納めてから圧縮されているか、 ばらばらのファイルのまま圧縮されているかは、ファイルブラウザーなどで確認できる。) /usr/local/SPOOLES.2.2/内にファイルが展開される。 Make.inc内の

  • (

    # CC = gcc

     CC = /usr/lang-4.0/bin/cc
  • ) の行を
  • (
     CC = gcc

    # CC = /usr/lang-4.0/bin/cc

  • ) に修正して、make libを実行。spooles.aが生成されれば成功。

ARPACKのインストール

ccxのサイト経由で、 arpack96.tar.gzとpatch.tar.gzをダウンロードして、/usr/localに移動し、 tar xvzfで展開すると、/usr/local/ARPACK(が生成されてその中)に展開される。 /usr/local/ARPACKの中に入って、ARmake.inc内の以下の箇所を修正。

  • (

    #home = $(HOME)/ARPACK home = /usr/local/ARPACK (中略)

    #MAKE = /bin/make MAKE = make (中略)

    #SHELL = /bin/sh SHELL = sh

  • ) make libすると、libarpack_SUN4.aが生成される。 この状態で、 /usr/local/CalculiX/ccx_2.3/src に入り、makeしてccx_2.3をコンパイルすると、 libarpack_INTEL.aがないというエラーが出るので、 libarpack_SUN4.aをlibarpack_INTEL.aにコピーする。 これで、ccx_2.3をコンパイルしても
  • ( ../../../ARPACK/libarpack_INTEL.a(xerbla.o): In function `xerbla_': xerbla.f:(.text+0xe): undefined reference to `s_wsfe' xerbla.f:(.text+0x29): undefined reference to `do_fio' xerbla.f:(.text+0x44): undefined reference to `do_fio' xerbla.f:(.text+0x49): undefined reference to `e_wsfe' xerbla.f:(.text+0x5d): undefined reference to `s_stop'
  • ) みたいなエラーが大量に出る。64bitパソコンでも同様。 /usr/local/ARPACK/UTIL内のsecond.fの
  • (
      EXTERNAL           ETIME
  • ) の行をコメントアウトしてARPACKをコンパイルしなおせばよいというような 記述も見つけてためしてみたが、エラーの数は減ったような気がするものの うまくいかない。

ccx_1.8

ccx_1.8のバイナリーは、Vine LinuxでもUbuntuでも動かない。

  • ( bash: /usr/local/bin/ccx_1.8: cannot execute binary file
  • ) のエラー。 ソースからmakeするには、ARPACKとSPOOLES.2.2をインストールする必要があって、 調査中。ARPACKとSPOOLES.2.2のライブラリを展開して/usr/localに置いただけでは、 ccx_1.8をmakeしようとすると、
  • ( make: *** `ccx_1.8' に必要なターゲット `../../../SPOOLES.2.2/spooles.a' を make するルールがありません。中止。
  • ) のエラー。 &link(CalculiX のmake,http://mogura7.zenno.info/~et/xoops/modules/wordpress/index.php?p=158)が参考になりそう。

ccx_1.7以前

  • &link(a short installation guide (ASCII),http://www.dhondt.de/ccx_1.6.README.INSTALL) &link(CalculiXのダウンロードのページ,http://www.dhondt.de/)の Available downloads for the solver (CalculiX CrunchiX: ccx)のところにあるa linux executableをクリックする。 するとダウンロードのwindowが開くので、このファイルをディスクに保存するを選び、自分のユーザーディレクトリの中の適当なところ(例えばユーザー名がsuzukiだったら/home/suzukiの下のどこか)に一時的に保存する。 ちなみに保存されるファイルの名前はccx_1.6.tar.bz2であることに注意しよう。

次にターミナルを開いて、保存したところにcdで移動し(home/suzukiに保存していれば、移動しなくて良い)、 suになる。[suzuki@bri00]\( $ \)が[root@bri00」#に変わったのを確認したら、

  • (

    # mv ccx_1.6.tar.bz2 /usr/local

    # cd /usr/local

    # bunzip2 -c ccx_1.6.tar.bz2 | tar -xf -

    # cd CalculiX/ccx_1.6/src

    # mv ccx_1.6 /usr/local/bin

  • ) と順番に打ち込む。

    #は始めから表示されているので、くれぐれも# mv ccx_1.6とは打たずに、mv ccx_1.6とだけ打つように。 これだけでccxがどこのディレクトリでも使えるようになる。

サンプルをインストールしたい場合には、test examples(ファイル名はccx_1.6.test.tar.bz2)、ソースはthe source code(ccx_1.6.src.tar.bz2)、 マニュアルはthe documentationの中から、TeX、html、postscriptの中から好きなものを選びクリックし、適当なところに保存する。手順は上と同じだけど、ファイル移動はしなくて良いから、bunzip2のところまですれば良い。

マニュアルはTeXとhtmlの二つをダウンロードしたほうが良い。 TeXをダウンロードする利点は、印刷がきれいにできる 、ファイルが一つだけだから、 viで文中のキーワードが簡単に検索できるということが挙げられる。 htmlの利点は言うまでも無く、インターネットと同じ環境で見ることができる。 この場合、ブラウザのファイル→開くで/usr/local/Calculix/ccx_1.6/docに移動し、 その中のccx.htmを開き、ブックマークしておくのがいいだろう。 ちなみにhtmという拡張子がついていれば、どれをブックマークしても、 全てのページでcontentsにリンクされているからそれほど問題ではない。

cgxのインストール簡単マニュアル(linux)

  • &link(a short installation guide (ASCII),http://www.dhondt.de/cgx_1.6.INSTALL) cgxのインストールはほんの少し厄介である。インストールする前に、
    • ( locate libGL
    • ) とターミナルに打ち込み、
    • ( /usr/lib/libGL.so     (libGL.soがlibGL.so.0になってるかも) /usr/lib/libGLU.so     (libGLU.soがlibGL.so.0になってるかも)
    • ) と表示されることを確認する。 もしされないようなら、英語マニュアルhttp://www.dhondt.de/cgx_1.6.INSTALLのA項1.を読んで適宜リンクするか、B項読んでください。 秋田大の学生なら私こと千田か後藤さんに確認を取るように。

無事表示されたら、 &link(CalculiXのダウンロードのページ,http://www.dhondt.de/)の Available downloads for the graphical interface (CalculiX Graphix: cgx)のところにあるa linux executableをクリックすると、ダウンロードウィンドウが開くので、 このファイルをディスクの保存するを選び、自分のユーザーディレクトリの中の適当なところ(例えばユーザー名がsuzukiだったら/home/suzukiの下のどこか)に一時的に保存する。ちなみに保存されるファイルの名前はcgx_1.6.bz2であることに注意しよう。

次にターミナルを開いて、保存したところにcdで移動し(home/suzukiに保存していれば、移動しなくて良い)、 suになる。[suzuki@bri00]$が[root@bri00」#に変わったのを確認したら、

  • (

    # mv cgx_1.6.bz2 /usr/local

    # cd /usr/local

    # bunzip2 cgx_1.6.bz2

    # mv cgx_1.6 /usr/local/bin/cgx

    # chmod ao+rx /usr/local/bin/cgx (chmod 755 でもよさそう)

  • ) と順に打ち込む。 でっ、インストールされたか確認するために、
  • ( cgx -b dummy.fbd
  • ) と打ち込む。cgx not command とかいう表示が出たら下のパスを追加するを読んで。 もし、cgx: error while loading shared libraries: llibglut.so.3うんぬんと表示されたら、synapticでfreeglutをインストールする。

cgxのwindowのHelpから、マニュアルを見ることができるようにするためには、 ダウンロードページのthe documentation (html) (ファイル名はcgx_1.6.htm.tar.bz2)を実行ファイルと同じ手順でダウンロードする。

そしてsuになって

  • (

    # mv cgx_1.6.htm.tar.bz2 /usr/local

    # mv /usr/local

    # bunzip2 cgx_1.6.htm.tar.bz2

    # tar -xvf cgx_1.6.htm.tar (たくさんのファイルが展開される様子が見れる)

  • ) と順に打ち込む。ここで
  • (

    # cd /usr/local/CalculiX/cgx_1.6/doc/cgx

    # ls

  • ) でさっき展開したhtmlファイルがあることを確認する。 その上で、
  • ( cgx -b dummy.fbd
  • ) と打つとcgxが立ち上がるので、 その中にある正方形の枠を避けて左クリックし、開いた小さなwindowの中の Helpまでクリックしたまま移動すると、あらたに Quick Reference(cgx)、Html Manual(cgx)、Html Manual(ccx)が開くので、 Html Manual(cgx)のところに移動しクリックを外すと w3m(Mozillaは確認中)が開く。

http://www.str.ce.akita-u.ac.jp/~chida/oonuma/cgx1.png

もしccxのhtmlマニュアルが先にインストールされているのであれば、 Html Manual(ccx)も見ることができる。

サンプルをインストールしたい場合は、ダウンロードページの examples(ファイル名cgx_1.6.exa.tar.bz2 )をダウンロードすれば良く、 その後はhtmlのマニュアルのインストール方法と同じである (cgx_1.6.htm.tar.bz2のhtmをexaに変えるだけ)。

inpファイル

節点番号の振り方

任意断面の見方

  • このやりかたはバージョン1,7で確認済み。
  • 3Cの後の要素番号、構成を消す。
  • 節点(x+1)\( \times \)(y+1)\( \times \)z(みたいところ)
  • 要素x)\( \times \)y\( \times \)z(みたいところ) ex)
    • (
  • 1 20401 1 0STEU #要素番号
  • 2 23002 23013 23464 23453 23003 23014 23465 23454 #節点構成?
    • ) 座標は消さなくても大丈夫みたい。 このままでも断面をみることができるけど、 cgxの最大・最小の値が全節点になってしまうので、 適宜、要らない節点の変位や応力も削除する。
  • 変位
    • ( 1PSTEP 1 100CL101 1.0000000000 3 1 1 -4 DISP 4 1 -5 D1 1 2 1 0 -5 D2 1 2 2 0 -5 D3 1 2 3 0 -5 ALL 1 2 0 0 1ALL
      -1         1 0.00000E+00 7.89755E-05 1.26021E-03
      -1         2-4.91247E-09 7.89756E-05 1.26021E-03
      -1         3-1.44954E-08 7.89762E-05 1.26020E-03
    • )
  • 応力
    • ( 1PSTEP 1
       100CL101  1.0000000000                                 3    1           1 
      -4  STRESS      6    1 
      -5  SXX         1    4    1    1 
      -5  SYY         1    4    2    2 
      -5  SZZ         1    4    3    3 
      -5  SXY         1    4    1    2 
      -5  SYZ         1    4    2    3 
      -5  SZX         1    4    3    1 
      -1         1-4.07109E-01 6.13735E-01 1.40236E+00 1.06976E-02-2.09322E-02-5.94108E-02
      -1         2-3.89041E-01 6.21203E-01 1.41357E+00 7.28904E-03-2.47368E-02-1.40467E-01
    • )

以下は古い話。

  • (
  • (x+1)×(y+1)×y(みたいところ)の節点をfrdファイル上で削除する。
  • 削除箇所は3箇所。
    • 節点座標(2C→3Cの間)
    • 要素番号、節点番号(3C→1PSTEP-DISPの間)
    • 応力(1PSTEP-STRESSの後)
    • ※後ろから消す場合は節点に注意!
  • 消すのを間違えると、
    • セグメンテーション違反
    • 梁が空洞になってしまう ので注意。
    • )

増分ステップの制御など

ccxでは、最終荷重を与えて計算すると、そこに至る数ステップぶんの点の結果しか出力されない。 荷重増分を小さくして、もっと細かくプロットを取りたい時にどう制御すればいいのかが分からない。

  • 1ステップは複数の荷重増分を含む
  • INC=100とすると、1ステップの荷重増分を100増分までに制限する
    • 1ステップの増分数は100よりもずっと少ないので、INC=200とかにしても出力に変化はない
  • FREQUENCY=1とすると、すべての増分に対する結果を(出力用に?)記憶しておく
    • デフォールトですべての増分に対する結果が出力されているらしく、1にしても変化なし
    • FREQUENCY=NとするとN番目の増分ごとに結果を記憶する
  • 計算済みのつりあい点から引き続き計算したいときはRESTARTを利用
    • RESTARTをうまく使えば小さい増分ごとの結果を毎回出力させられるか?

出力ステップの制御

"*TIME POINTS"を使うと、好きなステップで出力することができる。例えば、

  • (

TIME POINTS,NAME=T1

0.0,0.2,0.4,0.6,0.8,1.0

(途中で色々書かれていて......)

NODE PRINT,NSET=Nall,TIMEPOINTS=T1

U

EL PRINT,ELSET=Eall,TIMEPOINTS=T1

S

NODE FILE,TIMEPOINTS=T1

U

EL FILE,TIMEPOINTS=T1

S

END STEP

  • )

pathを追加する

cgxをインストールして初めて/usr/local/binができた場合、ccx・cgxはパスを指定しないと 起動しない事がある。よって、

  • ( \( echo \)PATH パスが切れているディレクトリを確認 /usr/hoge/hoge $ ls -a ./bash_profileがあるか確認 $ vi .bash_profile bashの前に . あることに注意 export PATH=/usr/local/bin:$PATH と書き込む $ source.bash_profile \( echo \)PATH /usr/hoge/hoge:/usr/local/bin usr/local/binが追加されているのが確認できる
  • ) を実行することによって、どのディレクトリでもcgx、ccxがパスを指定しないで使用できる。 このパスを指定しないで済むようにすることをパスを切るという。

後藤メモ

g2は私がパスを切ってたってことでは。

学生がパスを切るって分からないと思い簡単に書いたのですが。 fパソのように誰もパスを切ってないのに切れてる場合もありますし、 念のため(千田)

エラー

ccx1.7で解けた円筒の圧縮がccx2.3で解けない

円筒やダイヤカット円筒の一端を固定して一端を圧縮(または引張)すると、 ccx1.7では問題なく解けているが、同じinpファイルをccx2.3で解くと、 載荷端側が花びらのように半径方向に互い違いに変位するモードが現れる。

ccx2.3にバージョンアップして増えたオプションをちゃんと設定しないと 解けないということかも知れない。ウォーニングメッセージとccx2.3のマニュアルとを ちゃんと確認する必要あり。

ubuntu10.04上でccx1.7を走らせると

というような訳で、ccx1.7のバイナリーをubuntu10.04上で走らせようとすると、

  • ( ./ccx_1.7: error while loading shared libraries: libg2c.so.0: cannot open shared object file: No such file or directory
  • ) これは、g77用のライブラリらしい。

nonpositive jacobian

  • ( ERROR in e_c3d: nonpositive jacobian
           determinant in element          14
  • ) 節点座標の1行文字数が非常に長い場合にこのエラーが出る場合がある。 そして、ccx_1.7では解けてccx_2.3では解けなかったりする。
  • ( print'(i6,a,1pe15.3,a,1pe15.3,a,1pe15.3)'& & ,i+1,',',x(i),',',y(i),',',z(i)
  • ) みたいにフォーマットを指定して指数表示で1行を短めに出すと解決することが多い。 など1pdにするとcgxの表示がおかしくなるため、1peにしておく。

Factoring the system of equations using spooles ALLOCATE failure : bytes 109180512, line 517, file DV.c

C3D8の直方体片持ち梁で、ポアソン比を0.5に設定するとエラーがでる。 ポアソン比0.49999と0.50001ではエラーは出なかった。

シェル要素による片持ち梁のたわみ解析結果


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-01-19 (日) 15:10:00