OpenSees Blog 日本語 目次

最初に「このブログをみるためのガイド」をご覧ください。

Update中OpenSees コマンド 日本語解説 の 目次 OpenSeesコマンド はじめての方は「ここから
このblogで使用しているOpenSeesコマンド集は「ここ」 Update中
OpenSees のソースコード 解析に挑戦してみる 目次最初のページは「ソースコードのダウンロードとビルド」
Appendix:C言語での 「有限要素法における平面トラスの解析」目次最初のページは「Microsoft Visual Studioの導入方法」







目次の中で、更新したページにはNewがついています

このブログ内の単語を検索したい場合は、左上OpenSeesロゴの上に検索窓から検索できます。


2015年8月26日水曜日

OpenSees Basic Examples (G1:鉄筋コンクリート門型フレーム 重力の柱軸力のみを作用させた解析) 例題




Reinforced Concrete Portal Gravity Analysis 参照



OpenSees Basic Examples (曲げモーメント-曲率計算) 例題 で、使用した鉄筋コンクリート
を使用して、実際に門型フレームで解析します。

まず、重力のみ、かけたものについての解析です。

element 1 と 2 に先ほどの鉄筋コンクリート部材が使用されています。
長さは、12feet (144inch) です。
桁の部分は、30feet (360inch)です。

Node 3  と 4 に 重力加速度による力として(180kip)  が掛っています。


 次のページ → 
OpenSees Basic Examples (鉄筋コンクリート門型フレーム の柱軸力のみを作用させた解析)解説(節点、要素、部材の定義)



Opensees コマンド 日本語解説 : 目次


2015年8月21日金曜日

OpenSees Basic Examples (B7: 曲げモーメント-曲率計算) 解析結果


曲げモーメント-曲率計算(ここ)で作成した、MomentCurvature.tclファイル内の OpenSeesコマンドを実行すると、以下の様な画面が表示されます。


また出力されるファイルは、以下の通りです。

曲率は、

上記の降伏曲率の値 (Ky) 

塑性率 μ 、 15
(曲率φ が 15倍になるまでを解析します) 
曲げモーメントと曲率を計算するために解析を行う回数、100
から

解析する時の曲率の増加量は、
(Ky * μ) / (解析回数)
= 0.0000190476

下記の出力ファイルは、0.0000190476づつ曲率が増えていったときの曲げモーメントの値を表しています。


<section1.out>

曲率 曲げモーメント
0.0000000000 0.00
0.0000190476 1245.30
0.0000380952 1809.51
0.0000571429 2250.69
0.0000761905 2658.24
0.0000952381 3052.58
0.0001142860 3441.32
0.0001333330 3820.88
0.0001523810 4058.79
0.0001714290 4136.33
0.0001904760 4212.59
0.0002095240 4287.53
0.0002285710 4361.08
0.0002476190 4433.19
0.0002666670 4503.62
0.0002857140 4566.44
0.0003047620 4628.14
0.0003238100 4688.68
0.0003428570 4746.96
0.0003619050 4771.71
0.0003809520 4783.53
0.0004000000 4792.99
0.0004190480 4802.29
0.0004380950 4811.43
0.0004571430 4819.23
0.0004761900 4826.00
0.0004952380 4832.76
0.0005142860 4839.50
0.0005333330 4840.28
0.0005523810 4839.74
0.0005714290 4839.11
0.0005904760 4838.41
0.0006095240 4837.61
0.0006285710 4836.72
0.0006476190 4835.73
0.0006666670 4834.65
0.0006857140 4833.47
0.0007047620 4832.18
0.0007238100 4830.78
0.0007428570 4829.27
0.0007619050 4827.64
0.0007809520 4825.89
0.0008000000 4824.01
0.0008190480 4822.00
0.0008380950 4819.85
0.0008571430 4817.55
0.0008761900 4815.10
0.0008952380 4812.49
0.0009142860 4809.72
0.0009333330 4806.76
0.0009523810 4803.62
0.0009714290 4800.28
0.0009904760 4796.73
0.0010095200 4792.89
0.0010285700 4788.64
0.0010476200 4784.08
0.0010666700 4779.16
0.0010857100 4773.84
0.0011047600 4768.07
0.0011238100 4761.77
0.0011428600 4754.87
0.0011619000 4746.10
0.0011809500 4735.07
0.0012000000 4728.23
0.0012190500 4725.51
0.0012381000 4722.32
0.0012571400 4718.57
0.0012761900 4714.15
0.0012952400 4708.89
0.0013142900 4702.55
0.0013333300 4693.79
0.0013523800 4692.23
0.0013714300 4694.87
0.0013904800 4697.92
0.0014095200 4700.96
0.0014285700 4704.00
0.0014476200 4707.04
0.0014666700 4710.08
0.0014857100 4713.11
0.0015047600 4716.15
0.0015238100 4719.18
0.0015428600 4722.21
0.0015619000 4725.24
0.0015809500 4728.26
0.0016000000 4731.29
0.0016190500 4734.31
0.0016381000 4737.33
0.0016571400 4740.34
0.0016761900 4743.36
0.0016952400 4746.37
0.0017142900 4749.38
0.0017333300 4752.39
0.0017523800 4755.40
0.0017714300 4758.40
0.0017904800 4761.40
0.0018095200 4764.40
0.0018285700 4767.39
0.0018476200 4770.38
0.0018666700 4773.37
0.0018857100 4776.36
0.0019047600 4779.34

