Rabu, 04 April 2018

pre-processor FE model struktur gedung dgn CAD standard

software desain untuk tujuan penggambaran sudah lama ada sejak AutoCAD versi DOS jauh lebih maju konsepnya terlebih dahulu (snap, tracking, layer, etc) sebelum software modeling FE seperti SAP atau NASTRAN, sehingga software FE modeling lain sampai saat ini masih menjembatani dgn program CAD seperti format DXF untuk element frame, IGES untuk element Shell dan STEP untuk element Solid. memang secara prinsip orientasi modeling antara software FE dan CAD berbeda, yaitu pada tujuan visualisasi dan numerical. Sebelumnya ANSYS dan lainnya seperti SALOME mengembangkan integrasi keduanya, dimana modeling CAD dan  Meshing merupakan satu kesatuan dan belakangan MSC Software lebih advanced mengintegrasikannya pada software Apex dengan metode direct modeling & meshing.

.

.

.


(source: MSC Software)
.

jika dilihat dari berbagai perkembangan software FE yg ada sampai saat ini masing-masing mempunyai kelebihan atau kekurangan diantara modeler, mesher atau solver. seperti ABAQUS yg terkenal solver nya sedangkan ANSYS lebih dikenal modeler dan meshernya. kedua software FE tersebut lebih spesifik untuk teknik mesin/penerbangan yg dominan jenis analisa menggunakan element shell atau solid beserta nonlinearitasnya, untuk aplikasi teknik sipil/struktur lebih terkenal SAP/ETABS atau STAAD/STRUDL yg dominan jenis analisa menggunakan elemen frame atau truss dan kebanyakan masih linear walau dapat juga untuk element shell atau solid namun masih terbatas belum sampai advanced seperti contact & plasticity. software aplikasi FE untuk teknik sipil/struktur berbeda pendekatan pada modeling dibanding software teknik mesin/penerbangan, ini dikarenakan model yg dianalisa dalam skala besar seperti gedung sehingga solver dibuat efektif misal nonlinearitas penampang balok/kolom dimodelkan dengan element garis 1dim frame dengan plastisitas terkonsentrasi (concentraded) atau menyebar (distributed) pada bentang, object pelat/dinding beton bertulang dimodelkan dgn element shell dgn rasio tulangan kedua arah. pada pemodelan interaksi struktur dgn tanah yaitu titik pondasi dimodelkan dengn pegas nonlinear representasi pile cap atau footing. pemodelan nonlinearitas pertemuan balok dan kolom yaitu sambungan dimodelkan dengan pegas hubungan momen-rotasi, semua hal tersebut ditempuh untuk mencapai efektifitas pada model struktur gedung yg besar dan rumit yg mana akan sulit dan lama jika dimodelkan dengan elemen shell dan solid. untuk tujuan desain bahkan jauh lebih sederhana dengan banyak mereduksi kompleksitas namun tetap menjaga konsistensi desain dan batasannya.



.

analisa nonlinear struktur gedung diperlukan untuk tujuan study kehandalan konfigurasi yg ditentukan akibat beban berlebih yg sulit terprediksi seperti akibat gempa (seismic). software FE yg mampu sampai tahap tersebut diantaranya adalah ZeusNL/SeismoStruct, Perform3D/DRAIN dan OpenSees namun masih terbatas pada solver dan belum lengkapnya untuk modeling dan meshing sehingga diperlukan software lain untuk memenuhi kekurangan tersebut. dalam hal ini sya memilih CAD standard (AutoCAD, IntelliCAD, etc) karena lebih mudah diakses serta multi platform OS seperti DraftSight, dijembatani dgn format DXF untuk modeling element frame/truss dan plate/shell. masih dalam tahap awal konsep atau prototype, dimana sya review semaksimal mungkin kemampuan standard bawaannya. pada umumnya software FE pada feature import DXF hanya terhadap geometri object dan koordinat saja, kepemilikan object belum dimanfaatkan seperti layer, linetype & lineweight padahal cukup berguna misal untuk layer dapat diberi keterangan penamaan sampai dgn 255 character dan jumlah layer maksimum cukup banyak yaitu dapat sampai 32767. begitupula dengan linetype dapat diberi penamaan dan jumlah ragam dapat cukup banyak, untuk lineweight dapat sampai 24 tingkatan intensitas.



(source: Autodesk)
.

pada tahap awal diperlukan proses pembacaan format DXF yaitu object dan koordinatnya, seperti object 'Line' untuk element frame/truss dan object '3DFace' untuk element shell. kebanyakan software FE yg ada hanya pada sampai tahap ini, sehingga properties penampang, material dan beban perlu ditentukan kemudian oleh user. hal tersebut tentunya akan cukup panjang untuk keseluruhan model struktur gedung apalagi konfigurasi cukup rumit, dalam hal ini sya memanfaatkan object properties untuk kekurangan tersebut sehingga sedikit bahkan mungkin tidak perlu lagi tahap lanjut atau model dapat dikatakan cukup lengkap dan siap running.



