#author("2020-01-20T11:03:35+09:00","default:kouzouken","kouzouken") #contents *宣言 [#n6967488] -プログラムで計算で使う変数(aとかbとか)は 事前にどういうものか宣言しないといけない。(実数か整数かなど) -使う変数ひとつひとつ宣言したほうがいいが面倒くさいので implicit real (a-h, o-z) とかってやると 最初の文字がaからhとoからzで始まるもの は実数でiからnが整数となる。 **dimension [#v8c24900] -dimensionを使うとa(i,j)とかa(i)とかを を宣言できる。 **character [#t507ba90] -文字の情報を覚えさせるときに使う。(ファイル名とか) -character 128*filename とやるとfilenameに128文字まで覚えさせることができる *計算 [#tbc98e66] 計算は普通の数学とかとほとんど同じ -足し算は+ -引き算は- -掛け算は* -割り算は/ -$a^2$はa**2 で表現できる。 -a=3 プログラムの中の=はイコールでなくて aに3を代入するという意味なので注意 *printとwrite [#zbe5a141] **print [#p9603cfe] -printをつかうとターミナル画面に出力する --ファイルに入れたいときは --( ./hoge>hoge.dat --) とかてやるとファイルのなかに出力できる **write [#mc27143b] -writeをつかうとファイルにそのまま書ける。 --一度にいっぱいファイル(パラメータをかえたinpファイルとか) を作るときにはwriteを使って自動でファイルを作ると楽。 *read [#v350ea5a] -データ処理に便利 -平均を求める、ファイルの形式を変えたりするのによく使う。 平均は断面の節点数などが同じならば 高さを変えて計算した結果なども 工夫すれば1回実行してグラフデータ等を作ることもできる *便利な考え方(必要な考え方、戸惑う考え方) [#p3650ed0] **代入 [#se17b291] プログラムの中の $$a=b$$ はaイコールbではなくてaにbを代入するという意味になる。 これを使って --( a=0 do i=1,10#これはiが1から10まで1ずつ増えていくということだからね a=a+1 .... .... end do --) みたいにしてaの値を1ずつ増やしたり 適当に変えて行ったりする時とかに使う。 イコールで使いたい時はa==bとか? **全部にある値を入れておいてifを使う [#o0284023] - みたいにnarabi(,)全部に-1をいれて おいていじったら違う値を入れるように設定して 同じ作業を行わないようにするとか ***節点は減らすのは大変だから増やす方向で考える [#m9929d1d] 中間節点や節点共有してないモデルを作るとき は基本形を作ってそこから節点を増やす。 *calculix用inpファイルの作成 [#xf742671] **立体要素 [#r13f20d0] -C3D8 -C3D6 -C3D4 ***直方体のモデル [#mfe8f7ed] -片持ち梁 はじ載荷 全面拘束 -片持ち梁 梁理論やせん断補正係数逆算用 理想的 -単純梁 3点曲げ -4点曲げや梁理論に近いような境界条件のものも作ってみる。 -境界条件や節点、要素の設定が分かったらL字型やI型、箱型断面などを作ってみる ***木材について [#g7c630ae] - ***2種類の材料を使う場合 [#qf788c54] -鋼板と木材 プレストレス木箱桁橋 単純梁 実験比較用 -みたいに要素をグループ分けして2つの材料を定義してやる ***プレストレス木箱桁橋の座屈用 [#n2664e3c] 基本形をつくる。 narax(),naray(),naraz()をつかって? 節点共有していない部分の節点を増やす でも解いてもすごくでかい座屈荷重がでたり 木材部分が座屈してしまう。 mentatでも座屈を見てみるのも手かも。 ***ifを使って要素を設定 [#x6872fec] -&link(ifyouso.f90,http://www.str.ce.akita-u.ac.jp/~gotouhan/saito/ifyouso.f90) のように節点にx,y,z番号をふる。要素関係から要素を自動的に決定する。 --この方法だと節点番号を適当に振ってもいいし 欠けたモデル等を作りなおすときも節点番号が変わっても 要素を作れるのでその点では便利。 --ifをつかうので実行に時間がかかることもある。 --簡単なモデルでは必要ないが x,y,zどの方向にも形が変化するようなモデル 例えば孔あきモデル - に使うといいと思う。 **シェル要素 [#g5cc5ba8] -S6 ***円筒形 [#kcd7c0c9] -rとsin,cosを使って形を決める --形づくる3角形の面の要素を作ったらnarabi(,)を利用して中間節点を作る。 これでS6要素ができる。 narabi(,)を利用して要素数を4倍、16倍、64倍と増やせる。 --64倍とかまで増やす時はいいパソコンを使わないとできないと思う。 -慣れたら半円筒とかも作ってみる -座屈は荷重(倍率)の影響を受ける小さめの方がいい? ***ハニカム、格子パネル [#ra2ef6f2] ****板なし格子 [#x547b189] -S3からS6にするプログラムを使うと失敗することがある -最初から中間節点を入れれて自由に分割できるものを使った方がいい? ****ハニカム [#u98b317d] - ***板あり [#i9bd01d2] -板ありはよく見てないが今までこんなの使ってる。 - - *3Dプリンター用stlファイルを作る [#z9de617c] *プログラム全般 [#naac49fb] **read [#f0ee6fad] --データ処理に便利 --平均を求める、ファイルの形式を変えたりするのによく使う。 --平均は断面の節点数などが同じならば 高さを変えて計算した結果なども 工夫すれば1回実行してグラフデータ等を作ることもできる。 **write [#nc2956df] --書きこむところを指定できるので --一つのプログラムで複数のinpファイル、グラフファイルを作ることができる --モデルの数が多い円筒形やパラメータを変化させて計算する時に 使うと便利。 **character [#y6c4ceee] --文字を記録できる。ファイル名とか --これとwriteやdoと代入a=a+1などを利用して 規則的にファイル名を変化させたファイルを 一気につくることができる。