PDA

View Full Version : [C o Fortran]Creare dei files modificando un input


Lucrezio
31-03-2007, 12:31
Ciao a tutti!
Sono assolutamente a livello zero in programmazione ed avrei bisogno di scrivere uno script che mi aiutasse a preparare degli input per calcolo scientifico.
In particolare io ho un dimero composto da due molecole e voglio fare dei calcoli mettendo queste due molecole (che stanno su piani paralleli) a varie distanze interplanari e facendole scorrere l'una sull'altra.
In pratica se entrambe si trovano su un piano parallelo ad xy lo script dovrebbe andare a generare, a partire da un input iniziale, dei files in cui vengono cambiate le cordinate di uno dei due pezzi aumentando, ad esempio la z di un certo passo per un certo numero di volte; al contempo per ogni passo dovrebbe invece aumentare un'altra cordinata (es: la x) in modo da far slittare le molecole l'una sull'altra.
Qui c'è un esempio di input:

%chk=perileneFTF.chk
%mem=70MW
%nproc=1
#p opt hf/6-31+g(d,p)

opt perilene FTF

0 1
C 0.00000000 0.00000000 0.00000000
C 0.00000000 0.00000000 1.40140000
C 1.21364800 0.00000000 2.10210000
C 2.42729600 0.00000000 1.40140000
C 2.42729600 0.00000000 0.00000000
C 1.21364800 0.00000000 -0.70070000
H 0.28700100 0.00000000 4.03850000
H -0.92664700 0.00000000 -0.53500000
H -0.92664700 0.00000000 1.93640000
C 1.21364800 0.00000000 3.50350000
C 3.64094400 0.00000000 2.10210000
H 1.21364800 0.00000000 -1.77070000
C 3.64094400 0.00000000 3.50350000
C 2.42729600 0.00000000 4.20420000
H 4.56759100 0.00000000 4.03850000
H 2.42729600 0.00000000 5.27420000
C 3.76097500 0.00000000 -0.77000000
C 3.76097500 0.00000000 -2.17140000
C 4.97462300 0.00000000 -0.06930000
C 4.97462300 0.00000000 -2.87210000
H 2.83432800 0.00000000 -2.70640000
C 6.18827100 0.00000000 -0.77000000
C 4.97462300 0.00000000 1.33210000
C 6.18827100 0.00000000 -2.17140000
H 4.97462300 0.00000000 -3.94210000
C 7.40191900 0.00000000 -0.06930000
C 6.18827100 0.00000000 2.03280000
H 7.11491800 0.00000000 -2.70640000
C 7.40191900 0.00000000 1.33210000
H 8.32856600 0.00000000 -0.60430000
H 6.18827100 0.00000000 3.10280000
H 8.32856600 0.00000000 1.86710000
C 0.00000000 4.00000000 0.00000000
C 0.00000000 4.00000000 1.40140000
C 1.21364800 4.00000000 2.10210000
C 2.42729600 4.00000000 1.40140000
C 2.42729600 4.00000000 0.00000000
C 1.21364800 4.00000000 -0.70070000
H 0.28700100 4.00000000 4.03850000
H -0.92664700 4.00000000 -0.53500000
H -0.92664700 4.00000000 1.93640000
C 1.21364800 4.00000000 3.50350000
C 3.64094400 4.00000000 2.10210000
H 1.21364800 4.00000000 -1.77070000
C 3.64094400 4.00000000 3.50350000
C 2.42729600 4.00000000 4.20420000
H 4.56759100 4.00000000 4.03850000
H 2.42729600 4.00000000 5.27420000
C 3.76097500 4.00000000 -0.77000000
C 3.76097500 4.00000000 -2.17140000
C 4.97462300 4.00000000 -0.06930000
C 4.97462300 4.00000000 -2.87210000
H 2.83432800 4.00000000 -2.70640000
C 6.18827100 4.00000000 -0.77000000
C 4.97462300 4.00000000 1.33210000
C 6.18827100 4.00000000 -2.17140000
H 4.97462300 4.00000000 -3.94210000
C 7.40191900 4.00000000 -0.06930000
C 6.18827100 4.00000000 2.03280000
H 7.11491800 4.00000000 -2.70640000
C 7.40191900 4.00000000 1.33210000
H 8.32856600 4.00000000 -0.60430000
H 6.18827100 4.00000000 3.10280000
H 8.32856600 4.00000000 1.86710000

Le tre colonne di numeri sono, appunto, le x, le y e le z. In questo caso i due monomeri si trovano su un piano parallelo ad xz ad una distanza interplanare di 4 A e sono perfettamente affacciate.
Grazie a tutti in anticipo

Lucrezio
11-04-2007, 19:16
uppettino...