Sabtu, 16 September 2023

teks editor untuk scripting yg sederhana dan ringan

banyak Teks Editor untuk scripting maupun coding atau biasa disebut Integrated Development Environment (IDE) yg ada saat ini, dari yg sangat sederhana seperti Notepad bawaan Windows, sederhana seperti SciTE, menengah seperti Geany, Codelite, Code::Blocks, Visual Studio Code sampai yg paling kompleks seperti MS Visual Studio, QT Creator, dll. Perbedaan tingkatan golongan kompleksitas IDE didasarkan kapabilitasnya yg hanya ditujukan sebagai editor saja, dapat memanggil compiler untuk membuat executable dan yg paling kompleks adalah kemampuan membuat GUI dengan form data masukan, plot grafik 2D bahkan 3D.

.

.

belakangan ini sya baru melihat-lihat lagi project IDE bernama Geany yg dikenal cukup sederhana dan ringan namun sudah mampu memanggil compiler dan membuat executable dari baris program yg dibuat. Namun tidak seperti Code::Blocks yg sudah memasukan compiler pada file instalasi, untuk Geany dilakukan terpisah dengan compiler dari TDM-GCC atau pilihan lain dari EquationSolution. Berikut screenshot Instalasi TDM-GCC, serta interface Geany dan testing compiler.

.


.


.


.


.

.

terlihat berjalan dengan baik, sudah dapat digunakan untuk membuat program kelas sederhana sampai menengah tingkat kerumitannnya.  Mengenai menu bantuan (help manuals) juga disertakan dan dapat diakses. Sekitar 74 halaman jika ingin dicetak kertas atau elektronik versi PDF.

.


.


.

untuk run scripting Python sya belum berhasil menampilkan, walau setting yg dibuat kelihatnnya sudah benar. Mungkin hal ini dfikarenakan sya menggunakan IronPython bukan standard distribusi.

.


.


.

ada perbedaan dgn sya yg menggunakan SciTE sebelumnya pada pemanggilan executable ipyw menjadi ipy, setelah disesesuiakn dapat berhasil running dan menampilkan keluaran di layar.

.


.


.

untuk autocompletion dapat ditentukan melalui menu Preferences, seperti berikut.

.


.

Terlihat teks editor Geany juga mendukung format *.inp dari Abaqus serta dapat juga memanggil executable untuk running. Hal ini memungkinkan modifikasi agar kompatible dengan CalculiX solver dan graphics sebagai pre-post processor.  Adapun perubahan yg sya lakukan terhadap customized menu adalah,

  • Build - Run (F8) untuk memanggil Solver untuk proses Job
  • Build - Make (Shift+F9) untuk melihat model data masukan file *.inp
  • Build - Make Object (Shift+F8) untuk melihat data keluaran file *.frd
  • Build - Exe (F5)  untuk membuat model dan meshing file *.fbd



.

.


.


,

,

,

.
distribusi compiler dari GCC sudah cukup lengkap termasuk untuk Objective C, C++ dan Fortran versi lama 77 sampai terbaru 95 keatas sehingga dapat digunakan langsung. Pembuatan execetubale perlu dilakukan dua tahap yaitu menu  pilihan Compile (F8) kemudian Build (F9) setelah jadi dapat dipanggil untuk running pada Terminal atau Command Prompt dengan menu Execute (F5). Pertimabangan sya mengenai pilihan versi Fortran yg mungkin perlu dipelajari ulang sebaiknya versi yg lama (77) dikarenakan beberapa buku dan program lama sya dalam versi tersebut.  Rujukan tersebut diantaranya adalah : diktat perkualiahan laboratorium komputer dulu, sorce code perencanan beton bertulang dari dosen pengajar senior, buku tulisan J.E Bowles yaitu Pondasi dan Struktur Baja, Metode elemen hingga CalculiX termasuk subroutine untuk user material atau element.

.

.

.
belakangan ada updates versi terbaru (October 2023) dan lainnya adalah tambahan untuk setting bahasa pemrograman C# dengan dotNet tersintsall  Cara kerjanya agak sedikit berbeda, pertama yg dilakukan adalah membuat file kosong bernama untuk generate project beserta file dan folder yg dibutuhkan dengan perntah lanjut Compile (F8), lalu buka  Program.cs yg dibuat otomatis untuk kemudia Execute (F5) untuk membuat program dan menjalankan serta menampilkan hasil.
.