.


.

bahasa pemograman yg digunakan sebelumnya menggunakan C/C++ sudah dapat membaca dan menkonversi file DXF menjadi input OpenSees, saat ini sya menggunakan Python seperti tampilan diatas. masih dalam tahap awal belum sampai mengkonversi karena memang baru review kemungkinan kemampuan dan pengembangannya. terlihat sudah dapat membaca object dan properties, dimana:
  • 'Point' akan digunakan untuk definisi beban titik, tumpuan, mass, extra nodes
  • 'Text' akan digunakan untuk keterangan tambahan misal slave dan master nodes
  • 'Arc/Circle' akan digunakan untuk frame dgn geometri lengkung segmental
  • '3DFace' akan digunakan untuk elemen shell dan penentuan pembesian untuk analisa nonlinear shearwall atau area loads yg akan disalurkan otomatis ke balok sekelilingnya
  • 'Layer' akan digunakan untuk definisi penampang (Rect,Circ,I,C,etc) pada elemen frame/truss beserta rotational axis dan penentuan pembesian/profil baja untuk analisa nonlinear beton bertulang atau komposit
  • 'Linetype' akan digunakan untuk definisi material (Steel, Concrete, etc)
  • 'LineWeight' akan digunakan sebagai beban merata pada elemen frame atau beban titik node pada element shell jika layer garis nul atau sebagai penentu distribusi beban ke balok sekelilingnya.



.


proposal penamaan layer untuk definisi penampang dan kepemilikannya untuk analisa linear dan tujuan desain dgn OpenSees,

  • BEAM_Rectangle_B300xH600_Concrete_Fc30MPa_SteelReinf_Fy400MPa_Fys250MPa_MainTop_xD16_MainBot_xD16_Stirrups_2D10Sx (jumlah 114 karakter)
  • COLUMN_Circular_D600_Concrete_Fc30MPa_SteelReinf_Fy500MPa_Fys250MPa_Main_xD22_Stirrups_2D10Sx (jumlah 94 karakter)
  • COLUMN_Rectangle_B400xH600_Rotated90deg_Concrete_Fc35MPa_SteelReinf_Fy500MPa_Fys250MPa_Main_xD16_Stirrups_2D10Sx (jumlah 113 karakter)
  • SLAB_Thickness120_Concrete_Fc30MPa_SteelReinf_Fy400MPa_Cover30_MainLong_2LayersD10Sx (jumlah 85 karakter)
  • WALL_Thickness200_Concrete_Fc35MPa_SteelReinf_Fy500MPa_Cover40_MainLong_2LayersD10Sx (jumlah 84 karakter)


proposal penamaan layer untuk definisi penampang dan kepemilikannya untuk analisa nonlinear dgn OpenSees,

  • BEAM_Tee_B300xH600xT120_Concrete_Fc30MPa_SteelReinf_Fy500MPa_Fys250MPa_MainTop_5D19_MainBot_2D16_MainWeb_2D13_Stirrups_2D10S150_MainSlab_2LD13S200 (jumlah 134 karakter)
  • COLUMN_Circular_D600_Concrete_Fc30MPa_SteelReinf_Fy500MPa_Fys250MPa_Main_12D22_Stirrups_2D10s100 (jumlah 97 karakter)
  • COLUMN_Composite_Section_I400.400.20.10_Circular_D600_Concrete_Fc30MPa_SteelSection_Fy250MPa_SteelReinf_Fy500MPa_Fys250MPa_MainLong_10D16_Stirrups_2D10S100 (jumlah 156 karakter)
  • SLAB_Thickness120_Concrete_Fc30MPa_SteelReinf_Fy400MPa_Cover30_MainLong_2LayersD10_xDirsSpace150_yDirsSpace150 (jumlah 111 karakter)
  • WALL_Thickness200_Concrete_Fc35MPa_SteelReinf_Fy500MPa_Cover40_MainLong_2LayersD13_xDirsSpace150_yDirsSpace100 (jumlah 111 karakter)



.

proposal penamaan layer pada object Point untuk definisi restraint tumpuan, penentuan besaran massa pada nodal dan definisi multi-point-constraint pada lantai asumsi kaku (rigid diaphragm)

  • RESTRAINT_xDisp1_yDisp1_zDisp1_xRot0_yRot0_zRot0 (fast: RESTRAINT_Fixed, Pinned, Rolled)
  • MASS_TransX30_TransY20_TransZ0_RotX0_RotY0_RotZ10
  • SLAVE_pDirZ_Elv5000 dan MASTER_pDirZ_Elv5000





