Salomeでunvファイルを作ったのをPrePoMaxで読み込んで、材料定数や境界条件を設定、CalculiXをソルバーとして解き、結果を表示。
PrePoMaxはWindowsソフトなので、まずは、Linux上でWindowsを走らせるためのwineとその設定を簡単にするwinetricks をインストールし、 さらにその環境でNET Frameworkを使えるようにするために、dotnet48をインストールする。
$ sudo dpkg --add-architecture i386 $ sudo mkdir -pm755 /etc/apt/keyrings $ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key $ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources $ sudo apt update $ sudo apt install --install-recommends winehq-devel $ sudo apt install winetricks $ sudo winetricks --self-update $ winetricks dotnet48
/.wine/drive_cの中にexeというディレクトリを作り、wineで動かしたい、Windowsソフトは、 この中にソフト名がわかるサブディレクトリーを作って、その中にインストールしていくのが、 いいのではないか。ということで、PrePoMaxに関しては、~/.wine/drive_c/prepomaxという ディレクトリを作っておく。
/.wine/exe/prepomax にダウンロード
/usr/bin/wine '/home/kouzou/.wine/drive_c/exe/prepomax/PrePoMax v1.4.0/PrePoMax.exe'
/.wine/drive_c/exe/PrePoMax辺りに適当な名前(aikon.pngとか)で保存。 ショートカットアイコンを右クリックして、プロパティーから、アイコンを選び直す。
今まで通りのひずみ-応力関係の逆関係を入力する方法
*ELASTIC,TYPE=ORTHOROPIC [#nc477d23] D1111,D1122,D2222,D1133,D2233,D3333,D1212,D1313 D2323 の他にも,Code_Asterと同様な入力方法↓もできるようになった. *ELASTIC,TYPE=ENGINEERING CONSTANTS [#r0c7a606] E1,E2,E3,nu12,nu13,nu23,G12,G13, G23
CalculiXは、バージョン1.8以降は実行ファイルを展開しただけでは走らなくなって、 SPOOLES.2.2やARPACKの導入も必要となり、インストールが難しくなってしまった。 恐らくインターフェースやプリ・ポストプロセッサーなどがGUIで使いやすいと 思われる DEXCS は、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をインストールして 計算サーバーとするか。
Ubuntu16.04LTSを(近藤のPCに)インストールして、色々と試してみた。 Ubuntu16.04LTSの&link(公式パッケージ,http://packages.ubuntu.com/search?keywords=calculix&searchon=names&suite=xenial§ion=all)を探してみるとccx_2.9が入っているようで、端末で次のように入力するとインストールできる。
LAST, 2, 2, 6.6666666666666666E-002
後藤ちゃちゃ(17/3/29)**はコメント文では?
&link(CAElinux,http://caelinux.com/CMS/index.php)はUbuntuベースだが、 インストール後にアップグレードしたらccxも最新版の2.3にアップグレードされた。 これはいいかもしれない。 Ubuntuのクライアント版はサーバー系ツールのセットアップがちょっと めんどくさいような気がしていたが、CAELinuxにはsshdがプリインストールされていて、proftpdも簡単にインストールできる。 サービス管理(system-config-services)は、synapticの一覧にはないようだけど、 なんか他のツールがあるのかな。
コンクリートのように圧縮のみに抵抗する材料も扱える。
14.e3, 1.e3
マニュアル(ccx_2.6.1.pdf)のp.367に要素ごとの面番号の定義が書かれている。よく使うC3D8とかは、
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 にある)
特別なことをしなくても、立体要素同士を線状に接点共有させるだけでヒンジになる。ただし、ただの線形解析だと回転した要素が膨らんでしまうので、幾何学非線形解析にすることが必須。勿論、強制変位でないと計算できない。 この方法なら、折り畳み円筒を一定厚にし、かつ蝶番を再現するというモデリングが楽にできるのでは?
ざっといじっていてわかったこと(変更点?)を箇条書きで
&link(daiya6h.dat,http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h.dat)
&link(daiya6h23.dat,http://www.str.ce.akita-u.ac.jp/~gotouhan/emura/test/daiya6h23.dat)
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
のようになっていて、これは&link(マニュアル(the documemtation),http://www.dhondt.de/)の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)を適当なところにダウンロードして
ccxのマニュアル(日本語版)を見つけたので、ここに載せました。(英語版はver.2.20 日本語版はver.2.10なので、多少の違いはあるかもしれません。)(千代岡)
日本語版
英語版
inpファイルで、まず各節点と節点座標を定義してから、 各要素ごとに要素番号とその要素の各節点の節点番号を設定していくが、 要素の種類ごとに1要素の節点番号の並べ順には決まりがあるので、 マニュアルやサンプルの節点番号の振り方を参照すること。 例えば、8節点シェル要素(S8)では、頂点の節点番号を4つ並べてから、 辺中点の節点番号を4つ並べなければならないとか。 これを間違うと、変な形になる。
1, 2,
FIX,1,3
FIX,1 FIX,2 FIX,3
1, 3, 0. 2, 1, 3, 0.
210000., 0.300000012
3, 4,
SAIKA,3, 0.5
1, 2, 10. 2, 3, 20.
inpファイルで最後の方に、
S,E,PE
いつもは、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とかにすれば解けるようになるようだ。
&link(tasu.f系のプログラム,http://www.str.ce.akita-u.ac.jp/~gotou/programoj/#tasu)で、どうやればちゃんと描けるか、ここに書いておく。
ダイヤカットをやったシェル要素では、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 |
バージョンによって答えが違った例をここに書き込む。
&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)を 使ってデータを整形する。具体的な方法はプログラムの中に書いてある。
いや&link(blenderのメッシュ情報,http://www.str.ce.akita-u.ac.jp/cgi-bin/gwiki/wiki.cgi?blender%a5%e1%a5%e2#i3)は使えそうかも。
CalculiXのモデリングに使える??
ccx_1.8以降のコンパイルはうまくいっていないが、SPOOLES.2.2とARPACKのコンパイルまでは、なんとかできるのでメモ。
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
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
EXTERNAL ETIME
ccx_1.8のバイナリーは、Vine LinuxでもUbuntuでも動かない。
次にターミナルを開いて、保存したところに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にリンクされているからそれほど問題ではない。
無事表示されたら、 &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の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
もしccxのhtmlマニュアルが先にインストールされているのであれば、 Html Manual(ccx)も見ることができる。
サンプルをインストールしたい場合は、ダウンロードページの examples(ファイル名cgx_1.6.exa.tar.bz2 )をダウンロードすれば良く、 その後はhtmlのマニュアルのインストール方法と同じである (cgx_1.6.htm.tar.bz2のhtmをexaに変えるだけ)。
-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
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
以下は古い話。
ccxでは、最終荷重を与えて計算すると、そこに至る数ステップぶんの点の結果しか出力されない。 荷重増分を小さくして、もっと細かくプロットを取りたい時にどう制御すればいいのかが分からない。
"*TIME POINTS"を使うと、好きなステップで出力することができる。例えば、
0.0,0.2,0.4,0.6,0.8,1.0
(途中で色々書かれていて......)
U
S
U
S
cgxをインストールして初めて/usr/local/binができた場合、ccx・cgxはパスを指定しないと 起動しない事がある。よって、
g2は私がパスを切ってたってことでは。
学生がパスを切るって分からないと思い簡単に書いたのですが。 fパソのように誰もパスを切ってないのに切れてる場合もありますし、 念のため(千田)
円筒やダイヤカット円筒の一端を固定して一端を圧縮(または引張)すると、 ccx1.7では問題なく解けているが、同じinpファイルをccx2.3で解くと、 載荷端側が花びらのように半径方向に互い違いに変位するモードが現れる。
ccx2.3にバージョンアップして増えたオプションをちゃんと設定しないと 解けないということかも知れない。ウォーニングメッセージとccx2.3のマニュアルとを ちゃんと確認する必要あり。
というような訳で、ccx1.7のバイナリーをubuntu10.04上で走らせようとすると、
determinant in element 14
C3D8の直方体片持ち梁で、ポアソン比を0.5に設定するとエラーがでる。 ポアソン比0.49999と0.50001ではエラーは出なかった。