*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
python unv2abaqus.py Mesh_1.unv meshでmesh.inpができてる。
$ sudo apt-get install calculix-ccxこれだけでいつも通りの計算できるようだが、cgxはパッケージにないので結果が見れない。そこで、千田さんのメモを参考にcgx_2.11をインストールしてみると、ccxとはバージョン違いだが、ちゃんと結果も見れる。ちなみに、ubuntu16.10ではcgxもパッケージに追加されているらしい。
*CLOAD ** LAST, 2, 6.6666666666666666E-002 LAST, 2, 2, 6.6666666666666666E-002
後藤ちゃちゃ(17/3/29)**はコメント文では?
*CONTACT PAIR,INTERACTION=SI1,TYPE=NODE TO SURFACE
*MATERIAL,NAME=COMPRESSION_ONLY *USER MATERIAL,CONSTANTS=2 14.e3, 1.e3
面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みたいにして使う。 ちなみに、接触解析をするとき、マスター面の定義は必ず上記のようしなければならないが、スレーブ面に関しては上記以外にも節点で定義する方法もある。
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
のようになっていて、これはマニュアル(the documemtation)のFigure 63と同じ節点の振り方。
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
** こんなふうに ** を最初に書くとコメントが書ける ** つまり ** の行はデータ入力の際に無視される
*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みたいに分けて書いても良いっぽい
*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
*CLOAD 1, 2, 10. 2, 3, 20. ** 節点番号1の2(y)方向に10MN載荷 ** 節点番号2の3(z)方向に20MN載荷
*EL FILE,POSITION=AVERAGED AT NODES S,E,PEっていれる。 ちなみに、Sは応力、Eはひずみ、PEって入れると相当塑性ひずみも出力できる。 ほかにもいろいろ出力できそう。 詳しくはマニュアルの EL FILEとかNODE FILE,EL PRINT,NODE PRINT 参照..
いつもは、CLOADで(1/載荷節点数)と入力したものを、座屈荷重とみなしている。
もし10/載荷節点数とかにしたら、座屈荷重はどう変わるのか見てみた↓。
CLOAD | 0.001/n | 0.01/n | 0.1/n | 1/n | 10/n | 100/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とかにすれば解けるようになるようだ。
ダイヤカットをやったシェル要素では、ccx_1.7*tasudatw.fではうまくいかなくて、 ccx_1.5+tasu.fの昔のやり方でモード図を描いていたというような事情はないか? 確認してほしい。
円筒ダイヤカットも伸縮できる円筒折り紙も、圧縮でも引っ張りでも局部座屈を 起こせていたが、これはバージョンに依存するか? 例えば、ccx_1.5では座屈するが、 ccx_1.7では、no convergence.....maybe no buckling occurs のエラーが出るといった 事情があるかどうか確認。
半径(m) | 高さ(cm) | ヤング率 | ポアソン比 | 厚さ[m] | 座屈モード | 精度 | 載荷荷重[MN] |
1.d0/2.d0/pi | 50 | 70000 | 0.300000012 | 0.11 | 2 | 0.06 | 0.149253731 |
cgx -c hoge.inpでみることができる。
./acis2fbd.pl < hoge.sat >hoge.fbdで変換できるようだが、サンプルのsatファイルは変換できるが、学生がautoCADだかで作ってきたsatファイルは 変換できなかった。
いやblenderのメッシュ情報は使えそうかも。
CalculiXのモデリングに使える??
# CC = gcc CC = /usr/lang-4.0/bin/ccの行を
CC = gcc # CC = /usr/lang-4.0/bin/ccに修正して、make libを実行。spooles.aが生成されれば成功。
#home = $(HOME)/ARPACK home = /usr/local/ARPACK (中略) #MAKE = /bin/make MAKE = make (中略) #SHELL = /bin/sh SHELL = shmake 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をコンパイルしなおせばよいというような 記述も見つけてためしてみたが、エラーの数は減ったような気がするものの うまくいかない。
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 するルールがありません。中止。のエラー。 CalculiX のmakeが参考になりそう。
次にターミナルを開いて、保存したところに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にリンクされているからそれほど問題ではない。
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項読んでください。 秋田大の学生なら私こと千田か後藤さんに確認を取るように。
無事表示されたら、 CalculiXのダウンロードのページの 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は確認中)が開く。
もしccxのhtmlマニュアルが先にインストールされているのであれば、 Html Manual(ccx)も見ることができる。
サンプルをインストールしたい場合は、ダウンロードページの examples(ファイル名cgx_1.6.exa.tar.bz2 )をダウンロードすれば良く、 その後はhtmlのマニュアルのインストール方法と同じである (cgx_1.6.htm.tar.bz2のhtmをexaに変えるだけ)。
-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の後) --※後ろから消す場合は節点に注意! -消すのを間違えると、 --セグメンテーション違反 --梁が空洞になってしまう ので注意。
*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
$ 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がパスを指定しないで使用できる。 このパスを指定しないで済むようにすることをパスを切るという。
学生がパスを切るって分からないと思い簡単に書いたのですが。 fパソのように誰もパスを切ってないのに切れてる場合もありますし、 念のため(千田)
ccx2.3にバージョンアップして増えたオプションをちゃんと設定しないと 解けないということかも知れない。ウォーニングメッセージとccx2.3のマニュアルとを ちゃんと確認する必要あり。
./ccx_1.7: error while loading shared libraries: libg2c.so.0: cannot open shared object file: No such file or directoryこれは、g77用のライブラリらしい。
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にしておく。
C3D8の直方体片持ち梁で、ポアソン比を0.5に設定するとエラーがでる。 ポアソン比0.49999と0.50001ではエラーは出なかった。