.


.

.

.

Rabu, 13 September 2023

dokumen HTML sebagai output format laporan

sya diawal banyak membuat modul desain struktural (beton & baja) dengan pemrograman Python dan C/C++ namun tidak dilanjutkan karena kurang tertarik pada hasil output yg dikeluarkan berupa plain text. Saat itu mencari library pendukung dalam format MS Word atau OpenOffice Writer namun tidak menemukan, hanya library sederhana saja tidak mendukung rumus dan gambar vector sebaik LaTeX. Format HTML sudah dipertimbangkan, namun tetap saat itu browser belum mendukung secara offline sehingga rumus dan gambar perlu diubah menjadi format bitmap.

.

.
Sudah cukup lama, jikalau ada library yg mendukung format DOC/DOCX saat itu adalah proprietary dan komersil perlu mengeluarkan dana lumayan dan juga tidak kompatibel jika sya akan mendistribusikan code sya secara opensource. Saat ini dukungan format HTML berkembang pesat, adanya MathML dan SVG serta kemampuan browser yg canggih bahkan sampai menampilkan object 3D interactive.
.

.
.
Penggunaan Word Processor dengan OpenOffice Writer ada sedikit kendala kompatibilitas, namun dengan OpenOffice Math terlihat bekerja baik seperti tampilan dibawah. Diakhir baris disisipkan juga formula dari ODF sehingga memudahkan untuk mengingat dan mencari.
.

.

.
.

.

