Top Banner
Laporan Tugas Akhir PERANCANGAN DAN ANALISA SIMULASI DINAMIKA MOLEKUL ENSEMBLE MIKROKANONIKAL DAN KANONIKAL DENGAN POTENSIAL LENNARD JONES Diajukan untuk memenuhi syarat kelulusan tahap sarjana di departemen Teknik Fisika Institut Teknologi Bandung Oleh: AREE WITOELAR 13396018 Pembimbing: Hermawan K. Dipojono, Dr., Ir. Nugraha, Dr., Ir. DEPARTEMEN TEKNIK FISIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI BANDUNG 2002 i
112

AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Mar 06, 2019

Download

Documents

ngobao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Laporan Tugas Akhir

PERANCANGAN DAN ANALISA SIMULASI DINAMIKA

MOLEKUL ENSEMBLE MIKROKANONIKAL DAN KANONIKAL

DENGAN POTENSIAL LENNARD JONES

Diajukan untuk memenuhi syarat kelulusan

tahap sarjana di departemen Teknik Fisika

Institut Teknologi Bandung

Oleh:

AREE WITOELAR 13396018

Pembimbing:

Hermawan K. Dipojono, Dr., Ir.

Nugraha, Dr., Ir.

DEPARTEMEN TEKNIK FISIKA

FAKULTAS TEKNOLOGI INDUSTRI

INSTITUT TEKNOLOGI BANDUNG

2002

i

Page 2: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

PERANCANGAN DAN ANALISA SIMULASI DINAMIKA

MOLEKUL ENSEMBLE MIKROKANONIKAL DAN KANONIKAL

DENGAN POTENSIAL LENNARD JONES

Oleh:

AREE WITOELAR 13396018

Disahkan oleh:

Pembimbing I Pembimbing II

Hermawan K. Dipojono, Dr., Ir. Nugraha, Dr., Ir.

DEPARTEMEN TEKNIK FISIKA

FAKULTAS TEKNOLOGI INDUSTRI

INSTITUT TEKNOLOGI BANDUNG

2002

ii

Page 3: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

1.1 ABSTRAK

Perancangan material baru dengan sifat-sifat tertentu sangat berguna untuk

berbagai bidang. Namun perancangan material dengan eksperimen membutuhkan biaya

mahal. Salah satu solusi adalah dengan melakukan eksperimen komputer dengan teknik

dinamika molekul.

Dinamika Molekul adalah teknik simulasi komputer yang mengamati pergerakan

molekul-molekul yang saling berinteraksi. Dari molekul-molekul ini, dapat diperoleh

sifat material yang diamati. Dinamika molekul banyak digunakan dalam berbagai

bidang ilmu untuk mempelajari material.

Berdasarkan itu, maka dirancang suatu simulasi dinamika molekul untuk sistem

terisolasi (ensemble mikrokanonikal) dan sistem dengan pengendalian temperatur

(ensemble kanonikal). Untuk menguji kebenaran simulasi, maka digunakan model

potensial Lennard-Jones dan dilakukan analisa hasil simulasi dengan berbagai

parameter. Perangkat lunak simulasi dikembangkan dengan bahasa pemrograman C++

dengan berorientasi obyek.

Data yang diperoleh menunjukkan bahwa simulasi dinamika molekul untuk

ensemble mikrokanonikal dan kanonikal memenuhi spesifikasi ketelitian yang

dibutuhkan. Simulasi dinamika molekul dapat digunakan atau dikembangkan dalam

penelitian selanjutnya.

iii

Page 4: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

DAFTAR ISI DAFTAR ISI ......................................................................................................... i

DAFTAR GAMBAR........................................................................................... iv

DAFTAR NOTASI ............................................................................................. vi

BAB 1 PENDAHULUAN.....................................................................................1

1.1 Latar Belakang Masalah ........................................................................1

1.2 Perumusan Masalah...............................................................................2

1.3 Tujuan Penelitian...................................................................................2

1.4 Pembatasan Masalah .............................................................................2

1.5 Sistematika Pembahasan .......................................................................3

BAB 2 DASAR TEORI........................................................................................5

2.1 Dinamika Molekul.................................................................................5

2.1.1 Ensemble ...........................................................................................6

2.1.1.1 Ensemble Mikrokanonikal (E, V, N)..........................................6

2.1.1.2 Ensemble Kanonikal (T, V, N)...................................................7

2.1.1.3 Ensemble Isobarik-Isotermal (P, T, N).......................................7

2.1.2 Langkah-Langkah Simulasi Dinamika Molekul................................7

2.1.3 Syarat Batas Periodik ........................................................................8

2.2 Mekanika Klasik..................................................................................10

2.3 Mekanika Statistik ...............................................................................11

2.3.1 Energi Total .....................................................................................11

2.3.2 Temperatur ......................................................................................12

2.3.3 Distribusi Kecepatan........................................................................12

2.3.4 Tekanan ...........................................................................................13

2.3.5 Entalpi..............................................................................................14

2.4 Model Interaksi Antar Molekul ...........................................................14

2.4.1 Potensial Lennard-Jones ..................................................................15

2.4.2 Gaya.................................................................................................16

2.4.3 Pemotongan Potensial .....................................................................17

2.5 Pengendalian Temperatur ....................................................................17

i

Page 5: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

2.5.1 Velocity Scaling ..............................................................................18

2.5.2 Termostat Nose-Hoover ..................................................................18

2.5.3 Termostat Berendsen .......................................................................20

2.6 Pengendalian Tekanan.........................................................................21

2.7 Pengembangan Persamaan Gerak Diskrit............................................21

2.7.1 Algoritma Verlet..............................................................................22

2.7.2 Algoritma Leap-Frog.......................................................................23

2.7.3 Algoritma Verlet dengan Pengendalian Temperatur .......................24

2.7.4 Pendiskritan ζ untuk Termostat Nose-Hoover dan Berendsen ......25

BAB 3 PERANCANGAN SIMULASI DINAMIKA MOLEKUL.....................26

3.1 Garis Besar ..........................................................................................26

3.1.1 Prosedur Simulasi ............................................................................26

3.1.2 Parameter Simulasi ..........................................................................29

3.1.2.1 Kotak Simulasi dan Syarat Batas Periodik...............................29

3.1.2.2 Pemotongan Potensial ..............................................................30

3.1.2.3 Posisi Awal ...............................................................................30

3.1.3 Paralelisasi .......................................................................................31

3.1.3.1 Dinamika molekul paralel dengan dekomposisi atom..............32

3.1.3.2 Dinamika molekul paralel dengan dekomposisi geometrik .....32

3.2 Perangkat Lunak..................................................................................33

3.2.1 Kandidat Kelas ................................................................................33

3.2.2 Atribut Kelas ...................................................................................33

3.2.2.1 Simulation.................................................................................34

3.2.2.2 Molekul.....................................................................................34

3.2.2.3 Parameter ..................................................................................35

3.2.2.4 Property ....................................................................................36

3.2.2.5 Initialize ....................................................................................37

3.2.2.6 Verlet ........................................................................................37

3.2.2.7 LennardJones ............................................................................37

3.2.3 Operasi Kelas...................................................................................37

3.2.3.1 Simulation.................................................................................37

ii

Page 6: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

3.2.3.2 Molecule ...................................................................................38

3.2.3.3 Parameter ..................................................................................38

3.2.3.4 Property ....................................................................................38

3.2.3.5 Initialize ....................................................................................38

3.2.3.6 Verlet ........................................................................................40

3.2.3.7 LennardJones ............................................................................40

3.2.4 Hubungan Antar Kelas ....................................................................41

3.2.5 Interface (Antar Muka)....................................................................42

BAB 4 ANALISA ...............................................................................................43

4.1 Simulasi Sistem Mikrokanonikal ........................................................43

4.1.1 Uji Kesalahan Energi Simulasi........................................................43

4.1.2 Momentum ......................................................................................46

4.1.3 Uji Simulasi Terhadap Temperatur Awal........................................48

4.2 Simulasi Ensemble Kanonikal.............................................................50

4.2.1 Termostat Nose Hoover...................................................................50

4.2.1.1 Pengujian Terhadap Parameter Nose Hoover Q.......................50

4.2.1.2 Uji Hamiltonian ........................................................................52

4.2.1.3 Error Temperatur pada Perubahan Tset .....................................53

4.2.1.4 Penurunan Matematis ...............................................................54

4.2.2 Termostat Berendsen .......................................................................57

4.2.2.1 Pengujian Terhadap Parameter Berendsen Q ...........................57

4.2.2.2 Error Temperatur pada Perubahan Tset .....................................58

4.2.2.3 Penurunan Matematis ...............................................................59

4.3 Tekanan terhadap Temperatur .............................................................61

4.4 Entalpi..................................................................................................63

4.5 Posisi....................................................................................................64

BAB 5 KESIMPULAN DAN SARAN...............................................................66

5.1 Kesimpulan..........................................................................................66

5.2 Saran ....................................................................................................66

DAFTAR PUSTAKA..........................................................................................68

LAMPIRAN A LISTING PROGRAM ...............................................................70

iii

Page 7: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

DAFTAR GAMBAR

Gambar 2.1 Sistem yang diamati dalam simulasi dinamika molekul................................5

Gambar 2.2 Langkah-langkah simulasi dinamika molekul. [2] ........................................8

Gambar 2.3 Pembagian materi menjadi sel primer dan sel citra. ......................................9

Gambar 2.4 Distribusi kecepatan molekul pada berbagai temperatur [2] .......................13

Gambar 2.5 Potensial Lennard-Jones ..............................................................................16

Gambar 2.6 Pemasangan reservoir kalor pada sistem .....................................................19

Gambar 2.7 Pemasangan reservoir kalor dan reservoir tekanan pada sistem..................21

Gambar 3.1 Penghasilan trajektori molekul. [1]..............................................................26

Gambar 3.2 Prosedur simulasi dinamika molekul...........................................................28

Gambar 3.3 Syarat batas periodik untuk molekul yang keluar dari kotak simulasi. .......29

Gambar 3.4 Syarat batas periodik untuk jarak antar molekul .........................................30

Gambar 3.5 Penggunaan linked-list untuk molekul ........................................................35

Gambar 3.6 Penambahan molekul dalam linked-list [11] ...............................................39

Gambar 3.7 Hubungan antar kelas ..................................................................................42

Gambar 3.8 Contoh tampilan Simulasi Dinamika Molekul ............................................42

Gambar 4.1 Grafik perbandingan energi kinetik dan energi potensial............................44

Gambar 4.2 Grafik error energi total pada t∆ = 0,005 ....................................................44

Gambar 4.3 Grafik error energi total pada t∆ = 0,01 ......................................................45

Gambar 4.4 Grafik error energi total pada t∆ = 0,02 ......................................................45

Gambar 4.5 Grafik error energi total pada t∆ = 0,05 ......................................................46

Gambar 4.6 Grafik momentum total pada sumbu x, y dan z...........................................47

Gambar 4.7 Grafik temperatur terhadap waktu ...............................................................48

Gambar 4.8 Error energi total besar pada temperatur tinggi ...........................................49

Gambar 4.9 Lompatan energi potensial...........................................................................49

Gambar 4.10 Grafik temperatur dengan termostat Nose-Hoover Q = 1 .........................50

Gambar 4.11 Grafik temperatur dengan termostat Nose-Hoover Q = 5 .........................51

Gambar 4.12 Grafik temperatur dengan termostat Nose-Hoover Q = 15 .......................51

Gambar 4.13 Grafik Error Hamiltonian terhadap waktu.................................................52

iv

Page 8: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 4.14 Temperatur pada perubahan Tset dengan termostat Nose-Hoover..............53

Gambar 4.15 Perubahan ζ dan ζ& terhadap waktu.........................................................54

Gambar 4.16 Grafik temperatur dengan termostat Berendsen Q = 0,1 ...........................57

Gambar 4.17 Grafik temperatur dengan termostat Berendsen Q = 1 ..............................58

Gambar 4.18 Grafik temperatur dengan termostat Berendsen Q = 10 ............................58

Gambar 4.19 Temperatur pada perubahan Tset dengan termostat Berendsen ..................59

Gambar 4.20 Perbandingan tekanan dan temperatur sistem............................................61

Gambar 4.21 Perbandingan komponen Pm dan Pf dari tekanan sistem ...........................62

Gambar 4.22 Perbandingan entalpi dan tekanan sistem..................................................63

v

Page 9: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

DAFTAR NOTASI

A Luas

ia Percepatan molekul i

E Energi total

F Gaya

H Hamiltonian

H Entalpi

K Energi kinetik

Bk Konstanta Boltzmann

P Tekanan

p Momentum

L Rusuk kotak simulasi

m Massa

N Jumlah molekul

Q Parameter pengendalian temperatur

cR Radius cutoff

iR Posisi molekul i

ijR Jarak antar molekul

T Temperatur

setT Temperatur set

U Energi potensial

V Volume

iv Kecepatan molekul i

t∆ Time step

ε Parameter kekuatan interaksi

σ Parameter panjang interaksi

ζ Variabel pengendali temperatur

vi

Page 10: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

β t∆≡ ..21 ζβ

s Variabel Nose

vii

Page 11: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

BAB 2

PENDAHULUAN

2.1 LATAR BELAKANG MASALAH

Teori-teori baru mengenai material pada skala atomik mempermudah

peneliti untuk memprediksi perilaku material pada skala makroskopik dan

memberikan kemampuan untuk merancang material-material baru dengan sifat-

sifat tertentu yang diinginkan. Namun analisa dan rancangan material dahulu

hanya dapat dilakukan dengan eksperimen berkali-kali yang memerlukan biaya

yang sangat mahal dan waktu yang lama. Selain itu, ada berbagai kondisi yang

sulit atau tidak bisa diimplementasikan, antara lain eksperimen pada suhu yang

sangat tinggi atau tekanan yang sangat besar.

Dengan adanya kemajuan dalam ilmu komputer dan kemampuan

komputasi yang jauh lebih kuat daripada dahulu, terbuka kemungkinan baru yaitu

eksperimen komputer. Eksperimen komputer adalah jembatan antara teori dan

eksperimen yang telah diterima sebagai salah satu metoda penelitian dan

pengembangan material. Suatu eksperimen material secara fisik dapat didahului

oleh eksperimen komputer untuk menentukan kondisi yang dibutuhkan atau

memprediksi hasilnya. Eksperimen komputer dapat berfungsi untuk

mengkomplemen eksperimen [1].

Keuntungan eksperimen komputer adalah harga yang relatif lebih murah

dan mudah meskipun untuk sistem yang kompleks. Selain itu, kemampuan

eksperimen komputer meningkat sejalan dengan kemajuan komputer.

Dinamika Molekul adalah teknik simulasi komputer yang mengamati

pergerakan molekul-molekul yang saling berinteraksi. Teknik ini mensimulasikan

molekul-molekul yang saling menarik dan mendorong dan menabrak satu sama

lain. Simulasi dinamika molekul memberikan informasi statik dan dinamik pada

skala atomik, seperti posisi dan kecepatan. Informasi ini lalu dapat diolah menjadi

