Langsung ke konten utama

Lammps Tutorial | 1 LJ fluid

 Dasar-Dasar Utama LAMMPS Melalui Contoh Sederhana

Tujuan dari tutorial ini adalah untuk menjalankan simulasi Dinamika Molekuler (MD) sederhana menggunakan LAMMPS. Sistem yang digunakan berupa cairan Lennard-Jones—yaitu kumpulan partikel netral dengan dua ukuran diameter berbeda—yang berada di dalam kotak kubus berbatas periodik (sistem tertutup yang berulang/tanpa batas dinding). Pada tutorial ini, Anda akan menjalankan simulasi dasar pada kondisi ensambel NVE (jumlah partikel, volume, dan energi tetap) serta NVT (jumlah partikel, volume, dan suhu tetap), lalu menghitung besaran-besaran dasar seperti energi potensial dan energi kinetik.


Membuat input file

Untuk menjalankan simulasi menggunakan LAMMPS, Anda perlu menulis script input yang berisi serangkaian perintah untuk dijalankan oleh LAMMPS, mirip seperti perintah pada script Python atau Bash. Agar lebih mudah dipahami, script input pada tutorial ini dibagi menjadi lima bagian yang akan diisi secara bertahap.

Untuk memulai tutorial ini menggunakan tampilan visual LAMMPS (LAMMPS–GUI):

  1. Pilih Start LAMMPS Tutorial 1 dari menu Tutorials.

  2. Ikuti petunjuk yang muncul.

Langkah ini akan memilih (atau membuat baru jika belum ada) sebuah folder, memasukkan file input awal bernama initial.lmp ke dalamnya, lalu membuka file tersebut di jendela Editor LAMMPS–GUI:

# BAGIAN A - MINIMISASI ENERGI

# 1) Inisialisasi (Initialization)

# 2) Definisi sistem (System definition)

# 3) Pengaturan (Settings)

# 4) Pemantauan (Monitoring)

# 5) Jalankan simulasi (Run)

Jika Anda Tidak Menggunakan LAMMPS-GUI

Semua tutorial ini dapat diikuti tanpa harus menggunakan LAMMPS-GUI. Caranya, buatlah sebuah folder baru lalu buat file bernama initial.lmp di dalamnya. Buka file tersebut menggunakan text editor pilihan Anda (seperti VS Code, Notepad++, atau Vim), lalu salin baris-baris kode sebelumnya ke dalam file tersebut.