このデータをグラフ化したものです。







Opensees コマンド 日本語解説 : 目次

2015年8月19日水曜日

OpenSees Basic Examples (B6: 曲げモーメント-曲率計算) コマンドのサマリ


Basic Examples (曲げモーメント-曲率計算)  解説
のコマンドのサマリは以下の通りです。

このコマンドを ファイル名 MomentCurvature.tcl として、テキストフォーマットで作成し、


OpenSeesの起動環境 で 起動しているOpenSees のコマンドラインに


OpenSees MomentCurvature.tcl  <Enter>

と打ち込んで、実行します。


----- MomentCurvature.tcl 始まり ------

proc MomentCurvature {secTag axialLoad maxK {numIncr 100} } {
# Define two nodes at (0,0)
node 1 0.0 0.0
node 2 0.0 0.0

# Fix all degrees of freedom except axial and bending
fix 1 1 1 1
fix 2 0 1 0

# Define element
#                         tag ndI ndJ  secTag
element zeroLengthSection  1   1   2  $secTag

# Create recorder
recorder Node -file section$secTag.out -time -node 2 -dof 3 disp

# Define constant axial load
pattern Plain 1 "Constant" {
load 2 $axialLoad 0.0 0.0
}

# Define analysis parameters
integrator LoadControl 0.0
system SparseGeneral -piv; # Overkill, but may need the pivoting!
test NormUnbalance 1.0e-9 10
numberer Plain
constraints Plain
algorithm Newton
analysis Static

# Do one analysis for constant axial load
analyze 1

# Define reference moment
pattern Plain 2 "Linear" {
load 2 0.0 0.0 1.0
}

# Compute curvature increment
set dK [expr $maxK/$numIncr]

# Use displacement control at node 2 for section analysis
integrator DisplacementControl 2 3 $dK 1 $dK $dK

# Do the section analysis
analyze $numIncr
}


# Define model builder
# --------------------
model basic -ndm 2 -ndf 3

# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE                  tag   f'c        ec0   f'cu        ecu
# Core concrete (confined)
uniaxialMaterial Concrete01  1  -6.0  -0.004   -5.0     -0.014

# Cover concrete (unconfined)
uniaxialMaterial Concrete01  2  -5.0   -0.002   0.0     -0.006

# STEEL
# Reinforcing steel 
set fy 60.0;      # Yield stress
set E 30000.0;    # Young's modulus
#                        tag  fy E0    b
uniaxialMaterial Steel01  3  $fy $E 0.01

# Define cross-section for nonlinear columns
# ------------------------------------------

# set some paramaters
set colWidth 15
set colDepth 24 

set cover  1.5
set As    0.60;     # area of no. 7 bars

# some variables derived from the parameters
set y1 [expr $colDepth/2.0]
set z1 [expr $colWidth/2.0]