informasi pada skala makroskopis seperti tekanan, temperatur dan lain-lain.

1

Page 12: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Berbeda dengan beberapa teknik simulasi lainnya (lihat di [2]), dinamika

molekul bersifat deterministik. Jika keadaan suatu materi diketahui pada waktu

tertentu, maka keadaan materi tersebut pada waktu berbeda dapat ditentukan

dengan sempurna.

2.2 PERUMUSAN MASALAH

Terdapat dua masalah utama saat merancang simulasi dinamika molekul.

Pertama adalah pemodelan sistem yang terdiri dari model interaksi antar molekul

dan interaksi antara sistem dengan lingkungan. Kedua adalah pemilihan algoritma

dan metoda numerik.

Pemodelan sistem akan menentukan kebenaran hasil simulasi dari segi

fisis. Namun hasil yang lebih akurat memerlukan model yang lebih kompleks dan

sulit dipecahkan dan membutuhkan waktu komputasi lebih lama. Pemodelan dan

metoda numerik yang semakin akurat memerlukan komputasi yang lebih mahal.

Karena salah satu hambatan terbesar adalah keterbatasan kemampuan komputasi,

maka suatu kompromi dibutuhkan antara ketelitian simulasi dengan kecepatan

simulasi.

2.3 TUJUAN PENELITIAN

Penelitian ini memiliki tujuan:

1. Memahami prinsip dinamika molekul

2. Mengembangkan simulasi dinamika molekul dengan algoritma yang tepat

dan efisien

3. Melakukan uji coba simulasi dinamika molekul dengan berbagai

parameter dan kondisi yang berbeda

2.4 PEMBATASAN MASALAH

Penelitian dengan simulasi dinamika molekul di laporan ini dibatasi:

1. Materi yang diamati berada dalam fasa padat sepanjang simulasi dengan

formasi kristal kubus.

2

Page 13: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

2. Simulasi dilakukan dibatasi pada energi total sistem konstan dan

temperatur sistem konstan.

3. Model potensial intermolekuler yang digunakan adalah potensial Lennard-

Jones [2].

4. Algoritma persamaan gerak yang digunakan adalah algoritma Verlet [2].

5. Model interaksi sistem dengan lingkungan dibatasi pada metoda Velocity

Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9].

2.5 SISTEMATIKA PEMBAHASAN

Penelitian dilakukan dengan langkah-langkah sebagai berikut:

1. Studi literatur mengenai termodinamika statistik dan simulasi dinamika

molekul.

2. Studi literatur mengenai teknik dan bahasa pemrograman C++.

3. Perancangan perangkat lunak simulasi dinamika molekul.

4. Menjalankan simulasi dengan berbagai parameter.

5. Analisa hasil simulasi.

6. Penulisan laporan.

Laporan tugas akhir ini disusun dalam lima bab.

Bab I Pendahuluan

Bab ini menjelaskan latar belakang, perumusan masalah, tujuan penelitian,

pembatasan masalah penelitian, dan sistematika pembahasan.

Bab II Dasar teori

Bab ini menjelaskan landasan teori yang digunakan dalam penelitian ini,

yaitu dasar dinamika molekul, model interaksi antar molekul, model

interaksi sistem dengan lingkungan dan dasar mekanika statistik yang

digunakan untuk mengolah informasi.

Bab III Perancangan

Bab ini membahas implementasi teori yang dijelaskan pada bab II ke

dalam perangkat lunak. Perancangan perangkat lunak menggunakan

bahasa pemrograman C++ dengan pemrograman berorientasi obyek.

Bab IV Analisa

3

Page 14: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Bab ini memberikan hasil uji coba simulasi dinamika molekul untuk

melihat kesesuaian dengan spesifikasi yang diinginkan dan analisa hasil

yang diperoleh.

Bab V Kesimpulan dan Saran

Bab ini memberikan kesimpulan penelitian dan saran-saran untuk

penelitian selanjutnya.

4

Page 15: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

BAB 3

DASAR TEORI

3.1 DINAMIKA MOLEKUL

Dinamika molekul mengamati molekul-molekul dalam suatu sistem

tertutup, di mana jumlah materi (molekul) dalam sistem tidak berubah. Energi

dapat keluar atau masuk sistem, tergantung dari jenis simulasi yang dilakukan.

Suatu sistem adalah suatu kuantitas materi atau volume yang dipilih untuk

diamati, sedangkan materi dan volume di luar sistem disebut lingkungan [3].

Pemisah antara sistem dan lingkungan disebut batas, yang secara teoritis tidak

memiliki massa ataupun volume tersendiri. Sistem terbagi atas sistem tertutup,

jika materi tidak dapat menembus batas, dan sistem terbuka, jika materi dapat

menembus batas.

SISTEM

MOLEKULBATAS

LINGKUNGAN

Gambar 3.1 Sistem yang diamati dalam simulasi dinamika molekul

Materi pada skala makroskopis terdiri dari molekul-molekul berjumlah

sangat besar (bilangan Avogadro berorde 1023). Karena keterbatasan komputasi,

maka simulasi dinamika molekul hanya dapat melakukan perhitungan untuk

ratusan atau ribuan molekul. Semakin banyak molekul dalam simulasi, semakin

realistis hasil yang diperoleh, tetapi biaya komputasi semakin mahal.

5

Page 16: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Tujuan pertama simulasi dinamika molekul adalah menghasilkan trajektori

molekul-molekul sepanjang suatu jangka waktu terhingga. Pada setiap waktu,

molekul-molekul dalam simulasi memiliki suatu posisi dan momentum tertentu

untuk masing-masing sumbu. Untuk N molekul dalam ruang 3 dimensi, terdapat

ruang posisi berdimensi 3N dan ruang momentum berdimensi 3N, sehingga

terbentuk ruang fasa berdimensi 6N. Suatu konfigurasi posisi dan momentum

molekul-molekul dapat diartikan sebagai koordinat dalam ruang fasa tersebut.

Menurut Boltzmann [2], dengan jangka waktu yang cukup, suatu sistem

akan pernah memiliki semua konfigurasi yang mungkin terjadi. Dengan kata lain,

sistem tersebut akan pernah berada pada setiap koordinat dalam ruang fasa.

Ruang fasa ini merupakan informasi keadaan mikroskopis sistem.

Informasi ini lalu digunakan untuk memperoleh keadaan makroskopis sistem dan

memprediksi ruang fasa pada waktu selanjutnya. Ruang fasa yang berbeda dapat

menghasilkan keadaan makroskopis yang sama. Dengan kata lain, suatu keadaan

makroskopis belum pasti berasal dari satu keadaan mikroskopis yang unik.

3.1.1 Ensemble

Suatu ensemble adalah koleksi dari keadaan sistem yang mungkin yang

memiliki keadaan mikroskopis berbeda tetapi memiliki keadaan makroskopis

sama [4]. Contohnya adalah sistem dengan konfigurasi posisi atau momentum

yang berbeda namun memiliki temperatur yang sama.

Beberapa ensemble yang sering digunakan dalam dinamika molekul

adalah ensemble mikrokanonikal, ensemble kanonikal dan ensemble isobarik-

isotermal.

3.1.1.1 Ensemble Mikrokanonikal (E, V, N)

Ensemble mikrokanonikal adalah ensemble yang memiliki karakteristik

jumlah molekul N dan volume yang tidak berubah serta energi total yang konstan.

Ensemble ini diperoleh dari sistem yang terisolasi sehingga tidak ada interaksi

sistem dengan lingkungan. Dengan demikian energi tidak dapat keluar dan masuk

ke sistem dan energi total memiliki harga konstan. Ensemble ini biasa dinamakan

6

Page 17: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

ensemble (E, V, N). Ensemble mikrokanonikal adalah ensemble yang paling

sederhana untuk simulasi dinamika molekul, namun kurang praktis mensimulasi

keadaan eksperimen dalam laboratorium. Ini disebabkan energi total sistem sulit

dipertahankan konstan dalam eksperimen.

3.1.1.2 Ensemble Kanonikal (T, V, N)

Ensemble kanonikal adalah ensemble dengan keadaan makroskopis suhu

yang tetap. Selain itu jumlah molekul N dan volume tidak berubah, maka

dinamakan ensemble (T, V, N). Dalam laboratorium, temperatur sistem lebih

mudah dikendalikan daripada energi total sistem, maka eksperimen sering

dilakukan pada temperatur konstan. Ensemble kanonikal mendekati keadaan

eksperimen pada temperatur konstan.

3.1.1.3 Ensemble Isobarik-Isotermal (P, T, N)

Dinamika molekul juga dapat dilakukan dengan mempertahankan tekanan

dan temperatur sistem pada harga yang konstan. Tekanan dan temperatur adalah

sifat makroskopis yang mudah dikendalikan dalam eksperimen. Dalam ensemble

isobarik-isotermal, volume sistem dapat berubah atau menjadi suatu variabel.

Jumlah molekul tidak berubah, maka ensemble ini juga dinamakan ensemble (P,

T, N).

3.1.2 Langkah-Langkah Simulasi Dinamika Molekul

7

Page 18: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

PengembanganModel

SimulasiDinamika Molekul

PemodelanInteraksi Antar

Molekul

PemodelanInteraksi Sistem-

Lingkungan

PengembanganPersamaan

Gerak

GenerasiTrajektori Analisa Trajektori

Inisialisasi Ekuilibrasi Produksi

PemodelanDinamika Molekul

Gambar 3.2 Langkah-langkah simulasi dinamika molekul. [2]

Dinamika molekul dilakukan dengan langkah-langkah berikut:

1. Pengembangan Model

Pengembangan model harus dilakukan sebagai persiapan simulasi

dinamika molekul. Model dapat diperoleh dari teori atau eksperimen.

Model interaksi antar molekul dibutuhkan jika molekul berinteraksi satu

sama lain. Model interaksi antara sistem dan lingkungan dibutuhkan jika

sistem tidak terisolasi. Interaksi antara sistem dan lingkungan

dipergunakan untuk pengendalian temperatur sistem dan pengendalian

tekananc sistem.

2. Simulasi Dinamika Molekul

Tahap simulasi dilakukan dengan penghasilan trajektori molekul-molekul

dalam simulasi, lalu analisa yang dapat dilakukan bersamaan atau setelah

simulasi. Generasi trajektori dibagi menjadi 3 tahap, yang akan dibahas

lebih mendalam pada bab 4.1.

3.1.3 Syarat Batas Periodik

Molekul-molekul dekat batas sistem atau permukaan akan menimbulkan

masalah karena memiliki molekul tetangga yang lebih sedikit daripada molekul

yang berada di tengah sistem. Pada materi berskala makroskopis, molekul dekat

8

Page 19: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

permukaan jauh lebih sedikit daripada molekul total sistem sehingga efek

permukaan sangat kecil. Simulasi dinamika molekul sangat terpengaruh oleh efek

permukaan. Ini menyebabkan informasi yang didapatkan adalah sifat materi dekat

permukaan, padahal yang lebih penting diamati adalah sifat materi itu sendiri.

Untuk menghindari ini, maka interaksi molekul dengan batas dihilangkan dengan

menggunakan syarat batas periodik. [5]

Material yang diamati akan dibagi menjadi sel-sel yang identik satu sama

lain. Sel yang diamati disebut sebagai sel primer atau sel komputasi, sedangkan

sel lain yang tidak diamati disebut sebagai sel citra. Di dalam sel citra terdapat

citra-citra dari molekul-molekul dalam sel utama. Sel citra memiliki semua

informasi (misal jumlah, posisi relatif dan kecepatan molekul) sama dengan sel

primer. Sel citra adalah hasil replika dari sel primer secara periodik ke segala arah.

Sel Primer Sel Citra

Sel Citra Sel Citra Sel Citra

Sel Citra

Sel Citra Sel Citra Sel Citra

Gambar 3.3 Pembagian materi menjadi sel primer dan sel citra.

Ada dua implikasi dari syarat batas periodik. Pertama, jika sebuah molekul

meninggalkan sel primer, molekul tersebut akan digantikan oleh citranya yang

masuk ke dalam sel primer secara bersamaan. Posisi molekul yang keluar dari sel

primer tersebut diganti dengan posisi baru yaitu posisi citranya yang masuk ke

dalam sel primer. Kondisi ini akan menyebabkan jumlah atom N yang berada

dalam sel primer akan konstan.

9

Page 20: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Implikasi kedua syarat batas periodik adalah konvensi citra minimum

(minimum-image convention). Molekul-molekul dalam sel utama dapat

berinteraksi baik dengan molekul-molekul lain dalam sel utama maupun dengan

citra-citranya dalam sel-sel citra. Interaksi antara dua molekul hanya

diperhitungkan satu kali, dengan memilih interaksi molekul pertama dengan

molekul kedua yang terdekat, baik dalam sel utama atau citranya dalam sel citra

[6].

3.2 MEKANIKA KLASIK

Dalam dinamika molekul digunakan ketiga Hukum Newton:

1. Suatu partikel akan tetap diam atau bergerak dengan kecepatan tetap

kecuali jika menerima gaya-gaya eksternal dengan resultan tidak sama

dengan nol.

2. Jika partikel dengan massa m menerima gaya Fr

, maka partikel itu akan

mengalami percepatan sebesar

mFar

r= (3.1)

3. Jika partikel i memberikan gaya pada partikel j sebesar ijFr

, maka partikel j

memberikan gaya pada partikel i sebesar ijFr

− .

jiij FFrr

−= (3.2)

Hukum Newton ini memberikan konsekuensi hukum kekekalan

momentum. Dalam suatu sistem terisolasi, momentum masing-masing molekul

dapat berubah-ubah akibat interaksi satu sama lain, namun momentum total tidak

akan berubah. Momentum total sistem dapat diamati untuk memeriksa kebenaran

simulasi ensemble mikrokanonikal.

