OpenSees mulai dari yang sederhana

Mempelajari OpenSees memang susah-susah gampang. Bagi user yang belum terbiasa dengan finite element dan bahasa memrograman, pasti akan sedikit tersiksa. Itu pula kesan yang saya rasakan saat menggunakan OpenSees.

Terlebih lagi tutorial yang ada banyak memperlihatkan script pemrograman yang rumit dan menjadi momok bagi user.

Prof. Scott mengatakan bahwa OpenSees dan nonlinear analisis struktur secara umum adalah sederhana, tidak kompleks dan tidak perlu kompleks.

Walaupun memang tujuan OpenSees dibuat adalah untuk simulasi performa struktur dan geoteknik terkait gempa, yang terlihat tidak sederhana.

Mulai dari yang sederhana

Seperti biasa, untuk mempelajari aplikasi baru biasanya saya lebih suka memulai dengan model yang sederhana.

Menurut Minjie Zhu di sini, secara umum script OpenSees dapat dibagi menjadi 2 yaitu bagian domain dan analysis.

  1. Domain terkait pembuatan geometri seperti node, element, kondisi tumpuan dsb.
  2. Analysis berisi pengaturan algorithm, system, numberer, constraint, integrators, dsb.

Sebagai tambahan, ada bagian ke 3 yaitu output dan postprocessing. Terkait merekam (record), menampilkan hasil (output) dan plot dalam grafik.


Baiklah.. kali ini akan dicoba cek lendutan yang terjadi pada balok sederhana dengan data sebagai berikut.

Menggunakan rumus praktis,

lendutan = PL^3 / 48EI = 1,92 mm


Berikut deskripsi tahapan pemodelan balok sederhana dengan OpenSeesPy.

(1) Pertama, tahapan awal adalah meng-import modul OpenSeesPy, dan menulis data penampang, material, serta geometri struktur.

# memasukkan modul opensees
from openseespy.opensees import *
# membersihkan model yang terdahulu
wipe()
# Unit mm, N, MPa
P = 10000
L = 6000
b = 250
h = 500
A = b*h
Iz = (b*h**3)/12
E = 9000

(2) Kedua, mengatur tinjauan dimensi dan derajat kebebasan. pada contoh ini struktur 2D, dengan derajat kebebasan 3 untuk balok.

# model dimensi (-ndm) dan derajat kebebasan (-ndf)
model('basic','-ndm', 2,'-ndf', 3)

(3) Ketiga, memasukkan node dan kondisi tumpuan

# membuat geometri dan tumpuan
# format node(id, x, y)
node(1, 0.0, 0.0) ; fix(1,1,1,0)
node(2, L/2, 0.0)
node(3, L, 0.0)   ; fix(3,0,1,0)

(4) Keempat, memasukkan jenis transformasi dan elemen balok. Bentang balok dibagi menjadi dua elemen seperti gambar soal.

# transformasi
geomTransf('Linear',1)
# memasukkan elemen
element('elasticBeamColumn', 1, 1,2, A,E,Iz,1)
element('elasticBeamColumn', 2, 2,3, A,E,Iz,1)

(5) Kelima, masukkan time series, load pattern, dan beban. Digunakan timeSeries Linear, karena contoh ini menggunakan beban statik yang sama sepanjang waktu.

# beban yang bekerja
timeSeries('Linear',1)
pattern('Plain',1,1)
load(2,0,-P,0)

(6) Keenam, pengaturan analisis dan running analisa

# analisis
system("BandSPD")
numberer("RCM")
constraints("Plain")
integrator("LoadControl", 1.0)
algorithm("Linear")
analysis("Static")
analyze(1)  #running analisa

(7) Ketujuh, melihat hasil respon struktur. Pada contoh ini hasil lendutan di tengah bentang (node 2), arah sumbu y atau 2.

# lendutan yang terjadi
uy = nodeDisp(2,2)
print(uy)

Hasil lendutan = 1,92 mm, sama persis dengan rumus praktis. Dengan ini model dan script OpenSees dianggap sudah benar.


Adapun analisa menggunakan OpenSeesPy secara keseluruhan dilakukan dengan script sebagai berikut. Penjelasan tahapan setiap perintah dapat dilihat di bawah ini.

from openseespy.opensees import *
wipe()
P = 10000
L = 6000
b = 250
h = 500
A = b*h
Iz = (b*h**3)/12
E = 9000
model('basic','-ndm',2,'-ndf',3)
node(1, 0.0, 0.0) ; fix(1,1,1,0)
node(2, L/2, 0.0)
node(3, L, 0.0)   ; fix(3,0,1,0)
geomTransf('Linear',1)
element('elasticBeamColumn',1,1,2,A,E,Iz,1)
element('elasticBeamColumn',2,2,3,A,E,Iz,1)
timeSeries('Linear',1)
pattern('Plain',1,1)
load(2,0,-P,0)
system("BandSPD")
numberer("RCM")
constraints("Plain")
integrator("LoadControl", 1.0)
algorithm("Linear")
analysis("Static")
analyze(1)
uy = nodeDisp(2,2)
print(uy)

Untuk perintah pembuatan model material, elemen, tumpuan, dsb; secara lengkap dapat dilihat pada koleksi perintah model (Model Commands) disini. Sedangkan untuk opsi pengaturan analysis dapat dilihat di sini.

Pada contoh ini, respons struktur yang dicek hanyalah lendutan. Berbagai jenis respons (reaksi, gaya, dsb) pada struktur (elemen dan node) dapat menggunakan perintah ouput (Output Command) di sini.

* Tahapan di atas bukan tahapan baku yang harus diikuti. Tapi merupakan tahapan untuk penyederhanaan agar lebih mudah diikuti.

Demikian semoga bermanfaat.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s