(source: OpenSEES)
.

hal yg perlu ditempuh adalah pngumpulan data koordinat nodes dan penamaannya untuk mapping dan parsing tingkat lanjut: nama layer, linetype, lineweight. penentuan nomer joint, penentuan joint pembentuk elemen frame/shell, hubungan balok sekeliling dari suatu panel untuk distribusi beban auto one/two ways. dibawah adalah cuplikan tampilan pengambilan data dari nama layer "WALL_Thickness200_Concrete_Fc35MPa_SteelReinf_Fy500MPa_Cover40_MainLong_Layers2_D13_xDirsSpace150_yDirsSpace100"


.

penanganan masalah akurasi pada saat penggambaran koordinat posisi "Point" atau "Text" dgn CAD, akan dilakukan snap terhadap koordinat nodes yg sudah ada terdekatnya dgn toleransi tertentu.


.

perhitungan untuk panjang element, distribusi beban dari panel lantai, dll. serta perhitungan untuk memecah object lengkung (arch & circle) menjadi beberapa segment garis.


.

perlu disediakan DXF template khusus untuk tujuan kemudahan modelisasi agar dicapai hasil konversi yg lengkap dan hanya cukup sedikit modifikasi text input, misal pada beban titik pada bentang balok atau dipecah (split) langsung saat penggambaran agar dapat siap runing jika memungkinkan. metode lain yg advanced adalah object based yg mana proses split dilakukan tidak langsung namun proses lanjut untuk tujuan persyaratan model element hingga, pemecahan element berdasarkan pertemuan/perpotongan dari object yg ditentukan.


(source: OpenSees)
.


(source: Hajjar etal, 2014)
.


(source: Lu etal, 2014)
.

penentuan nama layer tersebut untuk pemodelan penampang balok/kolom (fiber section) analisa nonlinear, serta nonlinear layered shell element untuk pelat lantai/slab dan dinding geser/shearwall. mengenai pemodelan foundasi mungkin nantinya generate dari penamaan layer 'Point' untuk kemudian digunakan model Boulanger etal (2003) seperti berikut yg telah digunakan peneliti lain.




(source: Simon, 2013)
.


.

proposal penamaan layer 'Point' untuk model pondasi dalam (driving/bored)

  • PILECAP_N5_Thickness1000_RigidModel_RectPile400_Concrete_Fc35MPa_SteelReinf_Fy400MPa_Fys250MPa_MainLong8D16_StirrupsD10S200_PileDistance1200_Depth16000_SoilPropData_zLiquif9000_tLiquif3000_unitWeight17_fricAngle30deg_shearMod150000




.



.

mengenai hasil output dari OpenSees juga memungkinkan ditampilkan dalam format DXF sehingga dapat dibuka dan ditampilkan dgn program CAD standard (3D Extruded Views dgn object 3DFace  entity (?) untuk kejelasan penerapan penampang balok/kolom, perlu dicari nanti), untuk plot hasil (internal forces: M,V,N dan hasil analisa nonlinear) mungkin perlu dibuat per-portal atau per-lantai untuk menyederhanakan tampilan.

.


file yg digunakan untuk membaca dan menggambar adalah output format XML, terlihat dari postingan sya sebelumnya menunjukan cukup lengkap dapat langsung digunakan karena sudah disertakan juga node coordinat pada hasil output deformasi struktur dan support joint reaction, sedangkan pada member element force (N,V,M) perlu tahap lanjut dengan mengganti node id's dengan koordinatnya mungkin cukup dengan fungsi find/replace biasa atau penggunaan regular expression.


(source: PEER, 2016)
.

cukup ada gambaran berdasarkan review singkat diatas kemungkinan penggunaan CAD standard untuk pre-processor FE code OpenSees, menarik juga kapabilitasnya. nanti kalo sudah tahap alpha perlu diberi nama (?) mungkin OPSwuCAD maksudnya singkatan bahasa slang "OpenSees with your CAD" cukup sederhana dan bagus kedengarannya :)

Minggu, 25 Maret 2018

[ipyw] distribusi Python dari Microsoft


.


(source: Hugunin, 2006)
.