0)()( == ∑∑i

iii

i vmdtdp

dtd (3.3)

di mana m adalah massa molekul dan p adalah momentum molekul.

10

Page 21: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

3.3 MEKANIKA STATISTIK

Mekanika statistik atau termodinamika statistik dibutuhkan untuk

mengkonversikan informasi pada skala atomik menjadi informasi pada skala

makroskopik [5]. Konfigurasi posisi dan momentum molekul-molekul

menentukan sifat-sifat yang dimiliki materi tersebut. Sifat-sifat itu antara lain

adalah energi, temperatur, tekanan dan entalpi. Menurut mekanika statistik,

kuantitas fisis diperoleh sebagai rata-rata konfigurasi tersebut terhadap waktu.

3.3.1 Energi Total

Energi total suatu sistem tersusun dari energi potensial sistem dan energi

kinetik sistem. Energi potensial adalah jumlah dari semua energi potensial

molekul-molekul dalam sistem.

)( N

ii RUU ∑= (3.4)

RN adalah set posisi titik pusat massa atom atau molekul, RN = {R1, R2, R3, … ,

RN}.

Energi kinetik sistem adalah jumlah dari energi kinetik setiap molekul.

∑=i

ii vKK )( (3.5)

dengan i

iiii m

pvmK2

)(21 2

2 == .

Untuk sistem terisolasi di mana tidak ada energi yang menembus batas,

sistem bersifat konservatif atau energi sistem konstan. Konservasi energi ini

adalah salah satu cara untuk memperiksa kebenaran simulasi ensemble

mikrokanonikal.

11

Page 22: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

3.3.2 Temperatur

Menurut termodinamika statistik, temperatur tidak lain adalah suatu skala

dari energi kinetik molekul-molekul penyusunnya. Untuk tiga dimensi, hubungan

antara energi kinetik dengan temperatur dinyatakan oleh

TNkK B23

= (3.6)

Atau,

BNkKT

32

= (3.7)

di mana K adalah energi kinetik total sistem, N adalah jumlah molekul sistem, kB

adalah konstanta Boltzmann dan T adalah temperatur.

3.3.3 Distribusi Kecepatan

Molekul-molekul dalam materi dapat memiliki kecepatan yang berbeda-

beda, sehingga terbentuk suatu distribusi kecepatan. Secara statistik dapat

diperoleh bahwa molekul-molekul akan paling banyak berada pada suatu

kecepatan tertentu, dan semakin berkurang jumlah molekulnya dengan semakin

jauh kecepatan dari kecepatan tersebut.

Salah satu penyebabnya adalah karena molekul-molekul dalam materi

akan saling bertabrakan dan berinteraksi. Interaksi ini menyebabkan adanya

pemerataan energi kinetik, karena molekul yang bergerak lebih cepat memberikan

tambahan momentum pada molekul yang bergerak lebih lambat dan sebaliknya.

Distribusi kecepatan yang terjadi berbentuk distribusi normal, dan dinamakan

Distribusi Maxwell-Boltzmann [7]. Distribusi Maxwell-Boltzmann bergantung

dari temperatur, dirumuskan:

dvkT

mvC

dvvf

−=

2exp1)(

2

(3.8)

12

Page 23: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 3.4 Distribusi kecepatan molekul pada berbagai temperatur [2]

3.3.4 Tekanan

Tekanan didefinisikan sebagai gaya yang bekerja tegak lurus pada suatu

satuan luas.

AFP x

x = (3.9)

Dengan menggunakan hukum Newton kedua,

dtmvd

AP x

x)(1

= (3.10)

13

Page 24: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Maka tekanan adalah suatu fluks momentum atau momentum yang

menembus suatu satuan luas dalam suatu satuan waktu [2]. Menurut

termodinamika statistik, ini terdiri dari dua bagian yaitu:

1. Pm, adalah fluks momentum akibat molekul yang menembus suatu

permukaan luas selama dt.

KVNPm 3

2= (3.11)

2. Pf, adalah fluks momentum akibat gaya yang bekerja antara dua molekul

yang berada pada sisi yang berbeda dari permukaan luas.

∑∑ ⋅=i j

ijijf RFV

Prr

31 (3.12)

Maka tekanan total menurut termodinamika statistik adalah

∑∑ ⋅+=i j

ijij RFV

KVNP

rr

31

32 (3.13)

3.3.5 Entalpi

Entalpi didefinisikan sebagai gabungan dari energi total sistem dengan

energi aliran [3]:

PVEH += (3.14)

3.4 MODEL INTERAKSI ANTAR MOLEKUL

Model interaksi antar molekul yang diperlukan adalah hukum gaya antar

molekul, yang ekivalen dengan fungsi energi potensial antar molekul. Pemilihan

fungsi energi potensial harus dilakukan sebelum simulasi apa pun dapat

dikerjakan.

Pemilihan model interaksi antar molekul sangat menentukan kebenaran

simulasi dari sudut pandang fisika. Karena berada dalam skala atomik, interaksi

secara prinsip harus diturunkan secara kuantum, di mana berlaku prinsip

ketidakpastian Heisenberg. Namun kita dapat melakukan pendekatan mekanika

klasik di mana atom atau molekul dianggap sebagai suatu titik massa.

14

Page 25: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Model interaksi itu harus memenuhi dua buah kriteria. Pertama, molekul-

molekul harus mampu menahan tekanan pasangan molekul yang saling

berinteraksi. Ini dapat diartikan bahwa ada gaya tolak-menolak antar molekul.

Kedua, molekul-molekul itu harus saling mengikat, atau ada gaya tarik-menarik

antara molekul. Jika molekul-molekul terlalu dekat, gaya resultan adalah gaya

tolak-menolak. Sebaliknya, jika terlalu jauh, maka gaya resultan adalah gaya

tarik-menarik. Pada suatu jarak tertentu, kedua gaya tersebut saling meniadakan

sehingga gaya resultannya sama dengan nol.

Untuk N jumlah atom dalam suatu simulasi maka fungsi energi potensial

adalah U(RN) di mana RN adalah set posisi titik pusat massa atom atau molekul,

RN = {R1, R2, R3, … , RN}. Model energi potensial yang sederhana dan umum

digunakan adalah pair-wise, di mana potensial adalah jumlah dari interaksi antara

dua molekul yang diisolasikan.

∑∑=i j

ijRUU )( ; i < j (3.15)

3.4.1 Potensial Lennard-Jones

Salah satu model energi potensial antara dua molekul yang dikembangkan

adalah Potensial Lennard-Jones. Model ini dianggap paling sederhana, namun

memiliki ketelitian yang baik untuk simulasi. Model Potensial ini dirumuskan:

=

m

ij

n

ijij RR

kRU σσε)( (3.16)

n dan m adalah bilangan bulat positif yang dipilih di mana n > m. )/( mnm

mn

mnnk

−= dan mn >

Dan i dan j adalah indeks dari molekul, jiij RRR −≡ atau jarak antara molekul i

dan j. Sedangkan σ adalah parameter jarak, dan ε adalah parameter yang

menyatakan kekuatan interaksi. Pilihan yang umum untuk m dan n adalah m=6

dan n=12, sehingga persamaan (2.16) menjadi:

15

Page 26: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

=

612

4)(ijij

ij RRRU σσε (3.17)

3.4.2 Gaya

Gaya adalah negatif dari gradien potensial. Untuk potensial Lennard-

Jones, besar gaya adalah:

=−=

713

224)()(ijij

ijij RRRU

drdRF σσ

σε (3.18)

Menurut konvensi, gaya positif adalah gaya tolak-menolak, dan gaya

negatif adalah gaya tarik-menarik. Model ini menggambarkan adanya gaya tolak-

menolak dengan suku 13

rσ yang mendominasi pada jarak dekat dan gaya tarik-

menarik dengan suku 7

rσ yang mendominasi pada jarak jauh.

-3

-2

-1

0

1

2

3

4

0.6 0.8 1

σ

ε

G

Dapat diturunka

)( ijRUF ⋅−∇=

Potensial

1.

am

n un

Gaya

2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8

bar 3.5 Potensial Lennard-Jones

tuk masing-masing sumbu:

16

Page 27: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

=

∂∂

−=

=

∂∂

−=

=

∂∂

−=

612

612

612

224)(

224)(

224)(

ijijij

zijz

ijijij

yijy

ijijij

xijx

RRRrRU

zF

RRRr

RUy

F

RRRr

RUx

F

σσε

σσε

σσε

(3.19)

3.4.3 Pemotongan Potensial

Penghitungan gaya-gaya yang terjadi antar molekul adalah proses yang

paling lama dalam simulasi dinamika molekul. Dalam prakteknya, sering kali

potensial diberikan jarak cutoff Rc dan interaksi antar atom yang berjarak lebih

besar dari Rc diabaikan. Cutoff ini dipasang pada jarak di mana interaksi seperti

potensial dan gaya sudah kecil dan dapat diabaikan.

>

=

cij

cijijijij

RR

RRRRRU

0

4)(

612σσε (3.20)

3.5 PENGENDALIAN TEMPERATUR

Metoda dinamika molekul dengan ensemble mikrokanonikal tidak selalu

adalah cara terbaik untuk mendapatkan rata-rata statistik tertentu. Eksperimen

laboratorium lebih sering dilakukan pada temperatur konstan (ensemble kanonikal

T,V,N) daripada energi konstan (ensemble kanonikal E,V,N), karena temperatur

lebih mudah dikendalikan pada skala makroskopis.

Namun, untuk ensemble kanonikal diperlukan adanya fungsi tambahan

untuk menjaga temperatur. Fungsi tambahan ini merupakan interaksi sistem

dengan lingkungan di sekitarnya.

Beberapa model interaksi sistem-lingkungan yang dikembangkan

melibatkan adanya heat bath atau reservoir kalor yang berinteraksi dengan sistem.

Reservoir adalah sesuatu di luar sistem yang memiliki temperatur tertentu yang

17

Page 28: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

tidak akan berubah meskipun menerima dari atau memberikan kalor pada sistem.

Kalor berpindah dari temperatur tinggi ke temperatur rendah, maka jika reservoir

lebih panas daripada sistem, kalor berpindah dari reservoir menuju sistem, dan

sebaliknya.

3.5.1 Velocity Scaling

Pengendalian temperatur dapat dilakukan dengan menyesuaikan harga

kecepatan masing-masing molekul terus menerus atau pada periode tertentu.

iset

i vT

Tv =′ (3.21)

Dengan metoda ini dapat dipastikan bahwa temperatur sistem sesaat akan

tepat berada pada temperatur set point. Namun teknik ini tidak menjelaskan

bagaimana interaksi sistem-lingkungan bekerja. Kelemahan lain teknik ini adalah

sifat-sifat materi tidak dapat diturunkan dengan benar, karena pengambilan

informasi harus dilakukan pada saat sistem bebas dan tanpa paksaan.

Velocity scaling berguna dalam kecepatan awal atau jika simulasi suatu

saat perlu menaikkan atau menurunkan temperatur. Cara lain adalah dengan

secara periodik, namun tidak setiap saat, melakukan velocity scaling sehingga

sistem lambat laun akan berkisar pada temperatur yang diinginkan. Teknik ini

disebut quench method [1].

3.5.2 Termostat Nose-Hoover

Shuichi Nose [8] melakukan pengendalian temperatur dengan

memasangkan reservoir kalor pada sistem. Reservoir kalor dapat memberi atau

menerima energi kalor dari sistem. Perpindahan energi dari lingkungan ke sistem

bersifat non-lokal, atau terjadi di semua lokasi dalam sistem secara bersamaan.

Molekul-molekul dalam sistem lalu akan dipercepat jika menerima kalor atau

diperlambat jika memberi kalor sehingga distribusi kecepatannya mendekati

bentuk distribusi kecepatan Maxwell-Boltzmann pada temperatur yang

diinginkan.

18

Page 29: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

SISTEM SISTEM

RESERVOIR KALOR

ENERGI

ISOLASI

Gambar 3.6 Pemasangan reservoir kalor pada sistem

Dengan termostat Nose, molekul-molekul dalam sistem menerima gaya

tambahan yang merupakan fungsi dari kecepatannya. Gaya ini dapat

diumpamakan sebagai gaya gesek. Nose membuat suatu variabel baru s yang

mengatur pertukaran kalor sistem dengan lingkungan. Hoover menyederhanakan

ini dengan mendefinisikan variabel dinamis ζ :

ss&

≡ζ (3.22)

Pengendalian temperatur ini lalu dinamakan termostat Nose-Hoover

dengan persamaan gerak baru dan penentuan harga ζ sebagai berikut:

)()(})({1)( trtRRU

Mtr i

ii &&& ζ−

∂∂

−= (3.23)

( ) setBi

ii TNktrmtQ 3)()( 2 −= ∑ &&ζ (3.24)

Dengan definisi temperatur dalam persamaan (2.7), persamaan dapat dituliskan

( )sBB TkTkQ −= 3ζ& (3.25)

di mana Q adalah parameter termostat yang menunjukkan kekuatan pengendalian

temperatur dan Ts adalah temperatur set-point.

19

Page 30: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Termostat Nose-Hoover mengendalikan temperatur sistem dengan

mengatur (perubahan ζ& ζ terhadap waktu). Jika temperatur sistem melebihi Tset,

akan menjadi positif dan ζ& ζ bertambah. Karena ζ berkisar di sekitar nol, maka

setelah beberapa waktu ζ akan menjadi positif. Jika ζ positif maka umpan balik

negatif bekerja dengan memperlambat molekul-molekul, sehingga temperatur

sistem turun. Jika temperatur sistem lebih rendah daripada Tset, akan menjadi

negatif dan

ζ&

ζ berkurang. Setelah beberapa waktu, ζ menjadi bernilai negatif dan

molekul-molekul dipercepat, sehingga temperatur sistem naik.

Termostat Nose-Hoover mengumpamakan perpindahan kalor memiliki

‘inersia termal’, dan seluruh sistem dengan reservoir kalor mengkonservasi nilai

Hamiltonian H. Hamiltonian tidak memiliki nilai fisis namun dapat dipergunakan

untuk memerika kebenaran simulasi. Hamiltonian ini dirumuskan

H { }( ) sTgksQRURsM Bi

ii ln21)(

21 22 +++= ∑ && (3.26)

3.5.3 Termostat Berendsen

Metoda pengendalian temperatur lain yang memiliki banyak kesamaan

dengan termostat Nose-Hoover dirumuskan oleh Berendsen et al. [9]. Termostat

Berendsen menggunakan persamaan gerak yang sama dengan termostat Nose-

Hoover,

)()(})({1)( trtRRU

Mtr i

ii &&& ζ−

∂∂

−=

Perbedaannya adalah termostat Berendsen bukan mengatur harga

melainkan harga

ζ&

ζ dengan persamaan:

)(2

1sBB

B

TkTkTQk

−=ζ (3.27)

di mana Q di sini adalah parameter termostat yang berupa konstanta waktu.

Metoda ini mengarahkan temperatur sistem lebih langsung daripada

metoda Nose-Hoover, sehingga kurva temperatur akan lebih tajam.

20

Page 31: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

3.6 PENGENDALIAN TEKANAN

Tekanan merupakan fungsi dari temperatur dan volume sistem.

Pengendalian tekanan dilakukan untuk simulasi ensemble isobarik-isotermal (P,

V, N) dengan mengatur perubahan volume sistem sehingga tekanan tidak berubah.

Sistem dijadikan piston yang dapat bergerak sehingga volume membesar atau

mengecil. Sebuah reservoir tekanan lalu ditambahkan di luar sistem yang

menggerakkan piston jika terdapat perbedaan tekanan.

SISTEM SISTEM

RESERVOIR KALOR

ENERGI

ISOLASI

RESERVOIRTEKANAN

VOLUME

Gambar 3.7 Pemasangan reservoir kalor dan reservoir tekanan pada sistem

3.7 PENGEMBANGAN PERSAMAAN GERAK DISKRIT

Dinamika molekul mengamati posisi dan derivasinya, antara lain

kecepatan dan percepatan. Maka persamaan gerak dapat dituliskan:

)()(

)()(

tadt

tdv

tvdt

tdr

ii

ii

=

= (3.28)

Persamaan gerak ini harus dijadikan diskrit agar dapat dipecahkan secara

numerik. Pendiskritan ini dilakukan dengan metoda beda hingga (finite-

difference). Waktu yang diskrit memiliki langkah waktu (time step) yang

merupakan selisih antara dua waktu berturutan.

t∆

Metoda beda hingga dilakukan dengan melakukan ekspansi Taylor. Suatu

metoda beda hingga yang mengaproksimasi solusi sebuah persamaan diferensial,

21

Page 32: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

akan selalu menimbulkan truncation error (error pemotongan). Truncation error

dihitung dari suku bukan nol pertama yang dihilangkan dari suatu ekspansi.

Metoda yang dipilih harus memberikan error kecil namun tidak terlalu

kompleks sehingga memerlukan waktu komputasi yang lama. Beberapa metoda

integrasi persamaan gerak antara lain adalah algoritma Verlet, algoritma Leap-

Frog dan algoritma Velocity Form [9].

3.7.1 Algoritma Verlet

Algoritma Verlet sering digunakan karena algoritmanya yang sederhana

namun memiliki ketelitian yang baik. Caranya adalah dengan menggunakan

ekspansi Taylor untuk t dan tt∆+ t∆− sebagai berikut:

))(()()(

61)(

)(21)(

)()( 433

32

2

2

tOtdt

trdt

dttrd

tdt

tdrtrttr iii

ii ∆+∆+∆+∆+=∆+ (3.29)

))(()()(

61)(

)(21)(

)()( 433

32

2

2

tOtdt

trdt

dttrd

tdt

tdrtrttr iii

ii ∆+∆−∆+∆−=∆− (3.30)

Penjumlahan persamaan (2.28) dan (2.29) menghasilkan:

))(()()(

)(2)()( 422

2

tOtdt

trdtrttrttr i

iii ∆+∆+=∆−+∆+

))(()()(

)()(2)( 422

2

tOtdt

trdttrtrttr i

iii ∆+∆+∆−+=∆+

atau

))(()).(()()(2)( 42 tOttattrtrttr iiii ∆+∆+∆−+=∆+ (3.31)

))(().()(

)()(2)( 42 tOtm

tFttrtrttr

i

iiii ∆+∆+∆−+=∆+ (3.32)

Maka diperoleh posisi molekul pada t+dt dengan truncation error berorde .)( 4t∆

Sedangkan kecepatan pada t diperoleh dengan mengurangkan persamaan

(2.29) dengan persamaan (2.30), menjadi

))(()(

2)()( 3tOtdt

tdrttrttr i

ii ∆+∆=∆−−∆+ (3.33)

yang dapat dituliskan

ttOttrttr

dttdrtv iii

i ∆∆+∆−−∆+

==2

))(()()()()(3

(3.34)

22

Page 33: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Kelemahan dari algoritma Verlet adalah penanganan kecepatan yang

kurang praktis, karena harus memprediksi posisi berikut sebelum dapat

menghitung kecepatan sesaat. Selain itu, posisi sama sekali tidak ditentukan oleh

kecepatan pada saat t, maka algoritma ini tidak mudah mempergunakan velocity

scaling untuk simulasi pada T konstan.

3.7.2 Algoritma Leap-Frog

Algoritma Leap-Frog adalah metoda di mana kecepatan melompati

percepatan, dan posisi melompati kecepatan. Menggunakan ekspansi Taylor

sampai orde kedua untuk tt ∆+ 21 dan tt ∆− 2

1 :

))(()()(

21)(

)()( 3221

2

2

21

21 tOt

dttrd

tdt

tdrtrttr ii

ii ∆+∆+∆+=∆+ (3.35)

))(()()(

21)(

)()( 3221

2

2

21

21 tOt

dttrd

tdt

tdrtrttr ii

ii ∆+∆+∆−=∆− (3.36)

Dengan cara yang sama dengan penghitungan kecepatan Verlet yaitu

pengurangan (2.35) dengan (2.36) diperoleh

))(()()(

2)()( 321

21

21 tOt

dttdr

ttrttr iii ∆+∆=∆−−∆+

))(()(

)()( 321

21 tOt

dttdr

ttrttr iii ∆+∆+∆−=∆+ (3.37)

Dengan mentranslasi seluruh persamaan sebesar t∆21 , diperoleh:

))(()(

)()( 321

tOtdt

ttdrtrttr i

ii ∆+∆∆+

+=∆+

atau

))(()()()( 321 tOtttvtrttr iii ∆+∆∆++=∆+ (3.38)

Dengan cara yang sama diperoleh persamaan untuk kecepatan:

))(()()(

2)()( 321

21

21 tOt

dttdv

ttvttv iii ∆+∆=∆−−∆+

))(()(

)()( 321

21 tOt

dttdv

ttvttv iii ∆+∆+∆−=∆+ (3.39)

23

Page 34: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

atau

))((.)(

)()( 321

21 tOt

mtF

ttvttvi

iii ∆+∆+∆−=∆+ (3.40)

3.7.3 Algoritma Verlet dengan Pengendalian Temperatur

Algoritma Verlet dapat digunakan dengan pengendalian temperatur

dengan modifikasi dengan menggabungkan persamaan (2.23), persamaan (2.32)

dan persamaan (2.34):

)()(})({1)( trtRRU

Mtr i

ii &&& ζ−

∂∂

−=

))(()).(()()(2)( 42 tOttattrtrttr iiii ∆+∆+∆−+=∆+

ttOttrttr

dttdr

tv iiii ∆

∆+∆−−∆+==

2))(()()()(

)(3

maka persamaan gerak menjadi

))(().()()(})({1)()(2)( 42 tOttrtRRU

Mttrtrttr i

iiii ∆+∆

∂∂

−∆−+=∆+ &ζ (3.41)

))(()(

.2

))(()()()(})({1)()(2)(

42

3

tOt

ttOttrttr

tRRU

Mttrtrttr ii

iiii

∆+∆

∆+∆−−∆+−

∂∂

−∆−+=∆+ ζ

))((

).(})({1).(2

)()()()()(2)(

3

22

tO

tRRU

Mt

tttrttr

tttrtrttri

iiiii

∆+

∆∂

∂−∆

∆∆−−∆+

−∆−+=∆+ ζ

Didefinisikan

ttt ∆≡ )(21)( ζβ (3.42)

sehingga persamaan (2.41) menjadi

))(().(})({1))()(()()()(2)(

32 tOtRRU

M

ttrttrtttrtrttr

i

iiiii

∆+∆∂

∂−

∆−−∆+−∆−+=∆+ β (3.43)

24

Page 35: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

))(().(})({1)1)(()(2)1)(( 32 tOtRRU

Mttrtrttr

iiii ∆+∆

∂∂

−−∆−+=+∆+ ββ

∆+∆

∂∂

−−∆−++

=∆+ ))(().(})({1)1)(()(21

1)( 32 tOtRRU

Mttrtrttr

iiii β

β(3.44)

3.7.4 Pendiskritan ζ untuk Termostat Nose-Hoover dan Berendsen

Dengan melakukan ekspansi Taylor untuk ζ pada t t∆+ dan t , maka

diperoleh persamaan-persamaan:

t∆−

))(()).((21).()()( 32 tOttttttt ∆+∆+∆+=∆+ ζζζζ &&& (3.45)

))(()).((21).()()( 32 tOttttttt ∆+∆−∆−=∆− ζζζζ &&& (3.46)

Persamaan (2.41) dikurangi persamaan (2.42) menjadi

))(().(2)()( 3tOtttttt ∆+∆=∆−−∆+ ζζζ & (3.47)

Dengan definisi ς& :

( ) sBi

ii TNktrmtQ 3)()( 2 −= ∑ &&ζ

maka diperoleh

( ) ))((3)(2)()( 32 tOTNktrmQ

ttttt sBi

ii ∆+

∆+∆−=∆+ ∑ &ζζ (3.48)

25

Page 36: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

BAB 4

PERANCANGAN SIMULASI DINAMIKA

MOLEKUL

4.1 GARIS BESAR

4.1.1 Prosedur Simulasi

Simulasi dinamika molekul terdiri atas tiga tahap: inisialisasi, ekuilibrium,

dan produksi. Dalam penelitian ini bagian ekuilibrium tidak dilakukan secara

spesifik.

Gambar 4.1 Penghasilan trajektori molekul. [1]

26

Page 37: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

1. Tahap inisialisasi terdiri dari penentuan sistem unit, algoritma dan

parameter simulasi dan inisialisasi molekul-molekul. Inisialisasi molekul

melibatkan penentuan posisi awal dan kecepatan awal molekul-molekul.

2. Tahap ekuilibrium diperlukan agar keadaan awal simulasi tidak dominan

mempengaruhi analisa dari simulasi. Dalam penelitian ini bagian

ekuilibrium sudah termasuk ke dalam tahap produksi.

3. Tahap produksi adalah tahap utama dalam simulasi dinamika molekul, saat

memperoleh informasi dalam simulasi. Algoritma finite-difference

digunakan berulang kali sambil mengumpulkan trajektori ruang fasa.

Tahap produksi harus dilakukan dengan jangka waktu yang cukup untuk

mengurangi ketidakpastian statistik sampai memenuhi spesifikasi.

27

Page 38: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

InisialisasiParameter dan

Molekul

Maju Satu Iterasi

Hitung InteraksiAntar Molekul

Kalkulasi Posisidan Kecepatan

Peroleh SifatMateri

Tidak

Iterasi Selesai?

Ya

Ulangi Simulasi

Tidak

Ya

PengendalianTemperatur

Gambar 4.2 Prosedur simulasi dinamika molekul.

28

Page 39: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

4.1.2 Parameter Simulasi

4.1.2.1 Kotak Simulasi dan Syarat Batas Periodik

Simulasi dinamika dilakukan dalam kubus dengan dimensi L x L x L,

karena bentuk ini paling memudahkan syarat batas periodik. Maka syarat batas

periodik diimplementasikan sebagai berikut:

1. Jika sebuah molekul melebihi batas kotak simulasi, maka Lxx ii α+=

dengan memilih α = …,-1,0,1,… sehingga molekul masih berada dalam

kotak simulasi.

Gambar 4.3 Syarat bata

keluar dari ko

2. Jarak suatu molekul ke molekul k

dalam sel utama atau dengan citra

sumbu adalah LRR ijxijx α+= de

mendapatkan Rijx terkecil.

s p

ta

ed

ny

ng

eri

k si

ua d

a. M

an

odik u

mulas

itentu

aka

mem

ntuk molekul yang

i.

kan sebagai jarak terdekat di

jarak dua molekul pada suatu

ilih α = …,-1,0,1,… untuk

29

Page 40: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Sel Citra Sel Citra

Sel Citra Sel Primer

Gambar 4.4 Syarat batas periodik untuk jarak antar molekul

4.1.2.2 Pemotongan Potensial

Penghitungan interaksi antar molekul memakan waktu paling lama dalam

simulasi dinamika molekul. Agar komputasi tidak mahal, maka interaksi molekul

hanya dihitung dengan tetangga terdekat saja. Teknik ini banyak digunakan dalam

dinamika molekul materi dalam fasa padat. Pemotongan potensial dilakukan

dengan memasang jarak cutoff di antara tetangga pertama dan tetangga kedua

molekul.

Jarak cutoff dipasang di antara jarak molekul ke tetangga pertama dan

tetangga keduanya. Jarak cutoff dipasang di antara tetangga pertama yang berjarak

L dan tetangga kedua yang berjarak 2L , yaitu sebesar 1,2L.

4.1.2.3 Posisi Awal

Penempatan molekul-molekul secara acak dapat menyebabkan adanya

molekul-molekul yang saling menumpuk atau berjarak terlalu dekat sehingga

terjadi gaya tolak-menolak yang terlalu besar. Untuk mencegah hal ini, maka

30

Page 41: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

molekul-molekul disusun dalam bentuk kubus sebagai posisi awal. Struktur ini

sesuai dengan struktur materi dalam fasa padat.

Panjang rusuk kubus adalah jarak di mana molekul-molekul berada pada

potensial terendah. Untuk model potensial Lennard-Jones, maka jarak tersebut

kalau hanya memperhitungkan tetangga terdekatnya adalah

0)()(224)( 612 =

−=

∂∂

−=ijijij

xijx RRR

rRUx

F σσε (4.1)

612 )()(20ijij RRσσ

−=

612 )()(2ijij RRσσ

=

2)( 6 =σ

ijR

6 2σ=ijR (4.2)

4.1.3 Paralelisasi

Simulasi dinamika molekul memerlukan kemampuan komputasi yang

besar untuk jumlah molekul banyak dan algoritma yang kompleks. Salah satu cara

meningkatkan kemampuan komputasi adalah dengan menggunakan paralelisasi

komputer [10].

Paralelisasi simulasi dinamika molekul dengan P prosesor terdiri dari

mengambil sistem N partikel yang berinteraksi dan mendekomposisi menjadi P

sistem yang lebih kecil yang dapat diproses secara paralel. Dengan P proses

bekerja simultan maka kecepatan komputasi secara ideal akan berlipat P kali dari

kecepatan satu prosesor. Dalam praktek, komunikasi antar komputer dan beban

yang berbeda pada masing-masing prosesor akan menambah waktu simulasi.

Dua teknik utama adalah dekomposisi molekular dan dekomposisi

geometrik.

31

Page 42: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

4.1.3.1 Dinamika molekul paralel dengan dekomposisi atom

Teknik ini adalah cara paling mudah untuk membagi-bagi suatu sistem.

Untuk P prosesor, masing-masing prosesor menangani N/P molekul. Alokasi

molekul pada satu prosesor tidak berdasar pada kondisi tertentu, seperti lokasi

yang dekat. Molekul itu akan ditangani oleh prosesor tersebut sepanjang simulasi.

Untuk mengetahui suatu molekul berinteraksi dengan molekul lain yang

mana, setiap prosesor memiliki daftar tetangga dari molekul yang ditanganinya.

Daftar tetangga adalah daftar molekul-molekul lain yang berada dalam bola

dengan radius Rc dan berpusat pada molekul. Daftar tetangga perlu disusun

kembali setiap periode tertentu.

Teknik ini mempunyai kelemahan yaitu komunikasi antar prosesor untuk

mempertukarkan informasi molekulnya dapat memakan waktu banyak.

4.1.3.2 Dinamika molekul paralel dengan dekomposisi geometrik

Pada teknik ini, ruang dipartisi menjadi banyak kotak yang disusun

sehingga seluruh ruang kotak simulasi terpenuhi. Kotak partisi lalu didistribusikan

pada banyak prosesor sehingga kotak partisi yang berdekatan secara fisik akan

berada pada prosesor yang berdekatan. Pertukaran data jarak jauh akan

diminimisasikan.

Kelemahan teknik ini adalah jika molekul-molekul berpindah kotak partisi

sehingga beban yang ditangani prosesor menjadi tidak seimbang. Prosesor dengan

beban lebih kecil akan selesai lebih dahulu dan harus menunggu prosesor dengan

beban terbesar selesai. Alternatif lain adalah dengan menyesuaikan distribusi

ruang agar distribusi beban prosesor merata, namun ini menambah kompleksitas

simulasi.

Dekomposisi geometrik baik untuk digunakan dalam simulasi molekul

dengan perpindahan kecil sehingga molekul-molekul kurang lebih berada tetap

dalam kotak partisinya.

32

Page 43: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

4.2 PERANGKAT LUNAK

Simulasi dinamika molekul dirancang dengan bahasa pemrograman C++

berorientasi objek dengan Borland C++ Builder Version 4.0. Simulasi dibentuk

dengan berbagai kelas yang masing-masing memiliki tugas tertentu dalam

simulasi. Penggunaan kelas dalam program ini mempermudah modifikasi program

andaikata perlu mempergunakan model atau algoritma lain.

4.2.1 Kandidat Kelas

Nama Kelas Type Tanggung Jawab

Simulation Process Mengatur langkah-

langkah simulasi

dinamika molekul

Molekul Actor -

Parameter Process Menginisialisasi

parameter simulasi

Property Process Memperoleh sifat materi

dari simulasi

Initialize Process Mengatur jalan inisialisasi

simulasi dinamika

molekul

Verlet Process Menjalankan tahap

produksi dengan

algoritma Verlet

LennardJones Process Menghitung interaksi

antar molekul dengan

potensial LennardJones

4.2.2 Atribut Kelas

33

Page 44: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

4.2.2.1 Simulation

Atribut Data Type Keterangan

t integer Nomor time step simulasi

4.2.2.2 Molekul

Atribut Data Type Keterangan

index integer Nomor indeks molekul

dalam kotak simulasi

m double Massa molekul

R array[3] of double Posisi molekul pada

sumbu x, y dan z pada t

Rnext array[3] of double Posisi molekul pada

sumbu x, y dan z pada

tt ∆+

Rprev array[3] of double Posisi molekul pada

sumbu x, y dan z pada

tt ∆−

v array[3] of double Kecepatan molekul pada

sumbu x, y dan z pada t

F array[3] of double Gaya total yang diterima

molekul pada sumbu x, y

dan z

next Molecule* Pointer ke molekul

berikut dalam kotak

simulasi

Atribut kelas molekul bersifat public dan akan dimanipulasi oleh kelas-

kelas lain. Algoritma Verlet membutuhkan posisi pada waktu tt ∆− , t, dan t t∆+ ,

kecepatan dan percepatan, namun percepatan diggantikan dengan gaya yang

dialami molekul agar lebih fleksibel untuk simulasi ensemble mikrokanonikal dan

ensemble kanonikal.

34

Page 45: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Molekul-molekul dalam simulasi disusun dalam bentuk linked list (daftar

terkait) di mana suatu molekul memiliki pointer (penunjuk) untuk molekul

berikutnya. Pointer ini diberi nama next.

Gambar 4.5 Penggunaan linked-list untuk molekul

4.2.2.3 Parameter

Atribut Data Type Keterangan

N integer Jumlah molekul dalam

simulasi

Naxis integer Jumlah molekul

sepanjang rusuk kubus

SIG double Parameter panjang dalam

interaksi

EPS double Parameter kekuatan

interaksi

L0 double Panjang rusuk satu kubus

molekul

L double Panjang kubus simulasi

RC double Jarak cutoff

DT double Besar satu time step

T0 double Temperatur awal sistem

Kb double Konstanta Boltzmann

TMAX integer Nomor iterasi maksimum

35

Page 46: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Q double Parameter kekuatan untuk

pengendalian temperatur

Tset double Temperatur sistem yang

diinginkan

4.2.2.4 Property

Atribut Data Type Keterangan

U double Energi potensial sistem

K double Energi kinetik sistem

E double Energi total sistem

E0 double Energi total awal sistem

error double )0(

)0()(E

EtEerror −=

momentum array[3] of double Momentum total sistem

pada masing-masing

sumbu

zeta double ζ

zetadot double ζ&

beta double t∆≡ ζβ

21

s double s

sdot double s&

T double Temperatur sistem

P double Tekanan

Pf double Komponen tekanan yang

bergantung pada gaya

Pm double Komponen tekanan yang

bergantung pada

momentum

H double Entalpi

Ham double Hamiltonian

36

Page 47: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Ham0 double Hamiltonian awal sistem

HamError double )0(

)0()(H

HtHHamError −=

4.2.2.5 Initialize

Kelas Initialize tidak memiliki atribut.

4.2.2.6 Verlet

Atribut Data Type Keterangan

zetaprev double )( tt ∆−ζ

zetanext double )( tt ∆+ζ

sprev double )( tts ∆−

snext double )( tts ∆+

4.2.2.7 LennardJones

Atribut Data Type Keterangan

Raxis array[3] of double Jarak dua molekul pada

sumbu x, y dan z

Rij double Jarak dua molekul

force array[3] of double Gaya yang terjadi antar

molekul i dan j atau ijF

4.2.3 Operasi Kelas

4.2.3.1 Simulation

Operasi Return Type Keterangan

Simulation() - Konstruktor kelas

Run() void Menjalankan simulasi

37

Page 48: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

dinamika molekul

Reset() void Menghapus hasil simulasi

NextStep() void Memindahkan variabel-

variabel t menjadi t t∆+

4.2.3.2 Molecule

Operasi Return Type Keterangan

Molecule() - Konstruktor kelas

4.2.3.3 Parameter

Operasi Return Type Keterangan

Parameter() - Konstruktor kelas

Set() void Memasang harga

parameter sesuai dengan

harga input

4.2.3.4 Property

Operasi Return Type Keterangan

Property() - Konstruktor kelas

Run() void Menghitung sifat-sifat

materi dari simulasi

Kinetic() void Menghitung energi

kinetik sistem

Energy() void Menghitung energi total

sistem dan besar error

4.2.3.5 Initialize

Operasi Return Type Keterangan

Initialize() - Konstruktor kelas

38

Page 49: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Run() void Menjalankan inisialisasi

simulasi dinamika

molekul

CreateMolecule() void Menambahkan molekul-

molekul baru ke dalam

simulasi

InitialPosition() void Memasang molekul-

molekul pada posisi awal

InitialVelocity() void Memberikan kecepatan

awal pada molekul-

molekul

head NULL

head NULL

Molekul N

head Molekul N

Molekul N-1

NULL

head ...

Molekul 1

Molekul N NULL

Gambar 4.6 Penambahan molekul dalam linked-list [11]

39

Page 50: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

4.2.3.6 Verlet

Operasi Return Type Keterangan

Verlet() - Konstruktor kelas

Run() void Mengatur jalan algoritma

Verlet pada setiap iterasi

RunOne() void Mengatur jalan algoritma

Verlet untuk iterasi

pertama

PredictPosition() void Memprediksi posisi

molekul-molekul pada

iterasi berikut

PredictPositionOne() void Memprediksi posisi

molekul-molekul setelah

iterasi pertama

Velocity() void Menghitung kecepatan

molekul-molekul

PredictZeta() void Memprediksi )( tt ∆+ζ

PredictS() void Memprediksi )( tts ∆+

VelocityScale() void Melakukan velocity

scaling jika diperlukan

4.2.3.7 LennardJones

Operasi Return Type Keterangan

LennardJones() - Konstruktor kelas

Run() void Mengatur interaksi antar

molekul

ClearValues() void Mengosongkan harga

potenial dan gaya yang

dialami molekul

Distance(p1: Molecule*, void Menghitung jarak dua

40

Page 51: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

p2: Molecule*) molekul pada

Force(p1: Molecule*, p2:

Molecule*)

void Menghitung gaya yang

terjadi antar dua molekul

Potential(p1: Molecule*,

p2: Molecule*)

void Menghitung potensial

yang terjadi antar dua

molekul

PressureByForce(p1:

Molecule*, p2:

Molecule*)

void Menghitung komponen

tekanan yang berupa

fungsi gaya antar dua

molekul

4.2.4 Hubungan Antar Kelas

+Simulation()+Run() : void+Reset() : void-NextStep() : void

+t : intSimulation

+LennardJones()+Run() : void-ClearValues() : void-Distance(in p1 : Molecule*, in p2 : Molecule*) : void-Force(in p1 : Molecule*, in p2 : Molecule*) : void-Potential(in p1 : Molecule*, in p2 : Molecule*) : void-PressureByForce(in p1 : Molecule*, in p2 : Molecule*) : void

-RAxis[3] : double-Rij : double-force : double

LennardJones

+Molecule()

+index : int+m : double+R[3] : double+Rnext[3] : double+Rprev[3] : double+v[3] : double+F[3] : double+next : Molecule*

Molecule

+Parameter()+Set() : void

+N : int+NAxis : int+SIG : double+EPS : double+L0 : double+L : double+RC : double+DT : double+T0 : double+Kb : double+TMAX : int+Q : double+Tset : double

Parameter

+Property()+Run() : void-Kinetic() : void-Energy() : void

+U : double+K : double+E : double+E0 : double+error : double+momentum[3] : double+zeta : double+zetadot : double+beta : double+s : double+sdot : double+T : double+P : double+Pf : double+Pm : double+H : double+Ham : double+Ham0 : double+HamError : double

Property

+Verlet()+Run() : void+RunOne() : void-NextStep() : void-PredictPosition() : void-PredictPositionOne() : void-Velocity() : void-PredictZeta() : void-PredictS() : void-VelocityScale() : void

-zetaprev : double-zetanext : double-snext : double-sprev : double

Verlet

+Initialize()+Run() : void-CreateMolecules() : void-InitialPosition() : void-InitialVelocity() : void

Initialize

*

*

* *

*

*

*

* *

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

41

Page 52: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 4.7 Hubungan antar kelas

4.2.5 Interface (Antar Muka)

Tampilan perangkat lunak simulasi dinamika molekul dalam penelitian ini:

Gambar 4.8 Contoh tampilan Simulasi Dinamika Molekul

42

Page 53: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

BAB 5

ANALISA

5.1 SIMULASI SISTEM MIKROKANONIKAL

5.1.1 Uji Kesalahan Energi Simulasi

Energi diamati untuk melihat kebenaran simulasi, karena dalam sistem

terisolasi atau ensemble mikrokanonikal, energi tidak berubah sepanjang simulasi.

Namun karena simulasi dinamika molekul menggunakan persamaan diskrit atau

metode beda hingga, maka tidak terhindarkan timbulnya error.

Perubahan energi potensial akan diimbangi oleh perubahan energi kinetik

sehingga energi total tidak berubah.

43

Page 54: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.1 Grafik perbandingan energi kinetik dan energi potensial

Kesalahan energi total dihitung dengan

)0()0()(

EEtEerror −

= (5.1)

Hasil perhitungan error dalam beberapa simulasi 512 molekul dengan

berbagai besar time step : t∆

1. = 0,005, 100000 time step t∆

Gambar 5.2 Grafik error energi total pada t∆ = 0,005

2. = 0,01, 50000 time step t∆

44

Page 55: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.3 Grafik error energi total pada t∆ = 0,01

3. = 0,02, 25000 time step t∆

Gambar 5.4 Grafik error energi total pada t∆ = 0,02

4. = 0,05, 10000 time step t∆

45

Page 56: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.5 Grafik error energi total pada t∆ = 0,05

Time step (∆ ) t Orde Error

0,005 10-9

0,01 10-8

0,02 10-8

0,05 10-7

Tabel 5.1 Orde error terhadap besar time step t∆

Dapat terlihat bahwa simulasi memiliki error lebih besar dengan yang

lebih besar. Namun simulasi dengan

t∆

t∆ lebih kecil memerlukan lebih banyak

time step untuk menjalankan simulasi dengan waktu yang sama. Dari analisa ini

kita pilih t∆ =0,02 untuk simulasi lain dalam penelitian agar dapat

mensimulasikan waktu lebih lama namun error masih berorde 10-8.

5.1.2 Momentum

Dalam simulasi ensemble mikrokanonikal, perubahan kecepatan dan

momentum molekul hanya terjadi akibat gaya antar molekul. Karena Fij = -Fji,

maka perubahan momentum molekul i akan diimbangi molekul j, sehingga

momentum total tidak berubah.

46

Page 57: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.6 Grafik momentum total pada sumbu x, y dan z

Terlihat momentum total pada ketiga sumbu hanya mengalami perubahan

kecil (berorde 10-10) dan dapat diabaikan. Simulasi berjalan dengan baik dari

sudut pandang momentum.

47

Page 58: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

5.1.3 Uji Simulasi Terhadap Temperatur Awal

Uji simulasi ini mengamati perkembangan temperatur sejalan waktu dan

kemudian menghitung temperatur rata-rata. Hasil simulasi 512 molekul dengan

temperatur awal 0,05 selama 2500 langkah:

Gambar 5.7 Grafik temperatur terhadap waktu

T = 0,02563

Terlihat bahwa temperatur rata-rata berbeda dengan temperatur awal.

Dalam simulasi ensemble mikrokanonikal, temperatur rata-rata tidak dapat

diprediksi atau diatur sebelum simulasi berakhir. Perolehan data untuk suatu

temperatur yang ditentukan sebelum simulasi menjadi kurang efisien, karena

sistem bisa jadi jarang berada pada temperatur yang diinginkan. Ini adalah

kerugian simulasi ensemble mikrokanonikal.

Dari hasil simulasi di atas dapat dilihat bahwa temperatur rata-rata (T =

0,02563) lebih rendah daripada temperatur awal (T(0) = 0,05) dan temperatur

sepanjang simulasi tidak pernah melebihi temperatur awal. Ini disebabkan karena

pada awal simulasi, molekul-molekul sudah berada pada posisi berenergi

potensial terendah. Perubahan posisi apa pun, baik saling mendekati atau saling

menjauhi, selama semua molekul masih berada dalam kotak simulasi, akan

48

Page 59: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

menyebabkan potensial yang lebih tinggi daripada potensial awal. Karena sistem

bersifat konservatif, semua perubahan energi potensial akan selalu diimbangi

dengan negtatif perubahan energi kinetik. Maka potensial yang lebih tinggi

menjadikan energi kinetik lebih rendah, dan temperatur lebih rendah.

Simulasi dengan temperatur awal terlalu tinggi dapat menyebabkan terjadi

error energi total yang besar, seperti pada simulasi berikut:

Gambar 5.8 Error energi total besar pada temperatur tinggi

Lompatan error energi total pada 25≈t dan 30≈t terjadi akibat lompatan

energi potensial yang tidak diimbangi energi kinetik:

Gambar 5.9 Lompatan energi potensial

49

Page 60: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Kasus ini terjadi karena pada temperatur terlalu tinggi, terdapat molekul

yang bergerak terlalu cepat, sehingga dapat menembus dari luar ke dalam radius

cut-off. Dua molekul yang sebelumnya tidak berinteraksi lalu memiliki potensial

baru berharga negatif dan gaya baru yang berupa gaya tarik.

5.2 SIMULASI ENSEMBLE KANONIKAL

5.2.1 Termostat Nose Hoover

5.2.1.1 Pengujian Terhadap Parameter Nose Hoover Q

Simulasi dengan pengendalian temperatur Nose Hoover dilakukan dengan

parameter Tset sebagai temperatur yang diinginkan dan T sebagai temperatur

sistem dan selisihnya sebagai error temperatur. Simulasi dilakukan untuk 512

molekul dan Tset = 0,02 selama 25000 langkah waktu, dengan Q divariasikan.

1. Q = 1

Gambar 5.10 Grafik temperatur dengan termostat Nose-Hoover Q = 1

2. Q = 5

50

Page 61: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.11 Grafik temperatur dengan termostat Nose-Hoover Q = 5

3. Q = 15

Gambar 5.12 Grafik temperatur dengan termostat Nose-Hoover Q = 15

Q T

1 0,02004

5 0,02001

15 0,01981

Tabel 5.2 Temperatur rata-rata terhadap parameter termostat Nose Hoover Q

Termostat Nose-Hoover menjadikan sistem berosilasi di sekitar harga Tset

= 0,02. Temperatur rata-rata T hampir sama dengan Tset, maka pengendalian

temperatur berhasil dilakukan dengan baik.

51

Page 62: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Koreksi error temperatur bergantung pada parameter termostat Nose-

Hoover Q. Hasil simulasi menunjukkan bahwa semakin besar Q, semakin besar

perioda temperatur berosilasi, dengan kata lain koreksi lebih lambat. Ini sesuai

dengan rumus:

( ) sBi

ii TNktrmtQ 3)()( 2 −= ∑ &&ζ

Jika Q besar, menjadi kecil, sehingga perubahan ζ& ζ terhadap waktu

menjadi lebih kecil. Maka perubahan temperatur oleh termostat Nose Hoover juga

lebih lambat.

5.2.1.2 Uji Hamiltonian

Termostat Nose-Hoover tidak mempertahankan energi total sistem pada

harga yang konstan melainkan harga total Hamiltonian sistem dan reservoir kalor.

Maka simulasi ensemble kanonikal dengan termostat Nose-Hoover dapat diuji

kebenarannya dengan melihat Hamiltonian sepanjang simulasi. Error Hamiltonian

dihitung dengan

)0()0()(

HHtHerror −

= (5.2)

Simulasi dijalankan dengan 512 molekul, temperatur awal 0,02 dan

termostat Nose Hoover dengan Tset 0,02.

Gambar 5.13 Grafik Error Hamiltonian terhadap waktu

Error Hamiltonian sepanjang simulasi memenuhi spesifikasi (berorde 10-4).

52

Page 63: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

5.2.1.3 Error Temperatur pada Perubahan Tset

Pada bagian ini simulasi mulai tanpa pengendalian temperatur, lalu pada

t=100 diberikan pengendalian temperatur dengan termostat Nose-Hoover dengan

Tset = 0,02.

Gambar 5.14 Temperatur pada perubahan Tset dengan termostat Nose-Hoover

Temperatur sistem sebelum pengendalian temperatur berkisar di sekitar

0,01. Setelah sistem diberikan pengendalian temperatur, temperatur sistem

berosilasi di sekitar Tset = 0,02 dengan amplitudo kurang lebih (0,02-0,01)=0,01.

Meskipun sistem dijalankan beberapa waktu, amplitudo kurang lebih tidak

berubah, atau tidak teredam.

Ini dapat terjadi karena termostat Nose-Hoover dianggap memiliki ‘massa’

dan ‘momentum’, sehingga perpindahan kalor ke dalam atau ke luar sistem

memiliki ‘inersia thermal’ [9]. Momentum termal menyimpan energi kinetik yang

ditambah atau dikurangi dari sistem ke lingkungan, sehingga bertindak seperti

kapasitor.

Termostat Nose-Hoover mengontrol dan bukan ζ& ζ itu sendiri. Maka

dapat terjadi kasus di mana error temperatur dan adalah nol namun ζ& ζ bukanlah

nol, menyebabkan adanya koreksi lebih meskipun pada saat itu temperatur sistem

tidak perlu dikoreksi.

53

Page 64: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

-0.2

-0.1

0

0.1

0.2

ζζ&

Gambar 5.15 Perubahan ζ dan terhadap waktu ζ&

Jika Q besar, kecil dan ζ& ζ lambat berubah. Maka perubahan temperatur

oleh termostat Nose Hoover juga lebih lambat. Perubahan temperatur yang lambat

menyebabkan perubahan juga lambat. Maka perubahan ζ& ζ , dan T tersebut

menjadi lebih lambat, namun hubungan satu sama lain tidak berubah.

ζ&

5.2.1.4 Penurunan Matematis

Sistem dianggap berosilasi di sekitar temperatur rata-rata setT=T dengan

error temperatur T~ . Kecepatan rata-rata molekul dalam sistem dinamakan v dan

error kecepatan v~ .

Andai tidak ada interaksi antar molekul, atau potensial dan gaya antar molekul

adalah nol, maka percepatan molekul hanya diatur oleh termostat.

va ζ−= (5.3)

ζ& berbanding lurus dengan T~ , atau:

Tk ~1=ζ& (5.4)

dengan Q1

1 ∝k .

ζ dapat dihitung dari integrasi : ζ&

54

Page 65: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

∫= dtζζ & (5.5)

∫= dtTk )~( 1ζ

∫= dtTk ~1ζ

sehingga percepatan menjadi

vdtTka ).~( 1 ∫−=

vdtTkdtdv ).~( 1 ∫−= (5.6)

Hubungan antara T~ dan v~ diperoleh sebagai berikut: 2

2 .vkT = (5.7)

vkdvdT

22=

vdvdTT ~.~ =

vvkT ~2~2= (5.8)

Persamaan (4.6) disubstitusi ke dalam persamaan (4.4)

vdtvvkkdtdv .)~2( 21 ∫−=

)~.()~)~(2(~

21 vvdtvvvkkdtvd

dtvd

++−=+ ∫

Karena temperatur rata-rata tidak berubah terhadap waktu, maka 0=dtvd .

0)~.()~)~(2(~

21 =+++ ∫ vvdtvvvkkdtvd

0)~.()~)~((2~

21 =+++ ∫ vvdtvvvkkdtvd

Jika dianggap osilasi temperatur sangat kecil, vv <<~ maka vvv ≈+ ~ dan

persamaan dapat dilinierkan:

0).()~(2~

21 =+ ∫ vdtvvkkdtvd

0~2~

221 =+ ∫ dtvvkk

dtvd

55

Page 66: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Setelah diturunkan terhadap t, diperoleh persamaan diferensial linier orde 2:

0~2~

2212

2

=+ vvkkdt

vd (5.9)

Persamaan ini memiliki solusi umum tAev λ−=~ (5.10)

dengan iba +=λ

sehingga persamaan menjadi

02 221

2 =+ −− tt AevkkAe λλλ

maka

02 221

2 =+ vkkλ (5.11)

karena , dan 1k 2k 2v selalu positif, adalah negatif dan 2λ λ adalah suatu

bilangan imajiner.

2212 vkki=λ , dan 0=a 212 kkvb = (5.12)

Persamaan ini adalah persamaan harmonis sederhana

212 kkv=ω (5.13)

)cos(.~ φωω +== tAAev ti (5.14)

v~ berosilasi tanpa redaman. Untuk temperatur,

vvkT ~2~2=

)cos(2~2 tvAkT ω= (5.15)

Error temperatur akan berosilasi tanpa redaman dengan perioda yang

bergantung dari harga v , dan . Karena 1k 2kQ

k 11 ∝ , maka dapat disimpulkan,

untuk error temperatur kecil, semakin besar parameter Nose-Hoover Q, semakin

lambat osilasi temperatur.

Dalam penelitian ini, error temperatur tidak kecil sehingga tidak berlaku

vv <<~ dan persamaan menjadi tidak linier, namun masih menunjukkan sifat-sifat

yang hampir sama.

56

Page 67: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Selain itu dapat disimpulkan bahwa semakin tinggi temperatur rata-rata

juga osilasi semakin lambat.

5.2.2 Termostat Berendsen

5.2.2.1 Pengujian Terhadap Parameter Berendsen Q

Simulasi dengan pengendalian temperatur Berendsen dilakukan dengan

512 molekul dan Tset = 0,02 selama 25000 langkah waktu, dengan parameter Q

divariasikan.

1. Q = 0,1

Gambar 5.16 Grafik temperatur dengan termostat Berendsen Q = 0,1

2. Q = 1

57

Page 68: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.17 Grafik temperatur dengan termostat Berendsen Q = 1

3. Q = 10

Gambar 5.18 Grafik temperatur dengan termostat Berendsen Q = 10

Q T

0,1 0,02000

1 0,01996

10 0,01967

Tabel 5.3 Temperatur rata-rata terhadap parameter Berendsen Q

Temperatur sistem berosilasi di sekitar Tset, berarti pengendalian

temperatur berhasil dijalankan dengan baik. Dari beberapa hasil simulasi dengan

Q bervariasi, terlihat bahwa error temperatur lebih besar pada Q besar. Ini terjadi

karena Q lebih besar berarti pengendalian temperatur lebih lemah, dan

menyebabkan sistem dapat berada pada temperatur yang lebih jauh dari Tset.

5.2.2.2 Error Temperatur pada Perubahan Tset

Simulasi dimulai tanpa pengendalian temperatur, lalu pada t=100

diberikan pengendalian Berendsen dengan Tset = 0,02.

58

Page 69: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Gambar 5.19 Temperatur pada perubahan Tset dengan termostat Berendsen

Temperatur sistem sebelum pengendalian temperatur berkisar di sekitar

0,01. Setelah sistem diberikan pengendalian temperatur, temperatur sistem

berosilasi di sekitar 0,02 dengan amplitudo error temperatur yang semakin kecil

terhadap waktu. Setelah beberapa saat, temperatur sistem berkisar pada Tset

dengan error kecil. Maka termostat Berendsen lebih baik beradaptasi pada

perubahan Tset daripada termostat Nose-Hoover.

5.2.2.3 Penurunan Matematis

Seperti pada termostat Nose-Hoover, sistem dianggap berosilasi di sekitar

temperatur rata-rata setT=T dengan error temperatur T~ . Kecepatan rata-rata

molekul dalam sistem dinamakan v dan error kecepatan v~ .

Andai tidak ada interaksi antar molekul, atau potensial dan gaya antar molekul

adalah nol, maka percepatan molekul hanya diatur oleh termostat.

va ζ−=

namun dalam termostat Berendsen digunakan:

TTk~

1=ζ (5.16)

di mana Q

k 11 ∝ .

Sehingga percepatan menjadi

59

Page 70: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

vTTka .~

1−= (5.17)

vTTk

dtdv .

~1−= (5.18)

Hubungan antara T~ dan v~ sudah diperoleh: 2

2 .vkT =

vvkT ~2~2= (5.19)

Persamaan (4.19) disubstitusi ke persamaan (4.18)

vvk

vvkkdtdv

22

21 .

~2−= (5.20)

vkdtvd

dtvd ~2

~1−=+ (5.21)

Temperatur rata-rata tidak berubah terhadap waktu, maka 0=dtvd . Diperoleh

persamaan diferensial linier berorde satu:

0~2~

1 =+ vkdtvd (5.22)

Persamaan ini memiliki solusi umum tAev λ−=~ (5.23)

dengan iba +=λ

sehingga persamaan menjadi

02 1 =+− −− tt AekAe λλλ

maka

12k=λ (5.24)

karena adalah bilangan real positif, 1k λ adalah suatu bilangan real positif. tkAev 12~ −=

Error temperatur dihitung

vvkT ~2~2=

tkveAkT 1222~ −= (5.25)

60

Page 71: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Error temperatur berubah terhadap waktu menuju nol secara eksponensial.

Semakin besar , semakin cepat error temperatur menuju nol. Karena 1kQ

k 11 ∝ ,

dapat disimpulkan bahwa semakin besar Q, koreksi error temperatur berlangsung

lebih lambat.

5.3 TEKANAN

Simulasi ini dilakukan dengan 512 molekul, σ =10,0 ε =0,625 =0,02

sebanyak 2500 iterasi.

t∆

Gambar 5.20 Perbandingan tekanan dan temperatur sistem

Tekanan yang dihitung dari simulasi berfluktuasi hampir sama dengan

temperatur sistem. Menurut teorema virial,

61

Page 72: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

∑∑ ⋅+=i j

ijij RFV

KVNP

rr

31

32

Komponen pertama (Pm) dari tekanan berkaitan dengan temperatur dan komponen

kedua (Pf) berkaitan dengan gaya antar molekul. Perbandingan antara kedua

komponen tersebut dalam simulasi:

Gambar 5.21 Perbandingan komponen Pm dan Pf dari tekanan sistem

Komponen Pm yang berorde 10-4 jauh lebih besar daripada Pf yang berorde 10-10.

Ini disebabkan karena molekul-molekul berada pada posisi potensial terendah

sehingga gaya antar molekul sangat kecil. Maka komponen kedua memberikan

kontribusi yang jauh lebih kecil daripada komponen pertama.

62

Page 73: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Kondisi seperti ini juga dialami oleh gas ideal, di mana interaksi antar

molekul sangat kecil hingga diasumsikan nol, sehingga persamaan tekanan dari

teorema virial

∑∑ ⋅+=i j

ijij RFV

KVNP

rr

31

32

menjadi persamaan gas ideal

PV = NkT (5.26)

5.4 ENTALPI

Entalpi sistem diperoleh dari simulasi ensemble mikrokanonikal (sistem

terisolasi) 512 molekul:

Gambar 5.22 Perbandingan entalpi dan tekanan sistem

63

Page 74: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Perubahan entalpi sistem mengikuti perubahan tekanan sistem, karena

seperti dirumuskan

H = E+PV

Pada simulasi ensemble mikrokanonikal, volume sistem pada simulasi ini adalah

konstan dan energi total sistem juga dipertahankan konstan, maka faktor yang

mempengaruhi perubahan entalpi sistem hanya adalah tekanan sistem.

5.5 POSISI

Pengamatan posisi molekul-molekul dalam simulasi 64 molekul pada

beberapa temperatur tertentu menunjukkan:

1. T = 0,1

Pada temperatur ini, molekul-molekul bergetar di sekitar posisi awal yang

berbentuk kubik. Melihat formasi molekul yang teratur ini, materi dapat

dianggap berada dalam fasa padat. Tidak ada molekul yang memasuki atau

keluar dari radius cutoff molekul lain, sehingga kesalahan simulasi kecil.

2. T = 1

64

Page 75: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Temperatur yang lebih tinggi menyebabkan molekul-molekul mulai lepas

dari posisi awal. Terdapat molekul yang memasuki atau keluar dari radius

cutoff molekul lain.

3. T = 10

Pada temperatur ini, molekul-molekul sudah lepas sama sekali dari posisi

awal yang teratur. Ini dapat diartikan bahwa molekul sudah tidak berada

pada fasa padat lagi melainkan fasa cair/gas. Keadaan ini harus

dihindarkan, karena beberapa algoritma seperti algoritma Verlet tidak

dapat dipergunakan untuk materi cair atau gas.

65

Page 76: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

BAB 6

KESIMPULAN DAN SARAN

6.1 KESIMPULAN

1. Simulasi ensemble mikrokanonikal mendapat hasil yang baik, dengan

error semakin kecil jika time step kecil. Time step terbesar dengan error

yang masih memenuhi spesifikasi adalah 0,02 dan dapat digunakan untuk

simulasi selanjutnya.

2. Dalam simulasi ensemble mikrokanonikal, temperatur sistem sesaat dan

rata-rata tidak pernah melebihi temperatur awal jika simulasi dimulai

dengan posisi kubik berpotensi terendah. Temperatur akhir dan rata-rata

sistem tidak dapat diprediksi dari temperatur awal.

3. Temperatur sistem yang terlalu tinggi akan menyebabkan adanya molekul

yang masuk ke dalam jangkauan molekul lain, dan akan menimbulkan

error yang besar.

4. Termostat Nose Hoover dan termostat Berendsen berhasil mengendalikan

temperatur sistem sehingga berkisar pada temperatur yang diinginkan.

5. Parameter Q pada termostat Nose Hoover mempengaruhi frekuensi osilasi

error temperatur. Pada termostat Berendsen, Q mempengaruhi besar error

temperatur.

6. Termostat Nose Hoover tidak melakukan peredaman error temperatur

sistem dari temperatur set. Termostat Berendsen lebih baik dalam

mengendalikan temperatur.

7. Tekanan hampir seluruhnya bergantung pada temperatur, seperti gas ideal.

Entalpi hampir seluruhnya bergantung pada tekanan.

6.2 SARAN

1. Pengujian simulasi dari penelitian ini dengan parameter-parameter spesifik

untuk material tertentu, misal Argon.

66

Page 77: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

2. Pengujian simulasi dengan jumlah molekul lebih banyak dengan bantuan

pembuatan daftar tetangga (neighbour list) dan komputasi paralel.

3. Modifikasi simulasi agar dapat melakukan pengendalian tekanan.

4. Modifikasi simulasi agar dapat melakukan simulasi dinamika molekul

pada fasa cair dan gas.

5. Visualisasi tiga dimensi.

67

Page 78: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

DAFTAR PUSTAKA

1. Ceperly, D., Simulation Techniques,

http://archive.ncsa.uiuc.edu/Apps/CMP/lectures/cms01/lectures.ppt

2. Haile, J.M., Molecular Dynamics Simulation: Elementary Methods,

John Wiley & Sons, Inc., 1992

3. Cengel, Yunus A., dan Boles, Michael A., Thermodynamics: An

Engineering Approach, McGraw-Hill Inc, 1994

4. Stote, R., Dejaegere, A., Kuznetsov, D., dan Falquet, L., CHARMM

Molecular Dynamics Simulations,

http://www.ch.embnet.org/MD_tutorial/

5. Ercolessi, Furio, A Molecular Dynamics Primer,

http://www.sissa.it/furio/md

6. Refson, Keith, Moldy User’s Manual,

http://www.earth.ox.ac.uk/~keith/moldy-manual/moldy.html

7. Huang, Kerson, Statistical Mechanics, John Wiley & Sons, Inc., 1987

8. Nose, Shuichi, A Molecular Dynamics Method for Simulations in the

Canonical Ensemble, Molecular Physics, 1984, Vol 52, No. 2, 255-268

9. Allen, M.P. and Tildesley, D.J., Computer Simulation of Liquids,

Oxford University Press, 1987

10. Cornwell, C.F dan Wille, L.T., Parallel Molecular Dynamics

Simulations for Short-Ranged Many-Body Potentials, Computer

Physics Communications 128 (2000), 477-491

11. Kruse, R. L., Leung, B. P. dan Tondo, C. L., Data Structures and

Program Design in C, Prentice-Hall Inc., 1998

12. Fahmi, Mahuddin, Perancangan Perangkat Lunak Simulasi Dinamika

Molekular dengan Model Potensial Lennard Jones, Tugas Akhir, 1999

13. Aitken, P. dan Jones, B., Teach Yourself C in 21 Days, SAMS

Publishing, 1994

14. Lee, R.C. dan Tepfenhart, W. M., UML and C++, Prentice-Hall Inc.,

1997

68

Page 79: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

15. Nose, Shuichi, A Unified Formulation of the Constant Temperature

Molecular Dynamics Methods, Journal of Chemical Physics 81, 1984

16. Reif, F., Fundamentals of Statistical and Thermal Physics, McGraw-

Hill Publishing Company, 1965

17. Reisdorph, Kent, Teach Yourself Borland C++ Builder in 21 Days,

SAMS Publishing, 1997

18. Steinbach, Peter J., Introduction to Macromolecular Simulation,

http://cmm.cit.nih.gov/intro_simulation

19. Walpole, Ronald E. dan Myers, Raymod H., Probability and Statistics

for Engineers and Scientists, Macmillan Publishing Company, 1993

20. Woodcock, L.V., Isothermal Molecular Dynamics Calculations for

Liquid Salts, Chemical Physics Letters, Agustus 1971, Vol 10, No. 3

21. Stadler, J., Mikulla, R. dan Trebin, H.-R., IMD: A Software Package for

Molecular Dynamics Studies on Parallel Computers, International

Journal of Modern Physics C, Vol. 8, No. 5 (1997)

69

Page 80: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

LAMPIRAN A

LISTING PROGRAM

MainForm.h //--------------------------------------------------------------------------- #ifndef MainFormH #define MainFormH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Chart.hpp> #include <Series.hpp> #include <TeEngine.hpp> #include <TeeProcs.hpp> #include <ComCtrls.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TPanel *Panel1; TPanel *Panel2; TLabel *Label5; TEdit *Time; TButton *ButtonRun; TEdit *U; TEdit *K; TEdit *E; TEdit *error; TLabel *Label12; TLabel *Label13; TLabel *Label14; TLabel *Label15; TEdit *beta; TLabel *Label16; TEdit *Tavg; TLabel *Label18; TEdit *T; TLabel *Label20;

70

Page 81: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

TEdit *Ham; TLabel *Label21; TEdit *P; TLabel *Label22; TLabel *Label23; TEdit *Pavg; TGroupBox *GroupBox1; TRadioButton *RadioButton64; TRadioButton *RadioButton125; TRadioButton *RadioButton216; TRadioButton *RadioButton343; TRadioButton *RadioButton512; TGroupBox *GroupBox2; TLabel *Label2; TEdit *SIG; TLabel *Label3; TEdit *EPS; TLabel *Label4; TEdit *L0; TLabel *Label6; TEdit *DT; TLabel *Label7; TEdit *TMAX; TLabel *Label8; TEdit *RC; TLabel *Label19; TEdit *Kb; TLabel *Label9; TEdit *T0; TGroupBox *GroupBox3; TLabel *Label10; TEdit *Q; TLabel *Label11; TEdit *TSet; TLabel *Label17; TEdit *TSetStart; TRadioButton *RadioButtonNone; TRadioButton *RadioButtonNoseHoover; TRadioButton *RadioButtonBerendsen; TButton *ButtonReset; TButton *ButtonStop; TCheckBox *DisableLennardJones; TPanel *PanelEnergy; TChart *ChartPotential; TFastLineSeries *Series1; TChart *ChartKinetic; TFastLineSeries *Series2; TButton *Button1; TButton *Button2;

71

Page 82: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

TButton *Button3; TButton *Button4; TButton *Button5; TPanel *PanelTemperature; TChart *ChartTemperature; TChart *ChartError; TFastLineSeries *Series3; TFastLineSeries *Series9; TChart *ChartZeta; TChart *ChartZetaDot; TFastLineSeries *Series10; TFastLineSeries *Series11; TChart *Chart1; TFastLineSeries *Series4; TButton *Button6; TPanel *PanelPressure; TChart *ChartPressure; TFastLineSeries *Series17; TChart *ChartEnthalpy; TFastLineSeries *Series18; TPanel *PanelPosition; TChart *ChartPosition; TPointSeries *Series21; TRadioButton *RadioButtonXY; TRadioButton *RadioButtonYZ; TRadioButton *RadioButtonZX; TPanel *PanelHamiltonian; TChart *ChartHamiltonian; TChart *ChartS; TFastLineSeries *Series13; TChart *ChartSDot; TPanel *PanelMomentum; TChart *ChartMomentumX; TChart *ChartMomentumY; TChart *ChartMomentumZ; TFastLineSeries *Series5; TFastLineSeries *Series6; TFastLineSeries *Series7; TChart *ChartPf; TChart *ChartPm; TFastLineSeries *Series19; TFastLineSeries *Series20; TChart *ChartHamiltonianError; TLabel *Label1; TEdit *HamError; TFastLineSeries *Series14; TFastLineSeries *Series15; TFastLineSeries *Series16;

72

Page 83: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

void __fastcall ButtonRunClick(TObject *Sender); void __fastcall ButtonStopClick(TObject *Sender); void __fastcall ButtonResetClick(TObject *Sender); void __fastcall TSetChange(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall Button6Click(TObject *Sender); void __fastcall Button5Click(TObject *Sender); void __fastcall Button4Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); void Output(); bool stop; }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif

73

Page 84: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

MainForm.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "MainForm.h" #include "Simulation.h" #include "Property.h" #include "Parameter.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; Simulation *Sim = new Simulation; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { stop = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonRunClick(TObject *Sender) { ButtonRun->Enabled = false; ButtonStop->Enabled = true; Sim->Run(); ButtonStop->Enabled = false; ButtonReset->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonStopClick(TObject *Sender) { stop = 1; } //---------------------------------------------------------------------------

74

Page 85: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

void __fastcall TForm1::ButtonResetClick(TObject *Sender) { ButtonReset->Enabled = false; Sim->Reset(); stop = 0; Time->Text = 0; U->Text = 0; K->Text = 0; E->Text = 0; error->Text = 0; beta->Text = 0; T->Text = 0; Ham->Text = 0; HamError->Text = 0; P->Text = 0; Tavg->Text = 0; Refresh(); while (Series1->Count() != 0) { Series1->Delete(0); Series2->Delete(0); Series3->Delete(0); Series4->Delete(0); Series5->Delete(0); Series6->Delete(0); Series7->Delete(0); //Series8->Delete(0); Series9->Delete(0); Series10->Delete(0); Series11->Delete(0); //Series12->Delete(0); Series13->Delete(0); Series14->Delete(0); Series15->Delete(0); Series16->Delete(0); Series17->Delete(0); Series18->Delete(0); Series19->Delete(0); Series20->Delete(0); } while (Series21->Count() != 0) { Series21->Delete(0);

75

Page 86: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

} ButtonRun->Enabled = true; } //--------------------------------------------------------------------------- void TForm1::Output() { Time->Text = Sim->t; U->Text = Prop->U; K->Text = Prop->K; E->Text = Prop->E; error->Text = Prop->error; beta->Text = Prop->beta; T->Text = Prop->T; Ham->Text = Prop->Ham; HamError->Text = Prop->HamError; P->Text = Prop->P; double a = StrToFloat(Tavg->Text); Tavg->Text = (Sim->t*a + Prop->T)/(Sim->t+1); double b = StrToFloat(Pavg->Text); Pavg->Text = (Sim->t*b + Prop->P)/(Sim->t+1); if (Sim->t%(Par->TMAX/500) == 0) { Series1->AddXY(Sim->t*Par->DT, Prop->U/Par->N, ' ' , clBlue ); Series2->AddXY(Sim->t*Par->DT, Prop->K/Par->N * pow(10,3), ' ' , clBlue ); Series3->AddXY(Sim->t*Par->DT, Prop->E/Par->N, ' ' , clBlue ); Series4->AddXY(Sim->t*Par->DT, Prop->error * pow(10,9), ' ' , clBlue ); Series5->AddXY(Sim->t*Par->DT, Prop->momentum[0] * pow(10,9), ' ' , clBlue ); Series6->AddXY(Sim->t*Par->DT, Prop->momentum[1] * pow(10,9), ' ' , clBlue ); Series7->AddXY(Sim->t*Par->DT, Prop->momentum[2] * pow(10,9), ' ' , clBlue ); Series9->AddXY(Sim->t*Par->DT, Prop->T, ' ' , clBlue ); Series10->AddXY(Sim->t*Par->DT, Prop->zeta, ' ' , clBlue ); Series11->AddXY(Sim->t*Par->DT, Prop->zetadot, ' ' , clBlue );

76

Page 87: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Series13->AddXY(Sim->t*Par->DT, Prop->Ham, ' ' , clBlue ); Series14->AddXY(Sim->t*Par->DT, Prop->HamError * pow(10,3), ' ' , clBlue ); Series15->AddXY(Sim->t*Par->DT, Prop->s, ' ' , clBlue ); Series16->AddXY(Sim->t*Par->DT, Prop->sdot, ' ' , clBlue ); Series17->AddXY(Sim->t*Par->DT, Prop->P * pow(10,6), ' ' , clBlue ); Series18->AddXY(Sim->t*Par->DT, Prop->H, ' ' , clBlue ); Series19->AddXY(Sim->t*Par->DT, Prop->Pf * pow(10,6), ' ' , clBlue ); Series20->AddXY(Sim->t*Par->DT, Prop->Pm * pow(10,6), ' ' , clBlue ); } if (ChartPosition->Visible == true) { while (Series21->Count() != 0) Series21->Delete(0); for (Molecule *p = head; p != NULL; p = p->next) { if (RadioButtonXY->Checked == true) Series21->AddXY(p->R[0], p->R[1], ' ' , clBlue); else if (RadioButtonYZ->Checked == true) Series21->AddXY(p->R[1], p->R[2], ' ' , clBlue); else if (RadioButtonZX->Checked == true) Series21->AddXY(p->R[2], p->R[0], ' ' , clBlue); } } Refresh(); } //--------------------------------------------------------------------------- //---------------------------------------------------------------------------

