tutorial program crystal bagian 7

assalamu’alaikum warahmatullahi wabarakatuh..

 

pagi ini jadi ingat fitur gaussian yang bisa melakukan scan energi dengan variasi jarak tertentu menggunakan keyword scan. hal ini sangat mudah, tinggal menuliskan koordinat dalam z-matrix, menuliskan scan dari jarak sekian ke sekian dengan interval tertentu dan kemudian gaussian akan menampilkan energi interaksi pada tiap interval jarak.

contoh sederhananya adalah sebagai berikut :

# scan hf/gen gfprint

Title Card Required

1 1
Li
N                  1    r1
H                  2    1.01239999    1  112.20195309
H                  2    1.01239999    1  112.11143278    3  119.99034610    0
H                  2    1.01240001    1  112.09419621    4  119.95334908    0

r1 1.40000000 s 136 0.1

lalu bagaimana dengan crystal ? apakah kita juga bisa melakukan hal yang serupa ? tentu saja bisa. caranya kita hanya perlu membuat shell script dan template untuk menghitung jarak.

pertama kita membuat template. konsep dari template ini adalah kita padatan menjadi dua bagian. satu bagian sumbu z kita buat tetap sementara satu bagian lain sumbu z akan divariasi jaraknya. misalnya seperti ini

13  -0.188808  -0.385305   6.91691
13  -0.438809  0.448028   6.91691
13  0.311191  -0.0519721   6.91691
8  -0.105458  -0.116405   __LAYER3__
8  -0.355458  -0.283072   __LAYER3__
8  0.394542  0.216928   __LAYER3__
8  0.144541  0.0502615   __LAYER3__
8  -0.105458  0.216928   __LAYER3__

nanti bisa diteruskan untuk layer ke 4, ke 5 dst. file ini bisa kita simpan sebagai crystal.template

kemudian, kita buat shell script. konsep dari shell script ini adalah mengganti __LAYERX__ dengan koordinat di sumbu z + interval jarak.

misalnya :

for i in 0.60 0.50 0.40 0.30 0.20 0.10 0.0 -0.10 -0.20 -0.30 -0.40 -0.50
do

z1=$( echo $(gawk ‘{print ‘$i’ + 7.40554000}’ <<< 1) )
z2=$( echo $(gawk ‘{print ‘$i’ + 6.91691000}’ <<< 1) )
z3=$( echo $(gawk ‘{print ‘$i’ + 6.07869000}’ <<< 1) )
z4=$( echo $(gawk ‘{print ‘$i’ + 5.24048000}’ <<< 1) )
z5=$( echo $(gawk ‘{print ‘$i’ + 4.75054000}’ <<< 1) )
z6=$( echo $(gawk ‘{print ‘$i’ + 3.91233000}’ <<< 1) )
z7=$( echo $(gawk ‘{print ‘$i’ + 3.07411000}’ <<< 1) )
z8=$( echo $(gawk ‘{print ‘$i’ + 2.58418000}’ <<< 1) )

echo $i  ”  ” $z1  ”  ”  $z2  ”  ” $z3  ”  ” $z4  ”  ” $z5  ”   ”   $z6   ”   ” $z7   ”   ” $z8

sed ‘s/__LAYER1__/’$z1’/; s/__LAYER2__/’$z2’/; s/__LAYER3__/’$z3’/; s/__LAYER4__/’$z4’/; s/__LAYER5__/’$z5’/; s/__LAYER6__/’$z6’/;  s/__LAYER7__/’$z7’/;  s/__LAYER8__/’$z8’/’ crystal.template > scan_$i.d12

nohup /alamat file program crystal/runmpi09_noramdisk 60 scan_$i

done

 

z1 – z8 adalah koordinat baru di sumbu z = koordinat sumbu z lama + interval jarak

cukup jelas kan ? oke, semoga bermanfa’at!

One thought on “tutorial program crystal bagian 7

Leave a Reply

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

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s