Semua teks yang ditulis setelah tanda pagar (#) adalah komentar dan akan diabaikan oleh LAMMPS.

Kelima bagian/kategori di atas tidak wajib ada di setiap script input dan urutannya tidak harus selalu kaku. Sebagai contoh, urutan bagian Settings (Pengaturan) dan Monitoring (Pemantauan) bisa ditukar, atau bagian Monitoring bisa dihilangkan sama sekali.

Namun, perlu diingat bahwa LAMMPS membaca file input dari atas ke bawah dan langsung menjalankan setiap perintah secara berurutan. Oleh karena itu:

  • Bagian Initialization (Inisialisasi) dan System definition (Definisi Sistem) harus berada di paling atas.

  • Bagian Run (Jalankan Simulasi) harus berada di paling bawah.

Selain itu, cara kerja beberapa perintah dapat berubah jika ada pengaturan global yang dimodifikasi di tengah jalan, sehingga urutan penulisan perintah dalam script input sangatlah penting.

Inisialisasi (Initialization)

Pada bagian pertama script, yang disebut Initialization, Anda menentukan parameter-parameter global untuk simulasi, seperti sistem satuan (units), kondisi batas (boundary conditions, misalnya periodik atau tidak periodik), dan tipe atom (misalnya partikel titik tanpa muatan, atau bola padat yang memiliki jari-jari dan kecepatan sudut).

Perintah-perintah ini wajib dijalankan sebelum Anda membuat kotak simulasi (simulation box), jika tidak maka LAMMPS akan mengalami kegagalan (error). Begitu pula sebaliknya, banyak perintah LAMMPS yang baru bisa dimasukkan setelah kotak simulasi didefinisikan. Hanya sedikit perintah yang dapat digunakan di kedua kondisi tersebut.

Sekarang, perbarui file initial.lmp Anda sehingga bagian Initialization tampak seperti berikut:

# 1) Initialization
units lj
dimension 3
atom_style atomic
boundary p p p

Secara ketat, tidak ada satu pun dari keempat perintah pada bagian Initialization ini yang wajib ditulis, karena semuanya sudah sesuai dengan pengaturan bawaan (default) dari masing-masing sifat global tersebut. Namun, menuliskan pengaturan bawaan ini secara eksplisit dianggap sebagai praktik yang baik (good practice) untuk menghindari kebingungan saat Anda membagikan file input kepada pengguna LAMMPS lainnya.

Baris pertama, units lj, menentukan penggunaan satuan tereduksi (reduced units), di mana semua besaran tidak memiliki dimensi (tanpa satuan fisik seperti meter atau gram). Sistem satuan ini sering menjadi pilihan utama untuk simulasi yang mempelajari prinsip-prinsip umum mekanika statistik, karena lebih berfokus pada perbandingan relatif antar parameter ketimbang merepresentasikan bahan kimia tertentu.

Baris kedua, dimension 3, menentukan bahwa simulasi berjalan dalam ruang 3 dimensi—berbeda dengan 2D di mana pergerakan atom dibatasi hanya pada bidang xy.

Baris ketiga, atom_style atomic, memilih gaya atomik untuk merepresentasikan partikel titik sederhana yang berdiri sendiri. Pada tipe ini, setiap partikel hanya diperlakukan sebagai titik bermassa, menjadikannya gaya atom paling dasar. Tipe atom_style lainnya dapat memuat atribut tambahan, seperti muatan listrik, ikatan kimia, atau ID molekul, tergantung kebutuhan model yang disimulasikan.

Baris terakhir, boundary p p p, menandakan bahwa kondisi batas periodik diterapkan pada ketiga arah ruang (x, y, dan z). Karakter p masing-masing mewakili sumbu x, y, dan z. Pilihan alternatif selain p adalah batas non-periodik kaku (fixed / f), non-periodik fleksibel menyesuaikan ukuran sistem (shrink-wrapped / s), dan shrink-wrapped dengan nilai minimum (minimum shrink-wrapped / m). Untuk batas non-periodik, Anda bisa memilih kombinasi yang berbeda di tiap sumbunya, sehingga pengaturan seperti boundary p p f sah digunakan untuk sistem seperti geometri lapisan/pelat (slab).

Ringkasan Perintah:

  • units lj: Menggunakan parameter tanpa dimensi.

  • dimension 3: Ruang simulasi 3D.

  • atom_style atomic: Partikel berupa titik bermassa (tanpa muatan/ikatan).

  • boundary p p p: Batas periodik di semua sumbu (x, y, z).

Setiap perintah di LAMMPS dilengkapi dengan dokumentasi online yang sangat lengkap, memuat dan membahas berbagai pilihan parameter untuk perintah tersebut. Kebanyakan perintah LAMMPS juga memiliki pengaturan bawaan (default) yang akan otomatis diterapkan jika Anda tidak memasukkan nilai secara spesifik. Pengaturan bawaan untuk tiap perintah ini selalu tercantum di bagian paling bawah halaman dokumentasinya.

Dari layar editor LAMMPS–GUI, Anda bisa langsung membuka dokumentasi tersebut dengan cara klik kanan pada baris yang berisi perintah (misalnya units lj), lalu pilih View Documentation for units. Langkah ini akan membuka peramban (web browser) Anda dan mengarahkannya langsung ke alamat URL manual online yang sesuai.

Sebagian besar perintah LAMMPS memiliki pengaturan bawaan yang diterapkan jika tidak ada nilai yang ditentukan secara eksplisit. Pengaturan bawaan untuk setiap perintah dicantumkan di bagian bawah halaman dokumentasinya.

Definisi Sistem (System definition)

Langkah selanjutnya adalah membuat kotak simulasi dan mengisinya dengan atom-atom. Perbarui bagian System definition pada file initial.lmp seperti yang ditunjukkan di bawah ini:

# 2) System definition
region simbox block -20 20 -20 20 -20 20
create_box 2 simbox
create_atoms 1 random 1500 34134 simbox overlap 0.3
create_atoms 2 random 100 12756 simbox overlap 0.3

Baris pertama, region simbox (...), mendefinisikan sebuah wilayah bernama simbox berbentuk block (yaitu balok/kubus) yang membentang dari -20 hingga 20 satuan di sepanjang ketiga dimensi ruang.

Baris kedua, create_box 2 simbox, membuat kotak simulasi berdasarkan wilayah simbox tersebut dan menyiapkan ruang untuk 2 tipe atom yang berbeda.

Di dalam LAMMPS, setiap atom diberi properti tipe atom. Properti ini menentukan parameter medan gaya (force field—dalam hal ini parameter Lennard-Jones \epsilon dan \sigma) mana yang diterapkan pada setiap pasangan atom melalui perintah pair_coeff (lihat penjelasan di bawah). Kita akan membahas pada materi Pulling on a carbon nanotube bagaimana aturan ini berlaku untuk gaya pasang banyak-benda (many-body pair styles), serta pada materi Polymer in water bagaimana aturan ini berlaku untuk interaksi Coulomb.

Mulai dari titik ini, jumlah tipe atom sudah terkunci. Setiap perintah yang merujuk pada tipe atom dengan angka lebih dari 2 akan memicu pesan kesalahan (error). Meskipun Anda bisa saja menyiapkan slot tipe atom lebih banyak dari yang sebenarnya dibutuhkan, Anda wajib menentukan massa serta parameter medan gaya (force field) untuk setiap tipe atom tersebut. Jika tidak, LAMMPS akan langsung berhenti dan menampilkan error.

Baris ketiga, create_atoms (...), membuat 1500 atom tipe 1 pada posisi acak di dalam wilayah simbox. Angka bulat 34134 merupakan angka acak (seed) untuk generator nomor acak internal, yang nilainya dapat diubah untuk menghasilkan urutan angka acak yang berbeda—sehingga menghasilkan posisi awal atom yang berbeda pula.

Baris keempat menambahkan 100 atom tipe 2. Kedua perintah create_atoms ini menggunakan argumen opsional overlap 0.3, yang memaksakan jarak minimum sebesar 0,3 satuan panjang antar-atom yang ditempatkan secara acak. Batasan ini membantu mencegah tumpang-tindih atau jarak yang terlalu dekat antar-atom, yang dapat menyebabkan gaya interaksi melonjak terlalu besar dan membuat simulasi tidak stabil.

Setiap atom yang dibuat di dalam LAMMPS secara otomatis diberi ID atom unik sebagai penanda angka untuk membedakan satu atom dengan atom lainnya selama simulasi. Secara bawaan, ID atom memiliki rentang dari 1 hingga jumlah total atom, tetapi hal ini tidak mengikat secara kaku. Sebagai contoh, menghapus atom akan menyebabkan munculnya celah/kekosongan pada urutan daftar ID atom tersebut.




Komentar

Postingan populer dari blog ini

Tutuorial memasak ubi/ketela dengan microwave

Di Jepang, ketela merupakan makanan yang banyak digemari masyarakat. Jika anda melihat atau penggemar komin Crayon Sinchan, anda akan tau jika Misae (Ibu nya Sinchan) memiliki hobi makan ketela. 

Buku terapi mata

 Bagi anda yang memiliki mata minus dan plus, sebaik nya membaca buku terapi mata.  berikut adalah link library (Perpustakaan digital) yang menyediakan buku terapi mata.  https://it.z-library.sk/s/Terapi%20Mata%20Meningkatkan%20Penglihatan%20Mata%20Anda%20Tanpa%20Kacamata