section Fiber 1 {

    # Create the concrete core fibers
    patch rect 1 10 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]

    # Create the concrete cover fibers (top, bottom, left, right)
    patch rect 2 10 1  [expr -$y1] [expr $z1-$cover] $y1 $z1
    patch rect 2 10 1  [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
    patch rect 2  2 1  [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
    patch rect 2  2 1  [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]

    # Create the reinforcing fibers (left, middle, right)
    layer straight 3 3 $As [expr $y1-$cover] [expr $z1-$cover] [expr $y1-$cover] [expr $cover-$z1]
    layer straight 3 2 $As 0.0 [expr $z1-$cover] 0.0 [expr $cover-$z1]
    layer straight 3 3 $As [expr $cover-$y1] [expr $z1-$cover] [expr $cover-$y1] [expr $cover-$z1]

}    

# Estimate yield curvature
# (Assuming no axial load and only top and bottom steel)
set d [expr $colDepth-$cover] ;# d -- from cover to rebar
set epsy [expr $fy/$E] ;# steel yield strain
set Ky [expr $epsy/(0.7*$d)]

# Print estimate to standard output
puts "Estimated yield curvature: $Ky"

# Set axial load 
set P -180

set mu 15; # Target ductility for analysis
set numIncr 100; # Number of analysis increments

# Call the section analysis procedure
MomentCurvature 1 $P [expr $Ky*$mu] $numIncr


----- MomentCurvature.tcl 終わり ------


次のページ →
OpenSees Basic Examples (曲げモーメント-曲率計算) 
解説(解析結果)



Opensees コマンド 日本語解説 : 目次

2015年8月9日日曜日

夏休みのお知らせ

OpenSeesファンの皆様

このブログを見ていただきましてありがとうございます。
8/10の週、お盆休みにさせていただきます。再開は8/19予定です。

2014年5月から始めましたこのブログ、ページも含めて現在公開している投稿は104ページになりました。

またView数は、気づいてみると1015/8/9現在 10177 (*)  になりました。
。。。10000ジャストのスクリーンショットを取れなかったのが残念です(^^;)

国別では以下の通りです。
日本 7571
アメリカ合衆国 674
ウクライナ 544
フランス 294
ロシア 208
インド 192

日本語で書いているにもかかわらず、海外からのViewもあるんですね。
皆様のヒントに、どのくらい役に立っているかわかりませんが、見ていただきまして
本当にありがとうございます。

さすがに投稿が100ページを超えると、全体の構成が分かりにくくなってきましてので
このブログをみるためのガイド
のページをつくりました。 ブログの全体構成が、こちらでわかるかと思います。

現在、
OpenSeesコマンド日本語解説
<<Moment Curvature Example >> 曲げモーメント-曲率 計算
に取り組んでいます。
次に
<<Reinforced Concrete Portal Gravity Analysis >> 鉄筋コンクリート門型フレーム重力の柱軸力のみを作用させた解析
までいきましたら、再び
<<Moment Curvature Example >> 曲げモーメント-曲率 計算
のtclコマンドを使用して
OpenSees のソースコード解析
に挑戦していきたいと考えております。

今後も週1回ペースでまったりと追記していきますので
よろしくお願いします。

Innovativeな建物がたくさんできますように!
2015/8/9 Satoko Toengawa

(*)Tonegawaが閲覧したビュー数、リダイレクトしたビュー数は除いた数字です

2015年8月4日火曜日

OpenSees Basic Examples (G4:鉄筋コンクリート門型フレーム :重力の柱軸力のみを作用させた解析) コマンドのサマリ



Basic Examples (鉄筋コンクリート門型フレーム :重力の柱軸力のみを作用させた解析)  解説
のコマンドのサマリは以下の通りです。

このコマンドを ファイル名 RCF-G.tcl として、テキストフォーマットで作成し、


OpenSeesの起動環境 で 起動しているOpenSees のコマンドラインに


OpenSees RCF-G.tcl  <Enter>

と打ち込んで、実行します。


----- RCF-G.tcl 始まり ------


# Create ModelBuilder (with two-dimensions and 3 DOF/node)
model basic -ndm 2 -ndf 3

# Create nodes
# ------------

# Set parameters for overall model geometry
set width    360
set height   144

# Create nodes
#    tag        X       Y
node  1       0.0     0.0
node  2    $width     0.0
node  3       0.0 $height
node  4    $width $height

# Fix supports at base of columns
#    tag   DX   DY   RZ
fix   1     1    1    1
fix   2     1    1    1

# Define materials for nonlinear columns
# ------------------------------------------
# CONCRETE                  tag   f'c        ec0   f'cu        ecu
# Core concrete (confined)
uniaxialMaterial Concrete01  1  -6.0  -0.004   -5.0     -0.014

# Cover concrete (unconfined)
uniaxialMaterial Concrete01  2  -5.0   -0.002   0.0     -0.006

# STEEL
# Reinforcing steel
set fy 60.0;      # Yield stress
set E 30000.0;    # Young's modulus
#                        tag  fy E0    b
uniaxialMaterial Steel01  3  $fy $E 0.01

# Define cross-section for nonlinear columns
# ------------------------------------------

# set some paramaters
set colWidth 15
set colDepth 24

set cover  1.5
set As    0.60;     # area of no. 7 bars

# some variables derived from the parameters
set y1 [expr $colDepth/2.0]
set z1 [expr $colWidth/2.0]

section Fiber 1 {

    # Create the concrete core fibers
    patch rect 1 10 1 [expr $cover-$y1] [expr $cover-$z1] [expr $y1-$cover] [expr $z1-$cover]

    # Create the concrete cover fibers (top, bottom, left, right)
    patch rect 2 10 1  [expr -$y1] [expr $z1-$cover] $y1 $z1
    patch rect 2 10 1  [expr -$y1] [expr -$z1] $y1 [expr $cover-$z1]
    patch rect 2  2 1  [expr -$y1] [expr $cover-$z1] [expr $cover-$y1] [expr $z1-$cover]
    patch rect 2  2 1  [expr $y1-$cover] [expr $cover-$z1] $y1 [expr $z1-$cover]

    # Create the reinforcing fibers (left, middle, right)
    layer straight 3 3 $As [expr $y1-$cover] [expr $z1-$cover] [expr $y1-$cover] [expr $cover-$z1]
    layer straight 3 2 $As 0.0 [expr $z1-$cover] 0.0 [expr $cover-$z1]
    layer straight 3 3 $As [expr $cover-$y1] [expr $z1-$cover] [expr $cover-$y1] [expr $cover-$z1]

}  


# Define column elements
# ----------------------

# Geometry of column elements
#                tag

geomTransf PDelta 1

# Number of integration points along length of element
set np 5

# Create the coulumns using Beam-column elements
#               e            tag ndI ndJ nsecs secID transfTag
set eleType forceBeamColumn
element $eleType  1   1   3   $np    1       1
element $eleType  2   2   4   $np    1       1

# Define beam elment
# -----------------------------

# Geometry of column elements
#                tag
geomTransf Linear 2

# Create the beam element
#                          tag ndI ndJ     A       E    Iz   transfTag
element elasticBeamColumn   3   3   4    360    4030  8640    2


# Define gravity loads
# --------------------

# Set a parameter for the axial load
set P 180.0;                # 10% of axial capacity of columns

# Create a Plain load pattern with a Linear TimeSeries
pattern Plain 1 "Linear" {

        # Create nodal loads at nodes 3 & 4
#    nd    FX          FY  MZ
load  3   0.0  [expr -$P] 0.0
load  4   0.0  [expr -$P] 0.0
}

# ------------------------------
# End of model generation
# ------------------------------



# ------------------------------
# Start of analysis generation
# ------------------------------

# Create the system of equation, a sparse solver with partial pivoting
system BandGeneral

# Create the constraint handler, the transformation method
constraints Transformation

# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM

# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-12  10 3

# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton

# Create the integration scheme, the LoadControl scheme using steps of 0.1
integrator LoadControl 0.1

# Create the analysis object
analysis Static

# ------------------------------
# End of analysis generation
# ------------------------------


# ------------------------------
# Finally perform the analysis
# ------------------------------

# perform the gravity load analysis, requires 10 steps to reach the load level
analyze 10

# Print out the state of nodes 3 and 4
print node 3 4

# Print out the state of element 1
print ele 1




----- RCF-G.tcl 終わり ------


次のページ →
OpenSees Basic Examples (鉄筋コンクリート門型フレーム:重力の柱軸力のみを作用させた解析)解析結果


Opensees コマンド 日本語解説 : 目次

2015年7月23日木曜日

OpenSees Basic Examples (B5: 曲げモーメント-曲率計算)  曲げモーメント-曲率の計算


ここまでで、
部材についての定義を終えたあと、この部材についての 曲げモーメント-曲率の計算を行います。

この計算は、他でも使用できるように、functionの形になっています。

function名と、その定義は、

MomentCurvature
{ (計算したいセクションのタグ番号),  (外力P),  (計算したい最大曲率)、(解析回数)}
です。

まず、このfunctionを呼ぶ側は、以下の通りです。

(部材の定義3)の後で、

# Call the section analysis procedure
MomentCurvature 1 $P [expr $Ky*$mu] $numIncr

とすることで、このfunctionを呼び出すことができます。

ここで、$でセットされているシンボルは、以下の通りです。

右側からの力Pは、-180
塑性率(mu) μ は、 15
曲率(Ky)φ が 15倍になるまでを解析します
曲げモーメントと曲率を計算するために解析を行う回数(numIncr) は、100

# Set axial load 
set P -180

set mu 15; # Target ductility for analysis
set numIncr 100; # Number of analysis increments

次に、MomentCurvature( ) の中身について解説します。

最初にNodeを設定します。ここでは、非常に微細な部分に対して解析しますので
同じ座標点(原点)2つに対して、Node, Element を設定します。
ここでNode 1については、3つの自由度すべてに対して固定
Node2については、Y座標のみ固定
と、設定します。


各コマンドの説明は、「OpenSeesコマンド集」を参照してください

# Define two nodes at (0,0)
node 1 0.0 0.0
node 2 0.0 0.0

# Fix all degrees of freedom except axial and bending
fix 1 1 1 1
fix 2 0 1 0

# Define element
#                              tag ndI ndJ  secTag
element zeroLengthSection  1   1   2  $secTag

ここで$secTag には 1 が入り、部材の定義2で、設定した
uniaxialMaterial Concrete01  1 
の部材として、取り扱われます。



この解析結果を記録するコマンドは、以下の通りです。


# Create recorder
recorder Node -file section$secTag.out -time -node 2 -dof 3 disp


recorderコマンドについては、「OpenSeesコマンド集」を参照してください

次に、下記の外力P、モーメント M について設定し、解析をします。



最初にPの外力は、Node2に対して、X方向(の逆)に、180かかります。
$axialLoad に 180 の値が入っています。

patternコマンドについては、「OpenSeesコマンド集」を参照してください


# Define constant axial load
pattern Plain 1 "Constant" {
load 2 $axialLoad 0.0 0.0
}

この外力に対して、解析するためのパラメーターは、以下のとおりです。
パラメーター及びanalyzeコマンドについては、「OpenSeesコマンド集」を参照してください

# Define analysis parameters
integrator LoadControl 0.0
system SparseGeneral -piv; # Overkill, but may need the pivoting!
test NormUnbalance 1.0e-9 10
numberer Plain
constraints Plain
algorithm Newton
analysis Static

1回 解析します

# Do one analysis for constant axial load
analyze 1

次に外力、モーメント M の設定は以下の通りです。
モーメントは、Node2のX軸座標からY軸座標方向に 1 をかけます

pattern , loadコマンドについては、「OpenSeesコマンド集」を参照してください

# Define reference moment
pattern Plain 2 "Linear" {
load 2 0.0 0.0 1.0
}

外力をかける大きさを、

降伏曲率の値 (Ky) 

塑性率 μ 、 15
(曲率φ が 15倍になるまでを解析します) 
曲げモーメントと曲率を計算するために解析を行う回数、100
から
解析する時の曲率の増加量は、
(Ky * μ) / (解析回数)


$dKとして計算します。

# Compute curvature increment
set dK [expr $maxK/$numIncr]

パラメーターは
# Define analysis parameters
でセットされたものから引き継がれますが、<<工事中>>

# Use displacement control at node 2 for section analysis
integrator DisplacementControl 2 3 $dK 1 $dK $dK

解析する回数は、$numIncr 100 回です。

# Do the section analysis
analyze $numIncr


次のページ →
OpenSees Basic Examples (曲げモーメント-曲率計算) 
解説(コマンドのサマリ)


Opensees コマンド 日本語解説 : 目次

2015年7月21日火曜日

OpenSees Basic Examples (B4: 曲げモーメント-曲率計算) 部材の定義3


部材の定義の続きです。

最後に、その他必要となるパラメーターをセットします。


上記の図より

# Estimate yield curvature
# (Assuming no axial load and only top and bottom steel)
set d [expr $colDepth-$cover] ;# d -- from cover to rebar

ここで # 以降の文章はコメント行です。
set d [expr $colDepth-$cover]
の意味は、
  パラメータ d に、
  colDepth から cover のパラメータにいれられた値を引いた値を
  代入する
という意味です。

また 下記式より















set epsy [expr $fy/$E] ;# steel yield strain
set Ky [expr $epsy/(0.7*$d)]

上図の「ひずみが0になっている点」が(対応部分の長さ)を表しますが
なぜ 0.7 とセットされたかは、不明です。

次に、ここで計算された曲率φを print コマンドによって表示します。

# Print estimate to standard output
puts "Estimated yield curvature: $Ky"

右側からの力Pは、-180 
塑性率 μ は、 15
(曲率φ が 15倍になるまでを解析します) 
曲げモーメントと曲率を計算するために解析を行う回数は、100

なお、ここでのPは、水平方向で耐えられる力として、180がセットされています。
この値は、
OpenSees Basic Examples (G3:鉄筋コンクリート門型フレーム 重力の柱軸力のみを作用させた解析) 解説(外力、解析の設定)
で、説明されていますが、「10% of axial capacity of columns」ということで、10%の力として180という値がセットされています。

# Set axial load 
set P -180

set mu 15; # Target ductility for analysis
set numIncr 100; # Number of analysis increments


次のページ →
OpenSees Basic Examples (曲げモーメント-曲率計算) 
解説(曲げモーメント-曲率の計算)