program scripting favorite sya adalah Python, sempat dalam kondisi hiatus bertahun-tahun karena sya bermigrasi ke ANSI-C / C++ masalah pertimbangan kecepatan running saat dibandingkan implementasi program atau module desain struktur buatan sendiri "glassblock"  yg berorientasi pengingat sendiri dan pembelajaran untuk student yg mana hasil output nya ditampilkan selengkap mungkin. itupun terputus-putus karena padatnya kegiatan dan pekerjaan sya. belakangan sya melihat-lihat ulang dan menemukan program Python buatan Microsoft, kelebihannyan adalah tentu terintegrasi dgn product family lain buatannya (e.g C#, .NET, Silverlight, etc) dapat berjalan di Linux & Mac OS dengan Mono-Develop.



.


.


.


.


.

untuk melihat bantuan library module yg terdapat dlm paket,



.


.


.

text editor favorite sya adalah SciTE karena ringan, multiplatform dan dapat digunakan sebagai IDE terdapat output terminal. untuk setting IronPython perlu edit dengan penambahan properties berikut, sehingga fungsi Tool, Go (F5) dapat running bekerja. dapat dilihat pada output terminal sisi kanan. di awal setting untuk "pythonw" dan "ipy" gagal, lalu sya memperbaikinya dgn "ipyw" dan berhasil dengan tampilnya exit code (0) dan (1) saat running.


.


.



.

terlihat masih bawaan standard library, bagi pengguna advanced untuk alat bantu scientific pastinya akan dipandang kurang karena keterbatasan dan kompatibilitas library lain seperti Numpy/SciPy, MatPlotLib, MayaVi etc. walau ada informasi dari blog pembuatnya mengatakan masih memungkinkan dengan cara menelusuri ketergantungan (dependency walker) yg merupakan proses trivial. 




.
(source: enthought.com)



berikut perbandingan library packages bawaan distribusi Python dari Anaconda, file setup installer cukup esar yaitu sekitar 500MB karena banyak paket didalamnya termasuk library QT untuk GUI itupun belum termasuk MayaVi.



.

Packages for 64-bit Windows with Python 3.6



.


sya tertarik dgn IronPython karena code dapat di compile menjadi exe dan juga kecepatan waktu proses running yg reliable cukup cepat dgn adanya JIT, namun jika iya harus tetap menjauh dari library packages lain non-standard yg rumit/kompleks. IronPython telah digunakan sebagai program penunjang interfaces modeling pada software 3D CAD Rhino dan Revit, sedangkan Python digunakan pada software FE Abaqus dan Code_Aster, belakangan OpenSees dan SAP2000 juga menyediakan interface dgn bahasa pemrograman tersebut.




.
(source: Computer & Structures, CSi)


hmmm,... lalu apakah "glassblock" sya versi Python akan tetap tertidur ataukah terbangun (?) entahlah mungkin semi-aktif terputus-putus karena hanya menggunakan freetimes saja.

**updates:
link review dari Guido van Rossum pembuat program Python (2009)

Jumat, 02 Maret 2018

perbedaan tahap dan hasil mesh GID dgn GMSH

awalnya sedang melihat-lihat struktur unik melalui YouTube, menemukan bangunan bertingkat banyak di Eropa (Spain) yg menggunakan struktur cangkang (shell) sebagai penahan beban gravitasi dan lateral. lebih menarik lagi, cangkang bagian luar yg non-symetris menjadikan ditribusi beban gravitasi tidak menerus. ketinggian bangunan sekitar 150m dengan jumlah tingkat 35.


(source: COMPASS, 2014)
.

berikut cuplikan gambar dari dokumentasi developer Layetana (2008) yg pekerjaan kosntrukinya sudah dimulai dari tahun 2000an.


.


balok penyokong cangkang luar pada tahap konstruksi
.


unsymmetrical shell voids making vertical discontinuity structures
.


.

program komersil modeling dan mesher yg digunakan adalah GID dari CIMNE banyak digunakan dan terkenal dinegara eropa, terdapat plugin yg sudah terintegrasi untuk solver FE komersil seperti ATENA, NASTRAN dan opensource seperti IMPACT, KRATOS. dulu saya gunakan untuk modeling element shell di SAP2000. versi evaluasi hanya membatasi sekitar 1000 nodes hasil mesh, sudah lama tidak sya gunakan sejak sekitar tahun 2005an karena ketertarikan dgn GMSH yg terintegrasi dgn solver FE Code_Aster. berikut hanya sekedar catatan yg mencoba mengingat tahap pembuatan dan dilakukan perbandingan dgn GMSH.



.


.


.



.



.


.


.



.



.



.


.

.


.



.


.



.


.


.


.


.



.

**updates

langkah pemodelan dan meshing dgn GMSH,




.


.


.


.


.


.


pemodelan geometry lengkung di GMSH lebih mudah, pengguna cukup menentukan titik start-center-end, berbeda dengan GID yg perlu menentukan mid point.
.


.


.


.


.


.


.


.



.


.


terlihat sekilas hasil meshing GMSH dgn algorithma Delaunay for Quads sebagian besar element lebih terstruktur dan seragam, ini lebih baik dibanding GID CIMNE mesher default quads nya.


... need to be add,
  • step in modeling and meshing result using GMSH
  • mesh quality check using Salome for both mesher results