77

Page 88: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

void __fastcall TForm1::TSetChange(TObject *Sender) { if (TSet->Text != "") Par->Tset = StrToFloat(TSet->Text); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { PanelEnergy->Visible = true; PanelMomentum->Visible = false; PanelTemperature->Visible = false; PanelHamiltonian->Visible = false; PanelPressure->Visible = false; PanelPosition->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { PanelEnergy->Visible = false; PanelMomentum->Visible = true; PanelTemperature->Visible = false; PanelHamiltonian->Visible = false; PanelPressure->Visible = false; PanelPosition->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { PanelEnergy->Visible = false; PanelMomentum->Visible = false; PanelTemperature->Visible = true; PanelHamiltonian->Visible = false; PanelPressure->Visible = false; PanelPosition->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { PanelEnergy->Visible = false; PanelMomentum->Visible = false;

78

Page 89: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

PanelTemperature->Visible = false; PanelHamiltonian->Visible = true; PanelPressure->Visible = false; PanelPosition->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { PanelEnergy->Visible = false; PanelMomentum->Visible = false; PanelTemperature->Visible = false; PanelHamiltonian->Visible = false; PanelPressure->Visible = true; PanelPosition->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { PanelEnergy->Visible = false; PanelMomentum->Visible = false; PanelTemperature->Visible = false; PanelHamiltonian->Visible = false; PanelPressure->Visible = false; PanelPosition->Visible = true; } //---------------------------------------------------------------------------

79

Page 90: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Molecule.h //--------------------------------------------------------------------------- #ifndef MoleculeH #define MoleculeH class Molecule { public: Molecule(); int index; //molecule index number double m; //mass of molecule double R[3]; //position at t double Rnext[3]; //position at t+dt double Rprev[3]; //position at t-dt double v[3]; //velocity at t double F[3]; //force received at t Molecule* next; //pointer to next molecule }; //--------------------------------------------------------------------------- #endif

80

Page 91: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Molecule.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Molecule.h" //--------------------------------------------------------------------------- #pragma package(smart_init) Molecule::Molecule() { m = 1; next = NULL; }

81

Page 92: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Simulation.h //--------------------------------------------------------------------------- #ifndef SimulationH #define SimulationH #include <math.h> #include "MainForm.h" #include "Molecule.h" #include "LennardJones.h" #include "Property.h" #include "Parameter.h" //--------------------------------------------------------------------------- class Simulation { public: Simulation(); int t; void Run(); void Reset(); private: void NextStep(); }; extern Molecule *head; extern LennardJones *LJ; extern Property *Prop; extern Parameter *Par; #endif

82

Page 93: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Simulation.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Simulation.h" #include "Verlet.h" #include "Initialize.h" //--------------------------------------------------------------------------- #pragma package(smart_init) Initialize *Init = new Initialize; Verlet *Ver = new Verlet; Molecule *head = NULL; LennardJones *LJ = new LennardJones; Property *Prop = new Property; Parameter *Par = new Parameter; Simulation::Simulation() { t = 0; } void Simulation::Run() { for (t = 0; t < 1; t++) { Init->Run(); LJ->Run(); Ver->RunOne(); } Form1->ChartPosition->LeftAxis->Minimum = -Par->L/2; Form1->ChartPosition->LeftAxis->Maximum = Par->L/2; Form1->ChartPosition->BottomAxis->Minimum = -Par->L/2; Form1->ChartPosition->BottomAxis->Maximum = Par->L/2; for (t = 1; t < (Par->TMAX+1); t ++) { NextStep();

83

Page 94: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

LJ->Run(); Ver->Run(); Form1->Output(); Application->ProcessMessages(); if (Form1->stop) break; } } void Simulation::Reset() { t = 0; while (head != NULL) { Molecule* p = head; head = p->next; delete (p); } } void Simulation::NextStep() { for (Molecule *p = head; p != NULL; p = p->next) { for (int i = 0; i < 3; i++) { p->Rprev[i] = p->R[i]; p->R[i] = p->Rnext[i]; } } }

84

Page 95: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Parameter.h //--------------------------------------------------------------------------- #ifndef ParameterH #define ParameterH //--------------------------------------------------------------------------- class Parameter { public: Parameter(); void Set(); int N; //number of molecules int NAxis; //number of molecules along length of cube double SIG; //length parameter of interaction double EPS; //strength of interaction double L0; //length of molecular lattice double L; //length of simulation box double RC; //cutoff distance double DT; //iteration time step double T0; //average initial velocity of each molecule double Kb; //Boltzmann constant int TMAX; //maximum iteration number double Q; //Nose-Hoover thermostat parameter double Tset; //temperature set point }; //--------------------------------------------------------------------------- #endif

85

Page 96: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Parameter.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Parameter.h" #include "Simulation.h" //--------------------------------------------------------------------------- #pragma package(smart_init) Parameter::Parameter() { } void Parameter::Set() { if (Form1->RadioButton64->Checked) { N = 64; NAxis = 4; } if (Form1->RadioButton125->Checked) { N = 125; NAxis = 5; } if (Form1->RadioButton216->Checked) { N = 216; NAxis = 6; } if (Form1->RadioButton343->Checked) { N = 343; NAxis = 7; } if (Form1->RadioButton512->Checked) { N = 512; NAxis = 8; } SIG = StrToFloat(Form1->SIG->Text); EPS = StrToFloat(Form1->EPS->Text); L0 = StrToFloat(Form1->L0->Text)*SIG; L = NAxis * L0;

86

Page 97: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

DT = StrToFloat(Form1->DT->Text); TMAX = StrToFloat(Form1->TMAX->Text); RC = StrToFloat(Form1->RC->Text)*L0; T0 = StrToFloat(Form1->T0->Text); Kb = StrToFloat(Form1->Kb->Text); Q = StrToFloat(Form1->Q->Text); Tset = StrToFloat (Form1->TSet->Text); }

87

Page 98: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Property.h //--------------------------------------------------------------------------- #ifndef PropertyH #define PropertyH //--------------------------------------------------------------------------- class Property { public: Property(); void Run(); double U; double K; double E; double E0; double momentum[3]; double error; double zeta; double zetadot; double beta; double s; double sdot; double T; double P; double Pf; double Pm; double H; double Ham; double Ham0; double HamError; private: void Kinetic(); void Energy(); }; //--------------------------------------------------------------------------- # endif

88

Page 99: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Property.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Property.h" #include "Simulation.h" //--------------------------------------------------------------------------- #pragma package(smart_init) Property::Property() { U = 0; K = 0; E = 0; E0 = 0; for (int i = 0; i<3; i++) momentum[i] = 0; error = 0; zeta = 0; zetadot = 0; beta = 0; s = 1; sdot = 0; T = 0; P = 0; H = 0; Ham = 0; } void Property::Run() { Kinetic(); Energy(); T = 2 * Prop->K /(3*Par->N*Par->Kb); Pm = 2*Par->N/(3*pow(Par->L,3))*Prop->K; P = Pf+Pm; H = E + P * pow(Par->L,3); if (s>0) Ham = U + K*pow(s,2) + 0.5*Par->Q*pow(sdot,2) + 3*Par->Kb * T *log(s);

89

Page 100: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

} void Property::Kinetic() { K = 0; for (int i = 0; i<3; i++) momentum[i] = 0; for (Molecule *p = head; p != NULL; p = p->next) for (int i = 0; i < 3; i++) { K += 0.5 * p->m * pow(p->v[i],2); momentum[i] += p->m * p->v[i]; } } void Property::Energy() { E = U + K; if (E0 != 0) error = (E-E0)/E0; if (Ham0 != 0) HamError = (Ham-Ham0)/Ham0; }

90

Page 101: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Initialize.h //--------------------------------------------------------------------------- #ifndef InitializeH #define InitializeH //--------------------------------------------------------------------------- class Initialize { public: Initialize(); void Run(); private: void CreateMolecules(); void InitialPosition(); void InitialVelocity(); }; //--------------------------------------------------------------------------- #endif

91

Page 102: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Initialize.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <stdlib.h> #include <math.h> #include "Initialize.h" #include "Parameter.h" #include "MainForm.h" #include "LennardJones.h" #include "Property.h" #include "Simulation.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- Initialize::Initialize() { } void Initialize::Run() { Par->Set(); CreateMolecules(); InitialPosition(); InitialVelocity(); } void Initialize::CreateMolecules() { Molecule* p; for (int i = 0; i < Par->N; i++) { if ((p = new Molecule) != 0) { p->index = Par->N - i; p->next = head; head = p; } } }

92

Page 103: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

void Initialize::InitialPosition() { //CUBE FORMATION double x0 = 0.5*(1-Par->NAxis)*Par->L0; double y0 = x0; double z0 = x0; Molecule* p = head; double z = z0; for (int i = 0; i < Par->NAxis; i++) { double y = y0; for (int j = 0; j < Par->NAxis; j++) { double x = x0; for (int k = 0; k < Par->NAxis; k++) { p->R[0] = x; p->R[1] = y; p->R[2] = z; p = p->next; x += Par->L0; } y += Par->L0; } z += Par->L0; } } void Initialize::InitialVelocity() { double K = 0; double T = 0; Randomize(); for (int i = 0; i < 3; i++) { double V = 0; //ASSIGN RANDOM VALUES for (Molecule* p = head; p != NULL; p = p->next) { p->v[i] = 1; for (int j = 0; j < 200; j++) p->v[i] += 0.01*(random(2)-0.5); //WEIGHTED RANDOM NUMBER

93

Page 104: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

if (random(2) == 0) p->v[i] = -p->v[i]; //DIRECTION V += p->v[i]; K += 0.5*p->m*pow(p->v[i],2); } //READJUSTING MOMENTUM ON AXIS for (Molecule* p = head; p != NULL; p = p->next) p->v[i] -= V/Par->N; } T = 2*K/(3*Par->N*Par->Kb); for (int i = 0; i < 3; i++) { for (Molecule* p = head; p != NULL; p = p->next) { p->v[i] *= sqrt(Par->T0/T); } } }

94

Page 105: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Verlet.h //--------------------------------------------------------------------------- #ifndef VerletH #define VerletH class Verlet { public: Verlet(); void Run(); //Run the Simulation void RunOne(); private: //double zeta; double zetaprev; double zetanext; //double beta; double sprev; double snext; void NextStep(); void PredictPosition(); void PredictPositionOne(); void Velocity(); void PredictZeta(); void PredictS(); void VelocityScale(); }; //--------------------------------------------------------------------------- # endif

95

Page 106: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

Verlet.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <math.h> #include "Verlet.h" #include "Parameter.h" #include "MainForm.h" #include "LennardJones.h" #include "Property.h" #include "Simulation.h" //--------------------------------------------------------------------------- #pragma package(smart_init) Verlet::Verlet() { zetanext = 0; zetaprev = 0; snext = 1; sprev = 1; } void Verlet::Run() { NextStep(); PredictPosition(); Velocity(); Prop->Run(); PredictZeta(); PredictS(); Prop->zetadot = (zetanext-zetaprev)/(2*Par->DT); } void Verlet::RunOne() { PredictPositionOne(); Prop->Run(); Prop->E0 = Prop->E; Prop->Ham0 = Prop->Ham; } void Verlet::NextStep()

96

Page 107: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

{ zetaprev = Prop->zeta; sprev = Prop->s; Prop->zeta = zetanext; Prop->s = snext; Prop->beta = 0.5 * Prop->zeta * Par->DT; Prop->sdot = Prop->zeta * Prop->s; } void Verlet::PredictPosition() { for (Molecule *p = head; p != NULL; p = p->next) { for (int i = 0; i < 3; i++) { if (Form1->RadioButtonNone->Checked == true) p->Rnext[i] = 2 * p->R[i] - p->Rprev[i] + p->F[i]/p->m * pow(Par->DT,2); else p->Rnext[i] = (2 * p->R[i] - (1-Prop->beta) * p->Rprev[i] + p->F[i]/p->m * pow(Par->DT,2))/(1+Prop->beta); if (p->Rnext[i] > 0.5*Par->L) { p->Rnext[i] -= Par->L; p->R[i] -= Par->L; p->Rprev[i] -= Par->L; } if (p->Rnext[i] < -0.5*Par->L) { p->Rnext[i] += Par->L; p->R[i] += Par->L; p->Rprev[i] += Par->L; } } } } void Verlet::PredictPositionOne() { for (Molecule *p = head; p != NULL; p = p->next) for (int i = 0; i < 3; i++) p->Rnext[i] = p->R[i] + p->v[i] * Par->DT + p->F[i]/p->m * pow(Par->DT,2); }

97

Page 108: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

void Verlet::Velocity() { for (Molecule *p = head; p != NULL; p = p->next) { for (int i = 0; i < 3; i++) { p->v[i] = (p->Rnext[i] - p->Rprev[i]) / (2 * Par->DT); } } } void Verlet::PredictZeta() { if (Form1->RadioButtonBerendsen->Checked == true) zetanext = (Prop->T-Par->Tset)/(2*Par->Q*Prop->T); else if (Form1->RadioButtonNoseHoover->Checked == true) zetanext = zetaprev + 2 * Par->DT * ((2*Prop->K)-(3*Par->N*Par->Kb*Par->Tset))/ Par->Q; } void Verlet::PredictS() { snext = sprev + 2 * Prop->sdot*Par->DT; } void Verlet::VelocityScale() { for (int i = 0; i < 3; i++) { for (Molecule* p = head; p != NULL; p = p->next) { p->v[i] *= sqrt(Par->Tset/Prop->T); p->Rnext[i] = p->Rprev[i] + p->v[i] * 2 * Par->DT; } } }

98

Page 109: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

LennardJones.h #ifndef LennardJonesH #define LennardJonesH #include "Molecule.h" class LennardJones { public: LennardJones(); void Run(); private: double RAxis[3], Rij; double force[3]; void ClearValues(); void Distance (Molecule *p1, Molecule *p2); void Force(Molecule *p1, Molecule *p2); void Potential(Molecule *p1, Molecule *p2); void PressureByForce(Molecule *p1, Molecule *p2); }; //--------------------------------------------------------------------------- #endif

99

Page 110: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

LennardJones.cpp //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <math.h> #include "LennardJones.h" #include "Simulation.h" //--------------------------------------------------------------------------- #pragma package(smart_init) LennardJones::LennardJones() { Rij = 0; for (int i = 0; i < 3; i++) { RAxis[i] = 0; force[i] = 0; } } void LennardJones::Run() { ClearValues(); for (Molecule *p1 = head; p1 != NULL; p1 = p1->next) { for (Molecule *p2 = p1->next; p2 != NULL; p2 = p2->next) { Distance(p1,p2); if (Rij < Par->RC) { if (Form1->DisableLennardJones->Checked == false) { Force(p1,p2); Potential(p1,p2); PressureByForce(p1,p2); } } } } } void LennardJones::ClearValues()

100

Page 111: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

{ Prop->U = 0; Prop->Pf = 0; for (Molecule *p = head; p != NULL; p = p->next) for (int i = 0; i < 3; i++) p->F[i] = 0; } void LennardJones::Distance (Molecule *p1, Molecule *p2) { for (int i=0; i<3; i++) { RAxis[i] = p1->R[i] - p2->R[i]; if (RAxis[i] > 0.5*Par->L) RAxis[i] -= Par->L; if (RAxis[i] < -0.5*Par->L) RAxis[i] += Par->L; } Rij = sqrt(pow(RAxis[0],2)+pow(RAxis[1],2)+pow(RAxis[2],2)); } void LennardJones::Force (Molecule *p1, Molecule *p2) { for (int i=0; i<3; i++) { force[i] = 24 * Par->EPS * RAxis[i] * pow(Par->SIG,6) / pow(Rij,8) * (2 * pow(Par->SIG/Rij,6) - 1); p1->F[i] += force[i]; p2->F[i] -= force[i]; //Newton's Third Law } } void LennardJones::Potential (Molecule *p1, Molecule *p2) { Prop->U += 4 * Par->EPS *(pow(Par->SIG/Rij,12)- pow(Par->SIG/Rij,6)); } void LennardJones::PressureByForce(Molecule *p1, Molecule *p2) { for (int i=0; i<3; i++) Prop->Pf += force[i] * RAxis[i]; Prop->Pf = Prop->P/(3*pow(Par->L,3));

101

Page 112: AREE WITOELARwitoelar.com/aree/tech/Simulasi_Dinamika_Molekul.pdf · Scaling [1], thermostat Nose-Hoover [8] dan termostat Berendsen [9]. 2.5 SISTEMATIKA PEMBAHASAN Penelitian dilakukan

}

102