Pembuatan rumus biasanya dapat dilakukan pada dokumen processor, namun untuk lebih menjamin tujuan kompatibilitas dapat menggunakan Visual Math Editor atau OpenOffice Math seperti tampilan diatas. Banyak tool membantu secara tampilan, bahasa yg digunakan untuk editor tersebut diantaranya adalah LaTeX. Setelah jadi dapat disimpan dalam format mml dan disisipkan pada dokumen HTML. Integrasi dengan perhitungan otomatis dapat dibuat pada program (Python, C/C++, C# atau Java dll) sesuai kebiasaan pembuat. Dapat dilihat pada contoh, 1 (satu) baris rumus pada LaTeX diterjemahkan menjadi 61 (enampuluh satu) baris format MathML. Simplifikasi tampilan dapat dilakukan dengan folding untuk menyembunyikan sehingga dapat lebih fokus kepada hal lainnya.
.
.

.


Sedangkan untuk gambar ilustrasi atau skematis hasil perhitungan menggunakan format SVG yg sebelumnya dapat dibuat pada drawing vector processor seperti OpenOffice Draw atau Inkscape. Akurasi dapat dibuat dengan program CAD dan disimpan dalam format DXF untuk kemudian dilakukan import dan editing pada OpenOffice Draw atau Inkscape.

Hasil keluaran dari program sya yg dulu tentunya akan jauh lebih baik dengan format HTMLdibanding sebelumnya yg hanya plain text biasa yg terlihat monoton dan membosankan. Namun disisi lain ada kekurangan untuk proses editing lanjut secara manual dibandingkan dengan format DOCX/ODT dan memang kurang sya perhatikan karena tujuan program adalah otomatisasi perhitungan laporan struktur. Kelanjutan editing dapat diberikan dengan dibuatnya pilihan output keluaran dalam format LaTeX seperti yg sebelumnya telah sya coba buat untuk sebuah modul, format SVG perlu dibuat ulang untuk pembuatan gambar ilustrasi pada LaTeX, walau dapat saja file SVG disisipkan namun beresiko masalah ketergantungan jika file rujukan tersebut tidak disengaja terhapus.

.

.


.
.

Mengenai bahasa program yg digunakan sebaiknya jangan yg jenis scripting atau interpreter seperti Python atau Javascript karena dalam hal ini melakukan proses tahapan yg sangat banyak jumlah baris code dan pastinya akan sangat lambat. Sebaiknya digunakan bahasa program Ansi C/ C++ atau Fortran yg dikenal tercepat prosesnya, kemungkinan  C# dan Java akan lebih lambat jika dibandingkan dalam hal ini.





Tambahan catatan berikut daftar library untuk Ansi C/C++ yg mungkin diperlukan dan juga IDE berikut Compiler.
Rujukan dokumentasi untuk Ansi C/C++ diantaranya sebagai berikut,
  • The GNU C Reference Manual, Trevis Rothwell & James Youngman, 2015 (webs / pdf)
  • The GNU C Library Reference Manual, Sandra Loosemore etal, 2023 (webs / pdf)
  • The GNU C Programming Tutorial, Mark Burgess & Ron Hale-Evans, 2002  (webs / pdf)
  • Learning GNU C, Ciaran O'Riordan, 2008 (webs / pdf)
  • How to Think Like a Computer Scientist C/C++ Version, Allen B. Downey & Thomas Scheffler, 1999-2019 (webs /pdf / pdf)
  • GNU C Language Introduction and Reference Manual, Richard Stallman & Trevis Rothwell, 2022 (webs / pdf)
Sebenarnya bahasa pemrograman bersifat bebas apa saja karena secara umum prinsip dan tujuannya adalah sama yaitu memcahkan atau menyelesaikan masalah secara otomatis dan cepat. Setiap bahasa pemrograman mempunyai kelebihan dan kekurangan masing-masing, selain kecepatan proses mungkin hal lain adalah library pendukung dan juga cross-platform. Developer suatu software memang pada umumnya menggunakan lebih dari satu bahasa pemrograman, misal pada Abaqus, SAP2000, CalculiX danOpenSees. Pernah saya mendapatkan informasi, Abaqus menggunakan Fortran untuk solver dan C++ pada FLTK untuk GUI interfaces, scripting API disediakan dengan bahasa Python. SAP2000 menggunakan Fortran pada solver dan Visual Basic atau C# pada interfaces kemungkinannya, scripting API menggunakan bahasa Basic dan Python. CalculiX menggunakan bahasa Fortan untuk solver dan Ansi C untuk interfaces. Solver elemen hingga OpenSees menggunakan bahasa C++, beberapa interface menggunakan Python dan C++ juga. Dapat dipahami perbedaan tersebut dapat disederhanakan dengan tidak perlu mengetahui detail hanya cukup menyediakan data masukan dan memanggil executable lain atau DLL jika library tidak kompatible. Microsoft membuat semacam penghubung antar bahasa program buatannya dengan Command Language Runtime (CLR) dengan teknologi .NET, library visualisasi  3D yg sya minati yaitu VTK juga menyediakan beberapa bahasa pemrograman selain aslinya yg bahasa C++ juga ada C#, Python dan Java. 
.

gambar logo dan artikel sya terkait
.

Lalu bagaimana jika pengguna hanya ingin memilih satu saja? baiknya sih jangan ya, namun jika memang seperti itu dapat melihat dari gambaran beberapa developer diatas, bahasa program yg dapat bekerja sebagai solver dan interfaces adalah C++, sedangkan bahasa Ansi C masih memungkinkan disatukan untuk kompatible karena C++ itu sendiri adalah C yg ditambah tambahin :) namun akan beda ceritanya dengan bahasa C# walau terlihat mirip namanya karena ada pagar batas yg banyak. Walaupun batasan tersebut sudah mulai dibuka oleh teknologi .NET Core, ini mungkin karena terjadinya cinta terpaksa Microsoft kepada dunia Linux dan OpenSource.




Senin, 06 Maret 2023

jenis meshing quad di GMSH saat ini

.


.
untuk meshing bidang permukaan datar atau lengkung element shell pada GMSH sudah dapat dihasilkan full quad dengan berbagai metode atau algorithm Blossom yaitu : Frontal Delaunay, Frontal Delaunay for Quad dan Quasi-Structured Quad. berikut akan dibandingkan hasil berbagai metode terserbut pada object model dan intensitas mesh yg sama. yg cukup baru dan menarik bagi sya adalah jenis Quasi-structured karena mesh yg dihasilkan cukup baik dan teratur pada banyak masalah.

algorithna Quasi-structured quadrilateral.
.
.
(model HDF dari SesamX, 2020)
.
.
.

.

.
.


.

.
algorithma Frontal-Delaunay,
.
.

.

.

.



.
ada yg terlewat saal export ke file IGS model belum ddisatukan
.

.

.

.


.
.

.

.
.

.

.



.
.
.
.
.

.


.
.


.
.

.



.