Vous êtes sur la page 1sur 68

UNIVERSIDADE DE SO PAULO

ESCOLA DE ENGENHARIA DE LORENA

MATHEUS CORDIOLI AGOSTIN

SIMULAO DE PROPRIEDADES DE UM FLUIDO


LENNARD-JONES UTILIZANDO MTODOS DE
TERMODINMICA ESTATSTICA E MODELAGEM
MOLECULAR

LORENA-SP
2015

MATHEUS CORDIOLI AGOSTIN

Simulao de propriedades de um fluido Lennard-Jones utilizando mtodos de Mecnica


Estatstica e Modelagem Molecular

Trabalho de concluso de curso apresentado


Escola de Engenharia de Lorena da Universidade de
So Paulo como requisito parcial para graduao em
Engenharia Qumica.
Orientador: Prof. Dr. Pedro Felipe Arce Castillo

LORENA-SP
2016

DEDICATRIA

A minha famlia, professores


e amigos

AGRADECIMENTOS
Aos meus pais, Jos Carlos e Claudia, e minha irm, Isis, pela pacincia e dedicao
comigo durante o perodo da graduao.
Aos meus professores, do colgio e da universidade, pelos esforos para o
entendimento de temas to complexos. No seria possvel citar, dentre tantos, os que
determinaram em mim mais influncia.
Ao professor doutor Pedro Arce Filipe Castillo, por me conceder a possibilidade de
realizar este trabalho, dando suporte e materiais auxiliares para seu desenvolvimento.
Aos meus colegas de repblica Joo, Cristiano, Iago e Gustavo pelo anos de
amizade companheirismo ante a tantas dificuldades.
Ao Hayton, melhor amigo que fiz durante o perodo que estive na Noruega, por todo
apoio que me deu durante o final da graduao, pelas viagens e tantos outros momentos
inesquecveis.
A todos amigos e familiares que no puderam ser includos aqui, devido limitao
deste espao.
Sem o apoio de todos, eu no teria a base para concluir este trabalho e o curso de
Engenharia Qumica.

EPGRAFE

Melhor de todos o que por si mesmo tudo pensa,


bom, por outro lado, o que persuadido por quem fala bem.
Mas quem nem por si reflete, nem o outro ouve,
Tenha isso na alma, que este um homem intil.
Hesodo, Os trabalhos e os dias, v.
293, 295-97.

RESUMO
AGOSTIN, M. C. Simulao de propriedades de um fluido Lennard-Jones
utilizando mtodos de Mecnica Estatstica e Modelagem Molecular (Trabalho de
Concluso de Curso II em Engenharia Qumica) Escola de Engenharia de Lorena,
Universidade de So Paulo, 2015.
O trabalho realizado pretende ilustrar, atravs de clculos simples, a utilidade da
ferramenta da modelagem molecular, mais especificamente de simulaes Monte
Carlo, para a avaliao de propriedades termodinmicas de fluidos, mostrando seu
valor didtico no entendimento da Termodinmica a nvel molecular. Para tanto,
simulaes em dois ensembles estatsticos, NVT e NPT, foram realizadas para estudar
as propriedades de um sistema constitudo de tomos de argnio que interagem de
acordo com o potencial Lennard-Jones. Os resultados obtidos foram comparados com
valores retirados de uma tabela de propriedades termodinmicas. Para efeito de
ilustrao, foram calculadas propriedades do argnio na curva de coexistncia gslquido, calor latente a 120 K, entropia de transio de fase e o comportamento
qualitativo do grfico de energia de Gibbs molar e temperatura.
Palavras-chave: termodinmica clssica; termodinmica estatstica; modelagem
molecular; fluido Lennard-Jones; algoritmo de monte carlo;

SUMRIO
1. Introduo............................................................................................................10
2. Objetivos...............................................................................................................12
2.1. Objetivos Especficos..........................................................................................12
3. Justificativa...........................................................................................................13
4. Reviso Bibliogrfica...........................................................................................14
4.1. Termodinmica Clssica.....................................................................................14
4.2. Aplicaes da Termodinmica............................................................................18
4.2.1 Equao de Clausius-Clapeyron.......................................................................18
4.2.2. Energia Livre e Relaes de Maxwell.............................................................20
4.2.2.1. Energia Livre................................................................................................20
4.2.2.2. Relaes de Maxwell....................................................................................23
4.3. Princpios da Mecnica Estatstica......................................................................23
4.3.1. Clculo de propriedades termodinmicas atravs da funo de partio.........24
4.3.1.1. Energia Interna..............................................................................................24
4.3.1.2. Entropia.........................................................................................................25
4.3.1.3. Funes termodinmicas...............................................................................25
4.3.1.4. Tratamento estatstico de ensembles.............................................................26
4.4. Potencial de Lennard-Jones................................................................................27
4.5. Funo de distribuio radial..............................................................................29
4.6. Propriedades termodinmicas em unidades adimensionais................................31
4.7. Algoritmo de Metropolis....................................................................................31
5. Metodologia..........................................................................................................32
6. Resultados e Discusso........................................................................................34
6.1. Curvas de coexistncia.......................................................................................34
6.2. Entalpia de vaporizao (calor latente)..............................................................35
6.3. Entropia de vaporizao.....................................................................................36
6.4. Grfico da energia de Gibbs molar vs. Temperatura..........................................36
7. Concluso.............................................................................................................38
8. Possveis trabalhos futuros.................................................................................39
9. Referncias Bibliogrficas..................................................................................40
10. Algoritmos NVT e NPT ....................................................................................41

LISTA DE FIGURAS
Figura 4.1 (a) Isotermas de um lquido em mudana de fase. (b) Variao infinitesimal na
temperatura................................................................................................................................16
Figura 4.2 Representao grfica do potencial Lennard-Jones .............................................26
Figura 4.3 Funo de distribuio radial em funo de r*.....................................................30
Figura 4.4. Relao entre propriedades termodinmicas de um fluido monoatmico com a
funo de distribuio radial. A primeira corresponde equao do virial para clculo da
presso ou densidade. A segunda, para o clculo da energia interna. As restantes
correspondem ao clculo do potencial qumico........................................................................30
Figura 5.1. Algumas janelas do programa Chemical Potential by Monte Carlo Simulations...33
Figura 6.1. Grfico da energia de Gibbs molar, Gm*, em funo da temperatura, T*..............37
Figura 6.2. Grfico do comportamento do potencial qumico em funo da temperatura
durante mudanas de fase.........................................................................................................38

LISTA DE QUADROS E TABELAS


Quadro 4.1. - Relaes entre potenciais termodinmicos e propriedades.................................22
Quadro 4.2. - Principais propriedades termodinmicas em termos da funo de partio para o
ensemble cannico....................................................................................................................26
Quadro 6.1. Simulao da densidade do argnio na curva de lquido saturado (rho_calc*).
Comparao com as densidades obtidas por uma tabela de propriedades termodinmicas
(rho_tab*). O erro mdio aproximadamente 0,4%................................................................34
Quadro 6.2. Dados utilizados para o clculo do calor latente pela equao 4.21....................35
Quadro 6.3. Calor latente atravs da equao de Clausius-Clapeyron....................................36

10

1. Introduo
Os avanos da Fsica Terica no sculo XX permitiram observarmos com mais
detalhes a natureza da matria. A enorme complexidade do mundo microscpico determina as
caractersticas do mundo macroscpico. Duas cincias que contriburam nesse sentido foram a
Mecnica Quntica e a Termodinmica Estatstica. A Mecnica Quntica estuda a natureza em
uma escala muito pequena (~10 -9 m), onde as leis da Fsica parecem diferentes daquelas
observadas em escalas ordinrias por exemplo: a luz e a matria possuem comportamento
dual de onda e partcula, um tomo possui nveis de energia discretos, a posio e o momento
de uma partcula no podem ser mutualmente determinados com preciso abaixo de uma
determinada escala (princpio da incerteza), entre outros resultados (FEYNMAN;
LEIGHTON; SANDS, 2013).
No entanto, no possvel determinar as equaes do movimento, utilizando as leis de
Newton, para todos os tomos e molculas de um gs ou um lquido, por exemplo, pois so
constitudos de um nmero incrivelmente alto de partculas da ordem de 1023. Isso
representaria resolver as equaes para cada um dos 10 23 corpos, em cada uma das 3
dimenses do espao. Portanto, a Termodinmica Estatstica trata de estudar o comportamento
da matria de acordo com as leis da probabilidade (REIF, 1965). Por exemplo, a presso de
vapor de um lquido pode ser entendida de acordo com a probabilidade de uma molcula
possuir energia suficiente para escapar da superfcie do lquido, vencendo foras
intermoleculares que mantm a maioria das outras na fase lquida.
A Termodinmica Estatstica pode ser, portanto, uma ferramenta muito til
Engenharia Qumica e Qumica. Embora no seja uma disciplina tradicional nos cursos de
Engenharia Qumica, possui muitas aplicaes em reas relevantes (DVILA;
STRAGEVITCH, 1994). Aplicaes incluem: cincia dos polmeros (FLORY;
VOLKENSTEIN, 1969), coloides (HIEMANZ; RAJAGOPALAN, 1997), nanotecnologia,
fenmenos de superfcie (LANGMUIR, 1918), cincia dos materiais (RAGONE, 1995),
petroqumica, entre outros.
Neste trabalho, utilizaremos mtodos da Termodinmica Estatstica para calcular
propriedades termodinmicas de um fluido cujas foras intermoleculares so do tipo LennardJones. Analisaremos propriedades como energia livre de Helmholtz, energia livre de Gibbs,
presso, entropia e potencial qumico. Utilizaremos mtodos computacionais do tipo Monte
Carlo para calcular a funo de partio (Q) do fluido e, com a teoria da Termodinmica
Estatstica, relacion-la com as propriedades do fluido. Pretendemos comparar os resultados

11

obtidos por esses mtodos com os resultados obtidos atravs da Termodinmica Clssica e
com resultados experimentais.

12

2. Objetivos
Os objetivos principais deste trabalho consistem em avaliar os resultados da
Termodinmica Estatstica na determinao das propriedades de um fluido. Ser feita uma
reviso bibliogrfica dos principais pontos da Termodinmica Clssica e da Termodinmica
Estatstica e, assim, compararemos os resultados obtidos por essas duas abordagens utilizando
mtodos computacionais do tipo Monte Carlo. Dois ensembles estatsticos sero analisados, o
ensemble cannico (N, V, T) e o ensemble isobrico-isotrmico (N, p, T). Outro objetivo que
se pretende atingir ilustrar a importncia da Termodinmica Estatstica na Engenharia
Qumica, cincia normalmente pouco mencionada nos cursos de Engenharia Qumica.
2.1.

Objetivos Especficos

Reviso bibliogrfica a fim de encontrar o vnculo terico entre


Termodinmica Clssica e Termodinmica Estatstica.

Simulao computacional utilizando o algoritmo de Monte Carlo


para o clculo da funo de partio para os ensembles estatsticos
cannico e isobrico-isotrmico.

Calcular as propriedades do fluido atravs da funo de partio


entropia, energia interna, energia livre de Helmholtz e Gibbs e
potencial qumico.

Comparar os resultados da Termodinmica Clssica com a


Termodinmica Estatstica.

13

3. Justificativa
A abordagem normalmente empregada pela Termodinmica Clssica no clculo de
propriedades de uma substncia geralmente depende de mltiplas variveis. So necessrias
pelo menos duas variveis para especificar o estado termodinmico de um sistema
completamente. A Termodinmica Estatstica depende apenas de consideraes moleculares.
Utilizar mtodos computacionais em Termodinmica Estatstica representa, portanto, uma
alternativa vivel para experimentos que seriam custosos.

14

4. Reviso Bibliogrfica
4.1. Termodinmica Clssica
Ao estudar propriedades de uma substncia, um nmero de relaes entre essas
propriedades pode ser encontrado sem se levar em conta a natureza interna dessa substncia,
isto , de que ela constituda de molculas e tomos. Esse o objeto de estudo da
Termodinmica Clssica. Historicamente, a Termodinmica Clssica foi desenvolvida antes
de se conhecer molculas e tomos (FEYNMAN; LEIGHTON; SANDS, 2013).
A Termodinmica comeou com o estudo de mquinas trmicas e como elas poderiam
ser feitas mais eficientes. Uma mquina trmica funciona do seguinte modo: gua recebe
calor, evapora, o vapor expande e movimento um pisto e faz uma roda se movimentar. O
vapor ento condensado e volta ao lugar onde estava. O resultado lquido desse ciclo calor
sendo transformado em energia mecnica. Seria possvel fazer uma mquina mais eficiente
empregando-se lcool, por exemplo? Essa questo foi feita pelo engenheiro francs Sadi
Carnot, em seu notvel trabalho Rflexions sur la Puissance Motrice du Feu et sur les
Machines Propres a Dvelopper Cette Puissance (Reflexes sobre Potncia Motriz do Fogo
e Mquinas Prprias para Aumentar essa Potncia).
poca de Carnot, a natureza do calor no era exatamente conhecida, aceitava-se a
teoria do calrico, de que um corpo possui um fluido, chamado calrico, e quanto mais
quente o corpo, maior o contedo desse fluido. Ele passaria do corpo mais quente para o mais
frio e seria conservado. Investigao posterior feita por Meyer e Joule mostraram que, na
verdade, o calor uma forma de energia e, portanto, a energia, no o calor, que se conserva.
Esse princpio hoje conhecido como Primeira Lei da Termodinmica. A primeira lei pode
ser enunciada como segue: se um sistema recebe uma quantidade de calor Q e trabalho W
feito nesse sistema, a energia U desse sistema muda de acordo com Q e W (ZEMANSKY,
1968), isto :
U =Q +W

(4.1)

Na forma diferencial, a primeira lei poderia ser escrita como:


dU =Q+W

(4.2)

15

Onde o smbolo

utilizado apenas para lembrar que o calor e o trabalho

dependem da sequncia de processos pelo qual o sistema passa, isto , dependem do caminho.
Obviamente, em um processo cclico, isto , em que o sistema retorna ao estado inicial, a
variao da energia interna nula. Integrando, temos

dU =0

(4.3)

Q= W

(4.4)

No entanto, a Segunda Lei da Termodinmica foi descoberta por Carnot antes da


Primeira Lei ter sido formalizada (FEYNMAN; LEIGHTON; SANDS, 2013). Mesmo que a
teoria do calrico estivesse errada, o raciocnio de Carnot sobre as mquinas trmicas estava
correto. Se puxarmos um corpo em uma superfcie com atrito em um ambiente com uma
temperatura T, parte do trabalho ser convertido em calor. O oposto, de acordo com a Segunda
Lei, no se observaria, isto , calor retirado do ambiente em uma temperatura T transferido
para o corpo e ele comea a se movimentar, realizando trabalho. Embora esse fenmeno
estaria de acordo com a primeira lei a energia conservada esse tipo de fenmeno parece
absurdo. Tal como um copo que se quebra em pedaos no volta espontaneamente a ser um
copo, ou um gs que se expande livremente no volta a comprimir-se sozinho. Carnot
assumiu que calor no pode ser transformado em trabalho sem deixar nenhuma alterao no
sistema ou na vizinhana. (FEYNMAN; LEIGHTON; SANDS, 2013)
O argumento de Carnot o seguinte: considere uma mquina bem simples, como um
pisto provido de mbolo com gua no interior. Temos dois reservatrios em temperaturas
diferentes por exemplo, uma fonte A a 100 oC e uma fonte B a 0 oC, como uma caldeira e
um condensador. Podemos operar a mquina da seguinte forma:
1. Calor removido de A para gerar vapor. O vapor estar mesma temperatura de A.
2. Retiramos o contato do sistema com a fonte A e deixamos o vapor expandir
lentamente, presso constante, at chegar prximo temperatura de B.
3. Quando o sistema estiver temperatura de B, colocamos em contato com B e o
comprimimos presso constante, condensando temperatura constante.

16

Note que, no entanto, nada impede que essa sequncia possa ser realizada no sentido
inverso, isto , tendo o sistema em contato com B e mesma temperatura, deixamos que
expanda, removemos o contato com B e o comprimimos at que chegue temperatura de A,
onde podemos continuar a compresso at condensar o vapor mesma temperatura. Ao
realizarmos a sequncia 1-2-3, produzimos uma certa quantidade de trabalho e transferimos
calor do corpo A para o B. Ao realizarmos a sequncia inversa, realizamos a mesma
quantidade de trabalho e transferimos a mesma quantidade de calor de B para A. Ao
realizarmos ambos os processos, o resultado lquido nenhum trabalho gerado e nenhum
calor transferido. O sistema volta ao estado original. A genialidade do argumento de Carnot
que, sendo o trabalho lquido produzido por tal ciclo nulo, se fosse possvel encontrar uma
substncia melhor, isto , que transforme mais calrico em trabalho, cada ciclo realizado
geraria uma quantidade finita de trabalho. Isso seria inadmissvel de acordo com as leis da
mecnica, j conhecidas poca. (CARNOT, 1893)
Atualmente, a mquina imaginada por Carnot denominada mquina reversvel. A
quantidade de calor que uma mquina reversvel consegue transformar em trabalho independe
do mecanismo dela ou da substncia empregada. Poderia ser lcool, ar e at mesmo um metal,
cujo comprimento varia com a temperatura. Pode ser mostrado que a eficincia de uma
mquina reversvel depende apenas das temperaturas entre as quais ela opera.
interessante notar que, inspirado no argumento de Carnot, Lord Kelvin imaginou
uma escala de temperatura que no dependesse da substncia utilizada por determinado
termmetro (ZEMANSKY, 1968). Essa escala denominada escala absoluta ou escala
termodinmica de temperatura, sendo a mais utilizada a escala Kelvin, bem como a escala
Rankine.
Baseando-se na lgica de Carnot e utilizando a escala absoluta de Kelvin, aps uma
deduo um tanto trabalhosa, pode-se chegar no seguinte resultado (ZEMANSKY, 1968):
(4.5)

O calor QH removido de uma fonte temperatura T H dividido por essa temperatura


(absoluta) igual, em mdulo, ao calor Q L adicionado a um reservatrio temperatura T L.
Clausius definiu a razo Q i/Ti como entropia (S). Pode ser visto facilmente pela equao
acima que, para uma mquina reversvel,

17

S=

QH Q L
=0
TH TL

Pelo argumento de Carnot, se o ciclo no for reversvel, necessrio que

(4.6)

QH T H
<
,
QL T L

pois no se pode extrair mais trabalho que uma mquina reversvel. Portanto, para uma
mquina no reversvel

S=

QH Q L
<0
TH TL

(4.7)

Agora, considere um processo cclico qualquer, que pode ser separado em etapas
infinitesimais absorvendo/rejeitando pores infinitesimais de calor Qi em reservatrios
temperatura Ti . Cada poro infinitesimal pode ser entendida como uma mquina de Carnot,
de modo que que o somatrio da entropia gerada por cada uma dessas mquinas dado por:
0
dS= Q
T

(4.8)

A inequao 4.8 conhecida como desigualdade de Clausius. A igualdade vale para


processos reversveis, isto :

Qrev
=0
T

(4.9)

A equao 4.9 significa que, ao se percorrer um processo cclico reversvel, a entropia


nula. Suponha que o sistema passe de um estado a para um estado b. Em seguida ele passa
de b para a. Obviamente, a variao de entropia do primeiro passo Sb Sa, enquanto a do
segundo passo Sa Sb. Portanto, a variao lquida de entropia 0, como prev a
desigualdade de Clausius. Define-se a variao de entropia de um estado a para um estado b
como
b

S b S a=
a

Q rev
T

(4.10)

18

Ou, na forma diferencial, a definio clssica de entropia dada pela equao 4.11:
(4.11)

Acabamos de encontrar a regra de que, para um ciclo reversvel, a variao de entropia


nula. Embora parea similar primeira lei, esse resultado vale apenas para processos
reversveis. No existe conservao de entropia para processos irreversveis. (FEYNMAN,
LEIGHTON, SANDS, 2013). Suponha, por exemplo, que uma pedra em uma temperatura T H
colocada em um tanque com gua temperatura T L. A primeira lei exige que o calor cedido
pela pedra seja igual ao calor absorvido pela gua. A segunda lei exige que o calor flua
espontaneamente do corpo quente para o frio, e no o contrrio. Isto :
(4.12)

O resultado geral pode ser obtido: a variao de entropia lquida para um sistema e sua
vizinhana sempre um valor positivo. Essa afirmao uma outra maneira de enunciar a
segunda lei.
4.2. Aplicaes da Termodinmica
4.2.1 Equao de Clausius-Clapeyron
Suponha que temos algum lquido (gua, por exemplo) dentro de um cilindro com
mbolo. Queremos estudar como o volume varia com a presso aplicada se mantivermos a
temperatura constante. Ao aumentarmos a presso sobre o mbolo, uma variao muito
pequena no volume do lquido observada. No entanto, se puxamos o mbolo, a presso cair
at que o lquido comece a vaporizar. Puxamos um pouco mais mbolo e mais lquido
evaporar. O vapor formado estar em equilbrio com o lquido, isto , o vapor evapora
mesma taxa em que condensa. Se puxarmos mais o mbolo, mais vapor ser necessrio para
manter a presso constante, ento mais lquido evapora. Continuamos o processo at o ponto
em que encontramos um ponto onde temos apenas vapor. A partir desse ponto, o fluido passa
a se comportar como um gs, e a presso passa a cair da mesma forma que um gs quando
expande isotermicamente (por exemplo, como a lei de Boyle pV = constante). Podemos
descrever esse processo por uma isoterma no diagrama p-V. (Fig. 4.1a)

19

Figura 4.1. (a) Isoterma do diagrama de fase de um lquido. (b) Isoterma de um lquido em
uma temperatura infinitesimalmente inferior que em (a).

Fonte: FEYNMAN, R. P.; LEIGHTON, R. B.; SANDS, M. - The Feynman Lectures on


Physics, captulo 45, Ilustrations of Thermodynamics
Considere agora o mesmo processo realizado em uma temperatura infinitesimalmente
menor T - T. Podemos operar uma mquina de Carnot que absorva calor no reservatrio de
temperatura T e rejeite calor no reservatrio de temperatura T - T.
Pela primeira lei, o trabalho obtido no ciclo o calor absorvido na fonte quente menos
o calor rejeitado na fonte fria. Isto :

W =Q H Q L =Q H (1

QL
)
QH

(4.13)

De acordo com a equao 4.5, a 4.13 pode se reescrita como:

W =Q H 1

) (

TL
T T L
=Q H H
TH
TH

(4.14)

Se QH = L o calor necessrio para vaporizar o lquido presso p e temperatura T, T H =


T e TL = T - T, podemos reescrever a expresso para o trabalho como:

W =L

( T TT+ T )=L( TT )

(4.15)

20

Mas note que o trabalho em um diagrama p-V pode ser escrito como a rea da curva
descrita pelo processo (ZEMANSKY, 1968). Portanto:
(4.16)

W = p (V GV L )

Igualando as duas expresses para o trabalho, obtemos finalmente que:

p ( V G V L )=L(

T
)
T

p
L
=
T T (V GV L)

(4.17)

(4.18)

A equao obtida conhecida como equao de Clausius-Clapeyron, e descreve como


varia a presso de vapor de uma substncia com a temperatura. Na forma diferencial, tomando
T 0, ela escrita como:
dp
L
=
dT T (V G V L )

(4.19)

A variao da energia interna UG UL pode ser escrita como o calor de vaporizao


menos o trabalho realizado, de acordo com a primeira lei, ento:
U G U L=L p(V G V L )

(4.20)

L=( U G + p V G )(U L + p V L )

(4.21)

A soma U + pV denominada entalpia (H), portanto, o calor de vaporizao pode ser


entendido como a variao da entalpia, sendo denominado entalpia de vaporizao:
L= vap H

4.2.2. Energia Livre e Relaes de Maxwell


4.2.2.1. Energia Livre

(4.22)

21

De acordo com a segunda lei, para qualquer processo espontneo, a variao de


entropia lquida do sistema e vizinhana sempre maior ou igual a zero. Considere um
sistema constitudo de N molculas em um volume constante V em uma vizinhana de
temperatura T. Suponha que o sistema possa trocar energia com a vizinhana. A variao de
entropia :
univ S= S + viz S 0

(4.23)

Se a vizinhana est temperatura constante e fornece calor Q para o sistema, de


acordo com a equao 4.10,

S+

(Q)
0
T

(4.24)

No entanto, se o sistema possui volume constante e no realiza mais nenhum tipo de


trabalho, Q = Ui. Rearranjando a inequao 4.24:

U i
0
T

U iT S 0

(4.25)

(4.26)

Definimos a grandeza F = U i TS como energia livre de Helmholtz, ou apenas


energia livre do sistema (DILL; BROMBERG, 2003). Portanto, para processos espontneos
em sistemas de volume constante, obtemos:

( F)V 0

(4.27)

Do modo anlogo ao mostrado acima, uma relao similar pode ser obtida para
processos espontneos em sistemas presso constante:
U + p V T S 0

(4.28)

22

H T S 0

(4.29)

A grandeza G = H TS definida como energia livre de Gibbs (DILL; BROMBERG,


2003). Portanto, para processos espontneos presso constante:
(4.30)

( G) p 0

4.2.2.2. Relaes de Maxwell


Com base nas definies de energia interna, entalpia, energia livre de Helmholtz e
energia livre de Gibbs, a primeira e a segunda lei da Termodinmica podem ser unificadas em
quatro relaes (ATKINS; DE PAULA, 2006):

dU i =TdS pdV

(4.31)

dH=TdS+Vdp

(4.32)

dF=SdT pdV

(4.33)

dG=SdT +Vdp

(4.34)

Sendo as quatro equaes diferenciais exatas, importantes identidades podem ser


obtidas. Essas relaes foram agrupadas no Quadro 4.1.
Quadro 4.1. Relaes entre potenciais termodinmicos e propriedades.
Ui
) =p
V S
F
(
) = p
V T
(

Ui
H
(
) =V
) =T
p S
S V
F
G
(
) =S
(
) =V
T V
p T
Fonte: prprio autor
(

H
) =T
S p
G
(
) =S
T p
(

23

Obtivemos oito relaes para quatro funes termodinmicas. Se derivarmos cada uma
delas novamente em relao varivel conjugada, de acordo com o Clculo Multivarivel
(STEWART, 2013), teremos as seguintes identidades:

( )( )
p
T
=
S
V

(4.35)

( VS )=( Tp )

(4.36)

( Tp )=( VS )

(4.37)

( VT )=( Sp )

(4.38)

Essas quatro relaes so conhecidas como relaes de Maxwell e desempenham um


importante papel na relao das variveis termodinmicas.
4.3. Princpios da Mecnica Estatstica
At agora, todas as relaes foram obtidas sem levar em conta que as substncias so
constitudas de tomos e molculas. A conexo entre a natureza molecular da matria e suas
propriedades macroscpicas constituem o escopo da Mecnica Estatstica. Em princpio,
poderamos calcular essas propriedades se soubssemos a posio e velocidade de todas as N
partculas que constituem um sistema. No entanto, teramos que resolver 3N equaes de
Newton do movimento, onde o nmero 3 indica que teramos que resolv-las para 3
coordenadas espaciais, sendo N tipicamente da ordem da constante de Avogadro (6.02x10 23).
Estamos longe de conseguir resolver um nmero to grande de equaes para um sistema,
mesmo usando computadores modernos. A abordagem da Mecnica Estatstica conceitos de
probabilidade para calcular o valor mdio de propriedades que estamos interessados.
O marco inicial da Mecnica Estatstica foi a definio de entropia por Boltzmann.
Segundo Boltzmann, a entropia de um sistema corresponde ao nmero de maneiras que
possvel organizar molculas distinguveis de modo que as restries do sistema sejam

24

satisfeitas (por exemplo, temperatura constante, volume constante, nmero de partculas


constante, etc.)
De acordo com Boltzmann, a entropia definida por:
(4.39)

S=klnW

Onde W corresponde ao nmero de maneiras que podemos organizar as molculas e k


a constante de Boltzmann e possui o valor de 1.38x10 -23 J/K.
Baseando-se nessa definio, na lei da conservao de energia e no princpio de que,
no equilbrio, a entropia mxima, DILL e BROMBERG (2003) mostram que em um sistema
temperatura T, volume V e N molculas, a probabilidade de um sistema com N estados
possuir energia Ei :
Ei
kT

(4.40)

e
P ( E i )=
Q

A equao 4.40 denominada distribuio de Boltzmann. A funo Q denominada


funo de partio e o elemento central da Mecnica Estatstica. Ela definida como a
soma de todos os fatores

Ei

e kT

de cada nvel de energia. Todas as propriedades

termodinmicas discutidas na seo anterior podem ser relacionadas com a funo de partio
(DILL; BROMBERG, 2003).
N

Ei

Q= e kT

(4.41)

4.3.1. Clculo de propriedades termodinmicas atravs da funo de partio


4.3.1.1. Energia Interna
Muitas configuraes de um sistema podem corresponder mesma condio (T, V, N),
por exemplo. O conjunto de configuraes que correspondem ao mesmo estado
termodinmico denominado ensemble. Para o ensemble (T, V, N), conhecido como
ensemble cannico, a energia interna definida como a mdia sobre os nveis de energia E i
(DILL; BROMBERG, 2003). Isto :

25

(4.42)

U i = p ( Ei ) E i
i

Utilizando a distribuio de Boltzmann para o clculo da probabilidade p(E i):


Ei

(4.43)

lnQ
T

(4.44)

1
U i = e kT E i
i Q
Note que a expresso acima pode ser reescrita no seguinte modo:

U i =k T 2
4.3.1.2. Entropia

De modo similar, a entropia pode ser escrita em termos da funo da partio. Partindo
da definio de entropia, S = klnW, Dill e Bromberg (2003) mostram que essa expresso pode
ser reescrita da seguinte forma:
(4.45)

S
= p i ln p i
k
i

Segundo os autores, a expresso pode ser desenvolvida da seguinte forma, utilizando a


distribuio de Boltzmann:

S=klnQ+

Ui
lnQ
=klnQ+kT
T
T

(4.46)

4.3.1.3. Funes termodinmicas


Baseando-se nas equaes derivadas para entropia e energia interna, Dill e Bromberg
(2003) criaram uma tabela com as principais propriedades termodinmicas escritas em termos
da funo de partio.

26

Quadro 4.2. Principais propriedades termodinmicas em termos da funo de partio para o


ensemble cannico
Energia Interna, Ui

( lnQT )
lnQ
S=klnQ +kT (
T )

4.45

F=kTlnQ

4.47

( lnQN )
F
lnQ
p=(
=kT (
V )
V )

4.48

U i =k T 2

Entropia, S

N ,V

4.46

N ,V

Energia Livre, F
Potencial Qumico,

=kT

T ,V

Presso, p

N ,T

4.49
N ,T

Fonte: DILL e BROMBERG (2003)


4.3.1.4. Tratamento estatstico de ensembles
Para descrever o comportamento de N molculas de um sistema, devemos considerar a
energia cintica e a energia potencial entre cada uma das molculas, (FRENKEL; SMIT,
2002) para ento calcularmos a funo de partio desse sistema. A funo que descreve a
energia total do sistema, considerando a energia cintica (K) e potencial (U) das molculas
denominada hamiltoniano (H). O hamiltoniano definido como:
H =K +U

(4.50)

Onde a energia cintica pode ser escrita em funo do momento q e da massa m da


molcula como:

K=

(4.51)

q2
2m

Para o ensemble cannico, podemos aproximar o somatrio por uma integral sem
cometer grande erro, pois o nmero de molculas muito grande (DILL; BROMBER, 2003).
Para uma substncia (um gs ou lquido, por exemplo) em uma caixa cbica de lado L, temos:

Q ( T ,V , N ) = e

H i (T ,V , N )
kT

d r N d qN

(4.52)

27

A integral pode ser separada em duas partes, decompondo o hamiltoniano em K e U.


Assim:

Q ( T ,V , N ) = e

q2
2mkT

dq

U( r N )
kT

dr

(4.53)

A integral da equao 4.53 que depende do momento pode ser resolvida


analiticamente e segundo Frenkel e Smit (202), a funo de partio pode ser escrita como:

Q ( T ,V , N ) =

Onde

1
3 N N !

e
0

= h 2 /(2 mkT )

U (r N )
kT

dr

(4.54)

denominado comprimento de onda trmico de

deBroglie, h a constante de Planck e tem o valor 6,626x10 -34 J/s (FRENKEL; SMIT, 2002).
Para um ensemble isobrico-isotrmico, que corresponde configuraes que
equivalem ao mesmo conjunto (T,p,N), a funo de partio, segundo Frenkel e Smit (2002)
dada por:

p
N
Q ( N , p ,T )=
dV V e

3N
kT N !

pV
kT

d r

U( r N ; L)
kT

(4.55)

Agora que temos as expresses para as funes de partio para os ensembles (T,V,N)
e (N,p,T) e temos as relaes entre propriedades termodinmicas e a funo de partio,
selecionamos uma expresso adequada para a energia potencial U.
4.4. Potencial de Lennard-Jones
Para diferentes tipos de molculas, diferentes tipos de foras intermoleculares surgem.
Entre ons, o tipo mais marcante de fora a de Coulomb, que varia como o inverso do
quadrado da distncia. Entre dipolos, isto , molculas que possuem cargas opostas, de mesma
magnitude, separadas por uma distncia, a fora proporcional ao inverso da distncia
elevada quarta potncia. Para molculas apolares, a fora passa a variar de modo mais
complicado com a distncia.
Em geral, as foras intermoleculares so expressas em termos de uma funo potencial
U(r), onde r representa a posio de uma molcula em relao a outra em algum sistema de
referncia. A relao entre a fora entre duas molculas e o potencial existente entre elas
dado por:

28

F=

(4.56)

d U (r )
dr

Fonte: NUSSENZVEIG (2002)


Em nossas simulaes, estudaremos o comportamento de fluidos que se comportam de
acordo com o potencial de Lennard-Jones. O potencial de Lennard-Jones entre duas molculas
apolares separadas por uma distncia r dado por:

U ( r ) =4

[( ) ( ) ]

12

(4.57)

FONTE: PRAUSNITZ et al (1999)

Onde

o mnimo da energia potencial e

a separao para que U(r) = 0. O

grfico de U(r) mostrado na Figura 4.2:


Figura 4.2: Representao grfica do potencial Lennard-Jones

Fonte: prprio autor


Na figura 4.2, a inclinao da reta tangente do grfico em cada ponto representa a
fora entre uma partcula localizada na origem e outra a uma distncia r. possvel perceber
que no ponto de mais baixa energia, tambm denominado posio de equilbrio, a inclinao
da reta tangente ao grfico nula, indicando que a fora resultante entre as partculas nula.
O potencial de Lennard-Jones pode ser decomposto em dois termos. O termo de sinal
positivo, elevado decima segunda potncia, o termo repulsivo. O termo de sinal negativo,
elevado sexta potncia, o termo atrativo. Derivando esses termos individualmente, o
primeiro determina as foras repulsivas e o segundo as foras atrativas. Portanto, o ponto
onde a derivada da energia potencial nula corresponde, tambm, ao ponto onde as duas
foras se igualam em mdulo.

29

dU (r )
=0
dr

U ' ( r ) =4
F rep=4

[ ( ) ( )]
d
dr r

()

d
dr r

12

12

d
dr r

F at=4

=0

()

d
dr r

Na posio de equilbrio F rep = Fat. Igualando ambos os termos, possvel obter o


seguinte resultado:
1

r
=2 61,12246 ...

O valor de varia de acordo com a molcula estudada e pode ser entendido como uma
medida do dimetro molecular.
4.5. Funo de distribuio radial
O algoritmo de Metropolis no calcula diretamente, atravs da funo de partio ou
do potencial de Lennard-Jones, as propriedades termodinmicas como a presso, energia
potencial mdia, potencial qumico. Ao invs disso, ele calcula as posies das N partculas
em uma caixa cbica de lado L, de forma que, dadas as condies iniciais, a cada ciclo do
algoritmo as molculas so rearranjadas para posies mais provveis, de acordo com o fator
de Boltzmann.
O fator de Boltzmann, por sua vez, depende indiretamente da energia interna e da
entropia. (DILL e BROMBERG) Assim, dada a funo de energia potencial e a necessidade
de a entropia ser a maior possvel no equilbrio, de acordo com a segunda lei, possvel
imaginar que a distncia entre duas molculas no seja exatamente aleatria, possua valores
mais provveis e menos provveis de acordo com o estado em que o sistema se encontre. Essa
distribuio de valores mais ou menos provveis denominada funo de distribuio radial.
Mais especificamente, a funo de distribuio radial fornece a densidade local a uma
distncia r de uma partcula, tomada pelo valor mdio ao longo do tempo. Tambm pode ser
entendida como uma medida da probabilidade de encontrar uma partcula a uma determinada
distncia, relativamente a um gs ideal.

30

Figura 4.3. Funo de distribuio radial em funo de r* = r/

Fonte: MORSALI et al.


possvel notar pelo grfico da figura 4.3. que o pico mais acentuado se d na regio
onde r* = r/ ~ 1,12446, isto , a distncia onde o potencial de Lennard-Jones o mnimo.
de se esperar que esta distncia seja a de maior probabilidade, pois, pela distribuio de
Boltzmann, os nveis de menor energia possuem maior probabilidade de estarem ocupados.
No entanto, no seria possvel, para um lquido, um pico nico nessa distncia. Isso implicaria
que todas as molculas estariam sempre na mesma posio, isto , em um ordenamento
perfeito do sistema entropia 0 que seria o modelo para um slido cristalino a 0 K.
possvel dizer, portanto, que a curvatura do grfico determinada pela entropia e as posies
dos mximos e mnimos determinadas pela energia. Picos mais acentuados indicam um
ordenamento e regies mais distribudas indicam uma desordem.
Kirkwood et al (1952), atravs de clculos de Termodinmica Estatstica, relacionaram
algumas propriedades termodinmicas com a funo de distribuio radial g(r). Essas
relaes so mostradas na figura 4.4., porm no sero discutidas em detalhe nesta reviso.
Figura 4.4. Relao entre propriedades termodinmicas de um fluido monoatmico com a
funo de distribuio radial. A primeira corresponde equao do virial para clculo da
presso ou densidade. A segunda, para o clculo da energia interna. As restantes
correspondem ao clculo do potencial qumico.

31

Fonte: Kirkwood et al.


4.6. Propriedades termodinmicas em unidades adimensionais
Em nosso trabalho, utilizaremos sempre parmetros adimensionais, onde o subscrito r
indica que a propriedade reduzida. Tambm ser usada a notao X*, onde o asterisco indica
que a propriedade X est na forma adimensional.
pr=

p 3
( 4.58)

T r=

H r=

kBT
(4.59)

H
(4.62)
N

r = 3 (4.60)

U r=

Er =

E
(4.61)
N

U
(4.63)
N

Assim, no algoritmo utilizado, os parmetros moleculares do potencial de LennardJones, sigma e epsilon, so tomados como 1. Os resultados das grandezas calculadas pela
simulao estaro, portanto, tambm estaro em unidades adimensionais, de forma que os
resultados de uma simulao para um tomo ou molcula pode ser facilmente convertido para
outra substncia no mesmo estado, sabendo-se apenas os valores dos parmetros sigma e
epsilon. Esse fato foi constatado por Pitzer e Guggenheim e conhecido como princpio dos
estados correspondentes moleculares. (GUGGENHEIM, 1945)
4.7. Algoritmo de Metropolis para o clculo de Propriedades Termodinmicas
Nessa seo, vamos ilustrar o funcionamento do algoritmo utilizado para o clculo de
propriedades termodinmicas a partir do potencial de Lennard-Jones e o algoritmo de
Metropolis usando as leis da Termodinmica Estatstica.

32

O algoritmo comea com um de partculas distribudos em uma caixa cbica em


posies iniciais aleatrias. A energia do estado inicial calculada a partir do potencial
Lennard-Jones. Um deslocamento aleatrio ento impingido nas partculas e a energia da
nova configurao calculada, sendo diferena de energia entre o novo estado e o anterior
E. Se E<0, isto , se a energia da nova configurao menor, esse passo aceito. Se E>0,
um nmero aleatrio entre 0 e 1 gerado e comparado com o fator de Boltzmann exp( E/kT). Se esse nmero aleatrio for menor que o fator exponencial, o passo aceito; caso

contrrio, rejeitado, voltando configurao anterior. Dessa forma, se o ensemble no est


na configurao de menor energia, a probabilidade da energia diminuir na prxima
configurao maior que a probabilidade de aumentar. Com ciclos o suficiente, o sistema
atingir um estado onde a probabilidade da energia aumentar na prxima configurao igual
probabilidade de diminuir. Nessa situao, a energia flutuar em torno de uma mdia. Temos
ento uma situao de equilbrio termodinmico.
Quando a situao de equilbrio atingida, todas as novas configuraes so
igualmente provveis. Isto , nessa situao a multiplicidade do ensemble mxima, portanto
a entropia mxima.
Rotinas auxiliares podem ser empregadas para calcular outras propriedades do
ensemble no equilbrio, como presso e potencial qumico, a partir da energia calculada pelo
algoritmo de Metropolis.
5. Metodologia
Um programa em cdigo aberto chamado Chemical Potentials by Monte Carlo
Simulations Model desenvolvido por Fernando Silva Fernandes foi obtido pelo site
http://www.opensourcephysics.org/. O programa permite escolher o ensemble desejado
(NVT ou NPT), o nmero de partculas (vamos usar sempre 256), a temperatura e presso
reduzidas ou temperatura e densidade reduzidas, dependendo do ensemble. O programa
tambm permite alterar parmetros como o nmero de ciclos de equilibrao, insero virtual
de partculas, e passos por display, mas no iremos modificar esses parmetros.
Os motivos pela escolha do programa foram sua celeridade, versatilidade e o fato de
ser gratuito. Inicialmente, trabalharamos com um algoritmo MatLab, porm este apresentou
longo tempo de simulao, e no disponibilizara imediatamente os valores para grandezas
termodinmicas de interesse, sendo necessrio criar rotas auxiliares de programao para
gerar esses valores. A complexidade desse procedimento fugiria do objetivo desse trabalho.

33

O programa utilizado, em poucos minutos, capaz de fornecer grandezas


termodinmicas de interesse, como a presso, densidade, potencial qumico configuracional
e excesso, bem como energias potencial, cintica e total. O programa tambm fornece uma
visualizao da regio cbica e as molculas contidas nele, atualizando suas posies a cada
passo. Outra informao importante que o programa fornece so diagramas de fase do tipo
temperatura-densidade, potencial qumico-temperatura e presso-temperatura, posicionando
tambm o estado termodinmico do fluido nos diagramas. O programa fornece tambm a
funo de distribuio radial g(r). Na figura 5.1., apresentamos algumas imagens de janelas do
programa.
Figura 5.1. Algumas janelas do programa Chemical Potential by Monte Carlo Simulations

Em nossa simulao, utilizaremos os dados calculados pelo programa para testar


algumas das relaes termodinmicas apresentadas, comparando os resultados com outros
estudos e tabelas de propriedades termodinmica. Simularemos as propriedades

34

termodinmicas do Argnio (/kB = 120 K; = 341 pm PRAUZNITS et al). O motivo da


escolha desse elemento est na sua simetria esfrica, baixa polarizabilidade (ATKINS; DE
PAULA). Assim, as foras dominantes em um sistema constitudo por tomos de argnio so
interaes de Van der Waals, que so descritas matematicamente pelo potencial de LennardJones.
6. Resultados e discusso
6.1. Curva de coexistncia
O primeiro teste consistiu no estudo da curva de coexistncia de lquido saturado do
argnio. A partir de uma tabela termodinmica, utilizamos dados de presses e temperaturas
na linha de lquido saturado, reduzimos essas variveis de acordo com o princpio dos estados
correspondentes moleculares (eqs. 4.58 a 4.60) e comparamos as densidades obtidas por uma
simulao NPT (ensemble isobrico-isotrmico) e as obtidas pela tabela.
Quadro 6.1. Simulao da densidade do argnio na curva de lquido saturado (rho_calc*).
Comparao com as densidades obtidas por uma tabela de propriedades termodinmicas
(rho_tab*). O erro mdio aproximadamente 0,4%

Fonte: do prprio autor


A tabela 6.1. mostra os resultados obtidos para a densidade do argnio na curva de
lquido saturado. rho_calc* a densidade calculada pelo simulador em cerca de 10000
ciclos do algoritmo de Metropolis. rho_tab* so os valores obtidos pela tabela de
propriedades termodinmicas, reduzidos de acordo com a eq. 4.60. T* e p* so as temperatura
e presso, reduzidas de acordo com 4.58 e 4.59, respectivamente. O erro o erro percentual
relativo. O erro mdio obtido para esses dados, especificamente, aproximadamente 0,4%,
indicando boa preciso dentro da limitao do nmero casas aps a vrgula fornecidas pelo
programa.

35

6.2. Entalpia de vaporizao (calor latente)


O segundo teste consistiu no clculo do calor latente, ou entalpia de vaporizao, do
argnio a T* = 1 (120K). Dois mtodos foram utilizados para o clculo do calor latente: o
mtodo calorimtrico, que consiste em calcular a variao da entalpia de vaporizao atravs
de dados de energia interna, presso e densidade (eqs. 4.21 e 4.22); e a equao de ClausiusClapeyron (eq. 4.18).
Para o mtodo calorimtrico, importamos da tabela de propriedades termodinmicas,
temperatura de 120 K, os valores dos volumes especficos de vapor saturado e lquido
saturado, vl e vg ([v] = m3/kg). Os valores foram convertidos para densidades reduzidas, *, e
simulaes NVT foram feitas nas duas densidades, com T*=1. Foram obtidos os valores de
energia interna e presso para esses estados e os resultados esto representados na tabela 6.2.
Quadro 6.2. Dados utilizados para o clculo do calor latente pela equao 4.21

Fonte: do prprio autor


Os dados obtidos permitiram, atravs da equao 4.21, calcular a variao de entalpia
vapH*, obtendo-se o valor de 5,27. Utilizando a equao 4.62 e convertendo o resultado para
as unidades desejadas, a variao de entalpia foi de 131,42 kJ/kg. A tabela de propriedades
termodinmicas, para essa temperatura, apresenta um valor de 127,17 kJ/kg para essa
transio. O erro relativo percentual de 3,34%, indicando uma boa representao.
Pelo mtodo de Clausius-Clapeyron, necessrio rodar a simulao em duas
temperaturas prximas, nas densidades de lquido saturado e vapor saturado, obtendo a
diferena de presso desses estados, conforme indica a figura 4.1. Com a diferena de
presses, temperaturas e a diferena de volumes de lquido saturado e vapor saturado,
podemos utilizar a equao 4.18 para obter o calor latente. A tabela 6.3 representa os
resultados obtidos para 120 K e 116 K e as densidades obtidas pela tabela de propriedades
termodinmicas, todas reduzidas pelas equaes 4.58 a 4.60.

36

Quadro 6.3. Calor latente atravs da equao de Clausius-Clapeyron

Pela equao de Clausius-Clapeyron, foi possvel obter um calor latente de 112,16


kJ/kg. O resultado obtido por esse mtodo apresentou um erro relativo percentual de 11,8%.
Um possvel motivo para um erro maior que no clculo calorimtrico o fato do simulador
apresentar um limitado nmero de casas aps a vrgula, resultando numa incerteza para
presses baixas.
6.3. Entropia de vaporizao
A partir da inequao 4.29, tomando o equilbrio termodinmico como a igualdade,
temos que a variao da entropia especfica entre a fase lquida e gasosa vapS = vapH/T.
Tomando o calor latente obtido pelo mtodo calorimtrico, dividindo pela temperatura de 120
K, obtemos uma variao de entropia especfica de 1,0951 kJ/kgK. A tabela de propriedades
termodinmicas mostra que, a essa temperatura, esse valor seria 1,0598 kJ/kgK. O erro
relativo percentual entre os dois valores de 3,33%. O erro condizente com o erro obtido no
clculo do calor latente pelo mtodo calorimtrico.
6.4. Grfico da energia de Gibbs molar vs. Temperatura
O quadro 4.1. mostra que a entropia o negativo da derivada parcial da energia de
Gibbs pela temperatura. Desejamos avaliar qualitativamente o comportamento da curva de
energia livre molar com a temperatura.
Foi escolhida a temperatura de 120 K e presso 1,215 MPa, um dos pontos da curva de
lquido saturado. Fixando-se a presso, simulaes NPT foram rodadas para temperaturas
maiores e menores que 120 K, isto , em fase lquida e gasosa. esperado que entre uma fase
e outra a entropia varie bruscamente.
Para o clculo da energia de Gibbs molar, utilizamos o potencial qumico calculado
no simulador pelo mtodo de insero virtual de partcula de Widow. Isso possvel ser feito

37

pois o potencial qumico a energia de Gibbs molar para uma substncia pura presso e
temperatura constante.

Figura 6.1. Grfico da energia de Gibbs molar, Gm*, em funo da temperatura, T*

Fonte: do prprio autor


O grfico da Figura 6.1. mostra a variao abrupta da entropia molar atravs da
variao da inclinao em torno do ponto T*=1.
O comportamento qualitativo do grfico condiz com o esperado, uma vez que, para a
presso fixa de 1,215 MPa, temperaturas menores que 120 K (T*<1) devem corresponder
fase lquida e temperaturas maiores devem corresponder a fase de vapor. De acordo com a
equao 4.39, a entropia uma medida da multiplicidade de estados de mesma energia. Ora,
natural que a fase lquida apresente uma entropia molar menor e a fase vapor apresente uma
entropia molar maior, uma vez que a fase lquida mais densa possui um volume molar
menor possuindo menor multiplicidade de estados equivalentes em energia. J a fase vapor,
com um volume molar maior, apresenta maior multiplicidade de estados equivalentes. As duas
observaes concordam com o grfico, uma vez que na regio de lquido a inclinao do
grfico menor e, na regio de vapor, maior. Ambas decrescentes, em funo do sinal
negativo. O resultado obtido pode ser encontrado em ATKINS, P.; PAULA, J. D.

38

Figura 6.2. Grfico do comportamento do potencial qumico em funo da temperatura


durante mudanas de fase

Fonte: ATKINS, P.; PAULA, J. D. - Fundamentos de Fsico-Qumica, 8a edio.


Quantitativamente, o valor obtido para essa transio, obtido atravs da diferena entre
as inclinaes e convertido em unidades de entropia especfica, foi de 1,502 kJ/kgK,
apresentando um erro relativo percentual de 41,6% em relao ao valor de 1,0598 kJ/kgK
obtido na simulao anterior. O resultado quantitativo no representa to bem o valor
esperado, sendo necessrio um estudo mais aprofundado do algoritmo para entender essa
discrepncia.
7. Concluso
Atravs deste trabalho, foi possvel mostrar como as ferramentas da Termodinmica
Estatstica, aliada com algoritmos de Modelagem Molecular, podem ser uma boa alternativa
para a compreenso e o ensino da Termodinmica em cursos de Engenharia Qumica. Atravs
do estudo de simulaes, possvel compreender mais claramente como interaes
moleculares determinam o comportamento de sistemas termodinmicos.

39

Os testes deste trabalho foram feitos no intuito de ilustrar a aplicabilidade destas


ferramentas, sem a preteno de obter uma representao altamente precisa. Para tal, modelos
fsicos e computacionais mais sofisticados deveriam ser utilizados. No entanto, para o caso do
argnio, algumas simulaes representaram bem os resultados encontrados em tabelas
termodinmicas. Neste trabalho, o foco foi o comportamento qualitativo dos sistemas
termodinmicos, isto , dos ensembles cannico e isobrico-isotrmico.
Trabalhos futuros na rea podero contribuir ainda mais para o entendimento e
simulaes quantitativamente melhores de sistemas termodinmicos mais complexos,
possivelmente formando uma metodologia alternativa a dados experimentais.
8. Possveis trabalhos futuros

Estudo de outros mtodos de modelagem molecular, como a Dinmica Molecular e a


Qumica Quntica, e como aplic-los na Engenharia Qumica.

Estudo de sistemas compostos por molculas de natureza distinta, tal como molculas
lineares (existem estudos sobre o modelo Lennard-Jones com dois centros de
interao) e outras geometrias; molculas polares, tal como dipolos e configuraes
mais complexas; ons em soluo, e assim por diante.

Estudo de outros ensembles estatsticos, tal como o grande-cannico (potencial


qumico, nmero de molculas e temperatura constantes).

40

9. Referncias Bibliogrficas
ALLEN, M.P.; TILDESLEY, D.. Computer Simulation of Liquids. Oxford: Clarendon
Press, 1987.
ATKINS, P.; PAULA, J. D. Physical-Chemistry. 8. ed. Oxford: Oxford, 2006.
CARNOT, Sadi. Reflections on the Motive Power of Heat. New York: John Wiley & Sons,
1893.
DVILA, S. G.; STRAGEVITCH, L. Aplicaes da Termodinmica Estatstica na
Engenharia Qumica. So Paulo: Qumica Nova, 1994. Disponvel em:
http://quimicanova.sbq.org.br/imagebank/pdf/Vol17No6_513_v17_n6_(12).pdf. Acesso em:
17/10/2015
DILL, Ken; BROMBERG, Sarina. Molecular Driving Forces 2. ed. New York: Garland
Science, 2003.
FEYNMAN, R. P.; LEIGHTON, R. B.; SANDS, M. The Feynman Lectures on Physics.
Pasadena: California Institute of Technology, 2013. Disponvel em:
http://www.feynmanlectures.caltech.edu. Acesso em: 10/10/2015
FLORY, Paul J.; VOLKENSTEIN, M. Statistical mechanics of chain molecules. : John
Wiley & Sons, 1969.
FRENKEL, Daan; SMIT, Berend. Understanding Molecular Simulations: From Algorithms
to Applications. 2. ed. San Diego, California: Academic Press, 2002.
GUGGENHEIM, E. A.. The Principle of Corresponding States: J. Chem. Phys. 13, 253.
Londres: Aip, 1945.
HIEMANZ, Paul C.; RAJAGOPALAN, Raj. Principles of Colloid and Surface Chemistry.
3. ed. Boca Raton, Florida: Taylor & Francis Group, 1997. p. 105-142.
KIRKWOOD, John G.; BOGGS, Elizabeth Monroe. The Radial Distribution Function in
Liquids: J. Chem. Phys. 10, 394. New York: Aip, 1942.
LANGMUIR, Irving. The Adsorption of Gases on Plane Surfaces of Glass, Mica and
Platinum. New York: J. Am. Chem. Soc., 1918. p. 13611403.

41

NUSSENZVEIG, H. Moyses. Curso de Fsica Bsica: Mecnica. 4. ed. So Paulo: Blucher,


2002.
PRAUSNITZ, J. M.; LICHTENTHALER, R. N.; AZEVEDO, E. Z. Molecular
Thermodynamics of Fluid-Phase Equilibria. New Jersey: Prentice Hall, 1999.
RAGONE, David V. Thermodynamics of Materials. Cambridge: Wiley & Sons, 1995.
REIF, F. Berkeley Physics Course: Statistical Physics. Newton, Massachussets: Mcgraw-hill,
1965.
STEWART, James. Clculo - Volume 2. Boston, Massachussets: Cenage Learning, 2013.
10. Algoritmos NVT e NPT
a) Algoritmo Fortran NVT (ALLEN; TILDESLEY, 1987)
********************************************************************
************
** FICHE F.11. CONSTANT-NVT MONTE CARLO FOR LENNARD JONES ATOMS
**
** This FORTRAN code is intended to illustrate points made in the
text.
**
** To our knowledge it works correctly. However it is the
responsibility of **
** the user to test it, if it is to be used in a research
application.
**
********************************************************************
************

PROGRAM MCNVT
COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** MONTE CARLO SIMULATION PROGRAM IN THE CONSTANT-NVT ENSEMBLE.
**
C
**
**
C
** THIS PROGRAM TAKES A CONFIGURATION OF LENNARD JONES ATOMS
**
C
** AND PERFORMS A CONVENTIONAL NVT MC SIMULATION. THE BOX IS OF
**
C
** UNIT LENGTH, -0.5 TO +0.5 AND THERE ARE NO LOOKUP TABLES.
**
C
**
**
C
** PRINCIPAL VARIABLES:
**
C
**
**
C
** INTEGER N
NUMBER OF MOLECULES
**
C
** INTEGER NSTEP
MAXIMUM NUMBER OF CYCLES
**

42

C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**
C
**

** REAL

RX(N),RY(N),RZ(N)

POSITIONS

** REAL

DENS

REDUCED DENSITY

** REAL

TEMP

REDUCED TEMPERATURE

** REAL

SIGMA

REDUCED LJ DIAMETER

** REAL

RMIN

MINIMUM REDUCED PAIR SEPARATION

** REAL

RCUT

REDUCED CUTOFF DISTANCE

** REAL

DRMAX

REDUCED MAXIMUM DISPLACEMENT

** REAL

THE POTENTIAL ENERGY

** REAL

THE VIRIAL

** REAL

PRES

THE PRESSURE

**
** USAGE:
**
** THE PROGRAM TAKES IN A CONFIGURATION OF ATOMS
** AND RUNS A MONTE CARLO SIMULATION AT THE GIVEN TEMPERATURE
** FOR THE SPECIFIED NUMBER OF CYCLES.
**
** UNITS:
**
** THE PROGRAM USES LENNARD-JONES UNITS FOR USER INPUT AND
** OUTPUT BUT CONDUCTS THE SIMULATION IN A BOX OF UNIT LENGTH.
** FOR EXAMPLE, FOR A BOXLENGTH L, AND LENNARD-JONES PARAMETERS
** EPSILON AND SIGMA, THE UNITS ARE:
**
**

PROPERTY

LJ

UNITS

PROGRAM UNITS

**

TEMP

EPSILON/K

EPSILON/K

**

PRES

EPSILON/SIGMA**3

EPSILON/L**3

**

EPSILON

EPSILON

**

DENS

1/SIGMA**3

1/L**3

**

**

43

C
** ROUTINES REFERENCED:
**
C
**
**
C
** SUBROUTINE SUMUP ( RCUT, RMIN, SIGMA, OVRLAP, V, W )
**
C
**
CALCULATES THE TOTAL POTENTIAL ENERGY FOR A CONFIGURATION
**
C
** SUBROUTINE ENERGY ( RXI, RYI, RZI, I, RCUT, SIGMA, V, W )
**
C
**
CALCULATES THE POTENTIAL ENERGY OF ATOM I WITH ALL THE
**
C
**
OTHER ATOMS IN THE LIQUID
**
C
** SUBROUTINE READCN (CNFILE )
**
C
**
READS IN A CONFIGURATION
**
C
** SUBROUTINE WRITCN ( CNFILE )
**
C
**
WRITES OUT A CONFIGURATION
**
C
** REAL FUNCTION RANF ( DUMMY )
**
C
**
RETURNS A UNIFORM RANDOM NUMBER BETWEEN ZERO AND ONE
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL

RX(N), RY(N), RZ(N)

REAL

DRMAX, DENS, TEMP, DENSLJ, SIGMA, RMIN, RCUT,

REAL
REAL
REAL
REAL
REAL
REAL
INTEGER
LOGICAL
CHARACTER

RANF, DUMMY, ACM, ACATMA, PI, RATIO, SR9, SR3


V, VNEW, VOLD, VEND, VN, DELTV, DELTVB, VS
W, WEND, WNEW, WOLD, PRES, DELTW, WS, PS
VLRC, VLRC6, VLRC12, WLRC, WLRC6, WLRC12
RXIOLD, RYIOLD, RZIOLD, RXINEW, RYINEW, RZINEW
AVV, AVP, AVW, ACV, ACP, ACVSQ, ACPSQ, FLV, FLP
STEP, I, NSTEP, IPRINT, ISAVE, IRATIO
OVRLAP
TITLE*80, CNFILE*30

BETA

PARAMETER ( PI = 3.1415927 )
C
****************************************************************
C

** READ INPUT DATA **


WRITE(*,'(1H1,'' **** PROGRAM MCLJ ****

''/)')
WRITE(*,'('' CONSTANT-NVT MONTE CARLO PROGRAM
'' )')
WRITE(*,'('' FOR LENNARD JONES ATOMS
'')')
WRITE(*,'('' ENTER THE RUN TITLE
'')')
READ (*,'(A)') TITLE

44

WRITE(*,'('' ENTER NUMBER OF CYCLES


'')')
READ (*,*) NSTEP
WRITE(*,'('' ENTER NUMBER OF STEPS BETWEEN OUTPUT LINES
'')')
READ (*,*) IPRINT
WRITE(*,'('' ENTER NUMBER OF STEPS BETWEEN DATA SAVES
'')')
READ (*,*) ISAVE
WRITE(*,'('' ENTER INTERVAL FOR UPDATE OF MAX. DISPL.
'')')
READ (*,*) IRATIO
WRITE(*,'('' ENTER THE CONFIGURATION FILE NAME
'')')
READ (*,'(A)') CNFILE
WRITE(*,'('' ENTER THE FOLLOWING IN LENNARD-JONES UNITS
'',/)')
WRITE(*,'('' ENTER THE DENSITY
'')')
READ (*,*) DENS
WRITE(*,'('' ENTER THE TEMPERATURE
'')')
READ (*,*) TEMP
WRITE(*,'('' ENTER THE POTENTIAL CUTOFF DISTANCE
'')')
READ (*,*) RCUT
C

** WRITE INPUT DATA **


WRITE(*,'(
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''

//1X
NUMBER OF ATOMS
NUMBER OF CYCLES
OUTPUT FREQUENCY
SAVE FREQUENCY
RATIO UPDATE FREQUENCY
CONFIGURATION FILE NAME
TEMPERATURE
DENSITY
POTENTIAL CUTOFF

,A
'',I10
'',I10
'',I10
'',I10
'',I10
'',A
'',F10.4
'',F10.4
'',F10.4

** READ INITIAL CONFIGURATION **


CALL READCN ( CNFILE )

** CONVERT INPUT DATA TO PROGRAM UNITS **


BETA
SIGMA
RMIN
RCUT
DRMAX
DENSLJ
DENS

=
=
=
=
=
=
=

1.0 / TEMP
( DENS / REAL ( N ) ) ** ( 1.0 / 3.0 )
0.70 * SIGMA
RCUT * SIGMA
0.15 * SIGMA
DENS
DENS / ( SIGMA ** 3 )

IF ( RCUT .GT. 0.5 ) STOP ' CUT-OFF TOO LARGE '


C

** ZERO ACCUMULATORS **
ACV
ACVSQ
ACP
ACPSQ
FLV

=
=
=
=
=

0.0
0.0
0.0
0.0
0.0

)')
)')
)')
)')
)')
)')
)')
)')
)')
)')

TITLE
N
NSTEP
IPRINT
ISAVE
IRATIO
CNFILE
TEMP
DENS
RCUT

45

FLP
= 0.0
ACM
= 0.0
ACATMA = 0.0
C
C

** CALCULATE LONG RANGE CORRECTIONS


**
** SPECIFIC TO THE LENNARD JONES FLUID **
SR3 = ( SIGMA / RCUT ) ** 3
SR9 = SR3 ** 3
VLRC12
VLRC6
VLRC
WLRC12
WLRC6
WLRC

=
8.0 * PI * DENSLJ * REAL ( N ) * SR9 / 9.0
= - 8.0 * PI * DENSLJ * REAL ( N ) * SR3 / 3.0
=
VLRC12 + VLRC6
=
4.0 * VLRC12
=
2.0 * VLRC6
=
WLRC12 + WLRC6

** WRITE OUT SOME USEFUL INFORMATION **


WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''
WRITE(*,'(''

SIGMA/BOX
RMIN/BOX
RCUT/BOX
LRC FOR
LRC FOR

=
=

= '',F10.4)') SIGMA
= '',F10.4)') RMIN
= '',F10.4)') RCUT
'',F10.4)') VLRC
'',F10.4)') WLRC

** CALCULATE INITIAL ENERGY AND CHECK FOR OVERLAPS **


CALL SUMUP ( RCUT, RMIN, SIGMA, OVRLAP, V, W )
IF ( OVRLAP ) STOP ' OVERLAP IN INITIAL CONFIGURATION '
VS
WS
PS
PS

=
=
=
=

( V + VLRC ) / REAL ( N )
( W + WLRC ) / REAL ( N )
DENS * TEMP + W + WLRC
PS * SIGMA ** 3

WRITE(*,'('' INITIAL V
WRITE(*,'('' INITIAL W
WRITE(*,'('' INITIAL P

=
=
=

WRITE(*,'(//'' START OF MARKOV CHAIN


WRITE(*,'('' NMOVE
RATIO
V/N

'', F10.4 )' ) VS


'', F10.4 )' ) WS
'', F10.4 )' ) PS
''//)')
P''/)')

C
*******************************************************************
C
** LOOPS OVER ALL CYCLES AND ALL MOLECULES
**
C
*******************************************************************
DO 100 STEP = 1, NSTEP
DO 99 I = 1, N
RXIOLD = RX(I)
RYIOLD = RY(I)
RZIOLD = RZ(I)
C

** CALCULATE THE ENERGY OF I IN THE OLD CONFIGURATION **


:

CALL ENERGY ( RXIOLD, RYIOLD, RZIOLD, I, RCUT, SIGMA,


VOLD, WOLD
)

46

** MOVE I AND PICKUP THE CENTRAL IMAGE **


RXINEW = RXIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *

DRMAX
RYINEW = RYIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *
DRMAX
RZINEW = RZIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *
DRMAX
RXINEW = RXINEW - ANINT ( RXINEW )
RYINEW = RYINEW - ANINT ( RYINEW )
RZINEW = RZINEW - ANINT ( RZINEW )
C

** CALCULATE THE ENERGY OF I IN THE NEW CONFIGURATION **


:

CALL ENERGY ( RXINEW, RYINEW, RZINEW, I, RCUT, SIGMA,


VNEW, WNEW
)
** CHECK FOR ACCEPTANCE **
DELTV = VNEW - VOLD
DELTW = WNEW - WOLD
DELTVB = BETA * DELTV
IF ( DELTVB .LT. 75.0 ) THEN
IF ( DELTV .LE. 0.0 ) THEN
V
W
RX(I)
RY(I)
RZ(I)
ACATMA

=
=
=
=
=
=

V + DELTV
W + DELTW
RXINEW
RYINEW
RZINEW
ACATMA + 1.0

ELSEIF ( EXP ( - DELTVB ) .GT. RANF ( DUMMY ) )


THEN
V
W
RX(I)
RY(I)
RZ(I)
ACATMA

=
=
=
=
=
=

V + DELTV
W + DELTW
RXINEW
RYINEW
RZINEW
ACATMA + 1.0

ENDIF
ENDIF
ACM = ACM + 1.0
C

** CALCULATE INSTANTANEOUS VALUES **


VN
PRES

** CONVERT PRESSURE TO LJ UNITS **


PRES

= ( V + VLRC ) / REAL ( N )
= DENS * TEMP + W + WLRC

= PRES * SIGMA ** 3

** ACCUMULATE AVERAGES **
ACV

= ACV

+ VN

47

ACP
ACVSQ
ACPSQ

= ACP
+ PRES
= ACVSQ + VN * VN
= ACPSQ + PRES * PRES

C
*************************************************************
C
** ENDS LOOP OVER ATOMS
**
C
*************************************************************
99
C

CONTINUE
** PERFORM PERIODIC OPERATIONS

**

IF ( MOD ( STEP, IRATIO ) .EQ. 0 ) THEN


C

** ADJUST MAXIMUM DISPLACEMENT **


RATIO = ACATMA / REAL ( N * IRATIO )
IF ( RATIO .GT. 0.5 ) THEN
DRMAX

= DRMAX

* 1.05

= DRMAX

* 0.95

ELSE
DRMAX
ENDIF
ACATMA = 0.0
ENDIF
IF ( MOD ( STEP, IPRINT ) .EQ. 0 ) THEN
C

** WRITE OUT RUNTIME INFORMATION **


WRITE(*,'(I8,3F12.6)') INT(ACM), RATIO, VN, PRES
ENDIF
IF ( MOD ( STEP, ISAVE ) .EQ. 0 ) THEN

** WRITE OUT THE CONFIGURATION AT INTERVALS **


CALL WRITCN ( CNFILE )
ENDIF

100

CONTINUE

C
*******************************************************************
C
** ENDS THE LOOP OVER CYCLES
**
C
*******************************************************************
WRITE(*,'(//'' END OF MARKOV CHAIN
C

''//)')

** CHECKS FINAL VALUE OF THE POTENTIAL ENERGY IS CONSISTENT **

48

CALL SUMUP ( RCUT, RMIN, SIGMA, OVRLAP, VEND, WEND )


IF ( ABS ( VEND - V ) .GT. 1.0E-03 ) THEN
WRITE(*,'('' PROBLEM WITH ENERGY,'')')
WRITE(*,'('' VEND
= '', E20.6)') VEND
WRITE(*,'('' V
= '', E20.6)') V
ENDIF
C

** WRITE OUT THE FINAL CONFIGURATION FROM THE RUN **


CALL WRITCN ( CNFILE )

** CALCULATE AND WRITE OUT RUNNING AVERAGES **


AVV
ACVSQ
AVP
ACPSQ

=
=
=
=

ACV / ACM
( ACVSQ / ACM ) - AVV ** 2
ACP / ACM
( ACPSQ / ACM ) - AVP ** 2

** CALCULATE FLUCTUATIONS **
IF ( ACVSQ .GT. 0.0 ) FLV = SQRT ( ACVSQ )
IF ( ACPSQ .GT. 0.0 ) FLP = SQRT ( ACPSQ )
WRITE(*,'(/'' AVERAGES ''/ )')
WRITE(*,'(''
= '',F10.6)') AVV
WRITE(*,'(''
= '',F10.6)') AVP
WRITE(*,'(/'' FLUCTUATIONS ''/)')
WRITE(*,'('' FLUCTUATION IN = '',F10.6)') FLV
WRITE(*,'('' FLUCTUATION IN
= '',F10.6)') FLP
WRITE(*,'(/'' END OF SIMULATION '')')
STOP
END

SUBROUTINE SUMUP ( RCUT, RMIN, SIGMA, OVRLAP, V, W )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** CALCULATES THE TOTAL POTENTIAL ENERGY FOR A CONFIGURATION.
**
C
**
**
C
** PRINCIPAL VARIABLES:
**
C
**
**
C
** INTEGER N
THE NUMBER OF ATOMS
**
C
** REAL
RX(N(,RY(N),RZ(N) THE POSITIONS OF THE ATOMS
**

49

C
** REAL
V
THE POTENTIAL ENERGY
**
C
** REAL
W
THE VIRIAL
**
C
** LOGICAL OVRLAP
TRUE FOR SUBSTANTIAL ATOM OVERLAP
**
C
**
**
C
** USAGE:
**
C
**
**
C
** THE SUBROUTINE RETURNS THE TOTAL POTENTIAL ENERGY AT THE
**
C
** BEGINNING AND END OF THE RUN.
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL
RX(N), RY(N), RZ(N)
REAL
SIGMA, RMIN, RCUT, V, W
LOGICAL
OVRLAP
REAL
REAL
INTEGER

RCUTSQ, RMINSQ, SIGSQ, RXIJ, RYIJ, RZIJ


RXI, RYI, RZI, VIJ, WIJ, SR2, SR6, RIJSQ
I, J

C
*******************************************************************

OVRLAP
RCUTSQ
RMINSQ
SIGSQ

=
=
=
=

.FALSE.
RCUT * RCUT
RMIN * RMIN
SIGMA * SIGMA

V
W

= 0.0
= 0.0

** LOOP OVER ALL THE PAIRS IN THE LIQUID **


DO 100 I = 1, N - 1
RXI = RX(I)
RYI = RY(I)
RZI = RZ(I)
DO 99 J = I + 1, N
RXIJ
RYIJ
RZIJ

= RXI - RX(J)
= RYI - RY(J)
= RZI - RZ(J)

** MINIMUM IMAGE THE PAIR SEPARATIONS **


RXIJ
RYIJ
RZIJ
RIJSQ

=
=
=
=

RXIJ
RYIJ
RZIJ
RXIJ

ANINT ( RXIJ )
ANINT ( RYIJ )
ANINT ( RZIJ )
RXIJ + RYIJ * RYIJ + RZIJ * RZIJ

IF ( RIJSQ .LT. RMINSQ ) THEN

50

OVRLAP = .TRUE.
RETURN
ELSEIF ( RIJSQ .LT. RCUTSQ ) THEN
SR2
SR6
VIJ
WIJ
V
W

=
=
=
=
=
=

SIGSQ / RIJSQ
SR2 * SR2 * SR2
SR6 * ( SR6 - 1.0 )
SR6 * ( SR6 - 0.5 )
V + VIJ
W + WIJ

ENDIF
99
100

CONTINUE
CONTINUE
V = 4.0 * V
W = 48.0 * W / 3.0
RETURN
END

SUBROUTINE ENERGY ( RXI, RYI, RZI, I, RCUT, SIGMA, V, W )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** RETURNS THE POTENTIAL ENERGY OF ATOM I WITH ALL OTHER ATOMS.
**
C
**
**
C
** PRINCIPAL VARIABLES:
**
C
**
**
C
** INTEGER I
THE ATOM OF INTEREST
**
C
** INTEGER N
THE NUMBER OF ATOMS
**
C
** REAL
RX(N),RY(N),RZ(N) THE ATOM POSITIONS
**
C
** REAL
RXI,RYI,RZI
THE COORDINATES OF ATOM I
**
C
** REAL
V
THE POTENTIAL ENERGY OF ATOM I
**
C
** REAL
W
THE VIRIAL OF ATOM I
**
C
**
**
C
** USAGE:
**
C
**
**
C
** THIS SUBROUTINE IS USED TO CALCULATE THE CHANGE OF ENERGY
**
C
** DURING A TRIAL MOVE OF ATOM I. IT IS CALLED BEFORE AND
**

51

C
** AFTER THE RANDOM DISPLACEMENT OF I.
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL
RX(N), RY(N), RZ(N)
REAL
RCUT, SIGMA, RXI, RYI, RZI, V, W
INTEGER
I
REAL
REAL
INTEGER

RCUTSQ, SIGSQ, SR2, SR6


RXIJ, RYIJ, RZIJ, RIJSQ, VIJ, WIJ
J

C
******************************************************************
RCUTSQ = RCUT * RCUT
SIGSQ = SIGMA * SIGMA
V
W
C

= 0.0
= 0.0

** LOOP OVER ALL MOLECULES EXCEPT I

**

DO 100 J = 1, N
IF ( I .NE. J ) THEN
RXIJ
RYIJ
RZIJ

= RXI - RX(J)
= RYI - RY(J)
= RZI - RZ(J)

RXIJ
RYIJ
RZIJ

= RXIJ - ANINT ( RXIJ )


= RYIJ - ANINT ( RYIJ )
= RZIJ - ANINT ( RZIJ )

RIJSQ = RXIJ * RXIJ + RYIJ * RYIJ + RZIJ * RZIJ


IF ( RIJSQ .LT. RCUTSQ ) THEN
SR2
SR6
VIJ
WIJ
V
W

=
=
=
=
=
=

SIGSQ / RIJSQ
SR2 * SR2 * SR2
SR6 * ( SR6 - 1.0 )
SR6 * ( SR6 - 0.5 )
V + VIJ
W + WIJ

ENDIF
ENDIF
100

CONTINUE
V = 4.0 * V
W = 48.0 * W / 3.0
RETURN
END

52

REAL FUNCTION RANF ( DUMMY )


C
*******************************************************************
C
** RETURNS A UNIFORM RANDOM VARIATE IN THE RANGE 0 TO 1.
**
C
**
**
C
**
***************
**
C
**
** WARNING **
**
C
**
***************
**
C
**
**
C
** GOOD RANDOM NUMBER GENERATORS ARE MACHINE SPECIFIC.
**
C
** PLEASE USE THE ONE RECOMMENDED FOR YOUR MACHINE.
**
C
*******************************************************************
INTEGER
L, C, M
PARAMETER ( L = 1029, C = 221591, M = 1048576 )
INTEGER
REAL
SAVE
DATA

SEED
DUMMY
SEED
SEED / 0 /

C
*******************************************************************
SEED = MOD ( SEED * L + C, M )
RANF = REAL ( SEED ) / M
RETURN
END

SUBROUTINE READCN ( CNFILE )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** SUBROUTINE TO READ IN THE CONFIGURATION FROM UNIT 10
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
CHARACTER
CNFILE*(*)
REAL
RX(N), RY(N), RZ(N)
INTEGER
CNUNIT
PARAMETER ( CNUNIT = 10 )
INTEGER

NN

53

C
********************************************************************
:

OPEN ( UNIT = CNUNIT, FILE = CNFILE, STATUS = 'OLD',


FORM = 'UNFORMATTED'
)
READ ( CNUNIT ) NN
IF ( NN .NE. N ) STOP 'N ERROR IN READCN'
READ ( CNUNIT ) RX, RY, RZ
CLOSE ( UNIT = CNUNIT )
RETURN
END

SUBROUTINE WRITCN ( CNFILE )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** SUBROUTINE TO WRITE OUT THE CONFIGURATION TO UNIT 10
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
CHARACTER
CNFILE*(*)
REAL
RX(N), RY(N), RZ(N)
INTEGER
CNUNIT
PARAMETER ( CNUNIT = 10 )
C
********************************************************************
:

OPEN ( UNIT = CNUNIT, FILE = CNFILE, STATUS = 'UNKNOWN',


FORM = 'UNFORMATTED'
)
WRITE ( CNUNIT ) N
WRITE ( CNUNIT ) RX, RY, RZ
CLOSE ( UNIT = CNUNIT )
RETURN
END

b) Algoritmo Fortran NPT (ALLEN, TILDESLEY, 1987)


********************************************************************
************
** FICHE F.12. CONSTANT-NPT MONTE CARLO ALGORITHM.
**
** This FORTRAN code is intended to illustrate points made in the
text.
**
** To our knowledge it works correctly. However it is the
responsibility of **
** the user to test it, if it is to be used in a research
application.
**

54

********************************************************************
************
PROGRAM MCNPT
COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** MONTE CARLO SIMULATION IN THE CONSTANT-NPT ENSEMBLE.
**
C
**
**
C
** THIS PROGRAM TAKES A CONFIGURATION OF LENNARD JONES ATOMS
**
C
** AND PERFORMS A MONTE CARLO SIMULATION AT CONSTANT NPT. THE
**
C
** BOX IS IN UNITS OF SIGMA THE LENNARD JONES DIAMETER.
**
C
** THERE ARE NO LOOKUP TABLES INCLUDED.
**
C
**
**
C
** REFERENCE:
**
C
**
**
C
** MCDONALD, CHEM. PHYS. LETT. 3, 241, 1969.
**
C
**
**
C
** PRINCIPAL VARIABLES:
**
C
**
**
C
** INTEGER N
NUMBER OF MOLECULES
**
C
** REAL
RX(N),RY(N),RZ(N)
POSITIONS
**
C
** REAL
VOL
VOLUME
**
C
** REAL
BOX
BOX LENGTH
**
C
** REAL
DENS
REDUCED DENSITY
**
C
** REAL
TEMP
REDUCED TEMPERATURE
**
C
** REAL
SIGMA
REDUCED LJ DIAMETER
**
C
** REAL
DRMAX
MAXIMUM DISPLACEMENT
**
C
** REAL
V
THE POTENTIAL ENERGY
**
C
** REAL
W
THE VIRIAL
**
C
** REAL
PRESUR
REQUIRED PRESSURE
**
C
** REAL
DBOXMX
MAX CHANGE IN BOX
**
C
**
**
C
** USAGE:
**

55

C
**
**
C
** CONDUCTS MONTE CARLO SIMULATION AT CONSTANT PRESSURE FOR A
**
C
** SPECIFIED NUMBER OF CYCLES FROM A GIVEN INITIAL
CONFIGURATION.**
C
**
**
C
** UNITS:
**
C
**
**
C
** THIS PROGRAM USES THE USUAL REDUCED LJ UNITS. IN PARTICULAR
**
C
** THE BOX LENGTH IS IN UNITS OF SIGMA.
**
C
**
**
C
** ROUTINES REFERENCED:
**
C
**
**
C
** SUBROUTINE ENERGY ( RXI, RYI, RZI, I, RCUT, BOX, V12, V6,
**
C
**
:
W12, W6 )
**
C
**
CALCULATES THE ENERGY AND VIRIAL FOR ATOM I IN THE FLUID
**
C
** REAL FUNCTION RANF ( DUMMY )
**
C
**
RETURNS A UNIFORM RANDOM NUMBER BETWEEN ZERO AND ONE
**
C
** SUBROUTINE READCN ( CNFILE, BOX )
**
C
**
READS IN CONFIGURATION AND BOX VARIABLES
**
C
** SUBROUTINE SUMUP ( RCUT, RMIN, OVRLAP, BOX, V12, V6, W12, W6
)**
C
**
CALCULATES POTENTIAL AND VIRIAL FOR A CONFIGURATION
**
C
** SUBROUTINE WRITCN ( CNFILE, BOX )
**
C
**
WRITES OUT CONFIGURATION AND BOX VARIABLES
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL

RX(N), RY(N), RZ(N)

INTEGER
REAL
REAL
REAL
REAL
REAL

STEP, NSTEP, IPRINT, IRATIO, IRATB, I


ACV, ACP, ACD, ACM, ACATMA, ACBOXA, NORM
ACVSQ, ACPSQ, ACDSQ
AVV, AVP, AVD
FLV, FLP, FLD
DENS, TEMP, RCUT, RMIN, PRESUR, BOX, VOL, PRES,

REAL
REAL
REAL
REAL

BOXINV, BOXNEW, RATBOX, RAT12, RAT6, DVOL, DPV


DELTHB, DRMAX, DBOXMX, BETA, RANF, DUMMY, RATIO
RRBOX, BRATIO, DELTVB, RCUTN
RXIOLD, RYIOLD, RZIOLD, RXINEW, RYINEW, RZINEW

VN

56

REAL
REAL
REAL
REAL
REAL
CHARACTER
LOGICAL

V12OLD, V6OLD, V12NEW, V6NEW, VS


W12OLD, W6OLD, W12NEW, W6NEW, WS, PS
DELV12, DELV6, DELW12, DELW6, DELTV
V6, W6, V12, W12, VLRC, VLRCN, WLRC, WLRCN
SR3, SR9, VLRC6, WLRC6, VLRC12, WLRC12, PI
TITLE*80, CNFILE*30
OVRLAP

PARAMETER ( PI = 3.1415927 )
C
*******************************************************************
WRITE(*,'(1H1,'' **** PROGRAM MCNPT ****
WRITE(*,'(//'' MONTE CARLO IN A CONSTANT-NPT ENSEMBLE
WRITE(*,'( '' LENNARD-JONES ATOMS
C

'')')
'')')
'')')

** BASIC SIMULATION PARAMETERS **


WRITE(*,'('' ENTER RUN TITLE
READ (*,'(A)') TITLE
WRITE(*,'('' ENTER CONFIGURATION FILENAME
READ (*,'(A)') CNFILE
WRITE(*,'('' ENTER NUMBER OF CYCLES
READ (*,*) NSTEP
WRITE(*,'('' ENTER INTERVAL BETWEEN PRINTS IN CYCLES
READ (*,*) IPRINT
WRITE(*,'('' ENTER INTERVAL FOR UPDATE OF MAXIMUM
WRITE(*,'('' DISPLACEMENT OF ATOMS IN CYCLES
READ (*,*) IRATIO
WRITE(*,'('' ENTER INTERVAL FOR UPDATE OF MAXIMUM
WRITE(*,'('' DISPLACEMENT OF THE BOX IN CYCLES
READ (*,*) IRATB
WRITE(*,'(/'' ENTER THE FOLLOWING IN L-J REDUCED UNITS

'')')

WRITE(*,'('' ENTER POTENTIAL CUTOFF


READ (*,*) RCUT
WRITE(*,'('' ENTER DESIRED PRESSURE
READ (*,*) PRESUR
WRITE(*,'('' ENTER DESIRED TEMPERATURE
READ (*,*) TEMP

'')')

'')')
'')')
'')')
'')')
'')')
'')')
'')')

''/)')
'')')
'')')

WRITE(*,'(//1X,A)') TITLE
WRITE(*,'('' CONFIGURATION FILENAME

'',A)')

CNFILE
WRITE(*,'('' NUMBER OF CYCLES

= '',I6)')

WRITE(*,'('' PRINT INTERVAL

= '',I6)')

NSTEP
IPRINT
WRITE(*,'('' RATIO UPDATE INTERVAL FOR ATOMS = '',I6)')
IRATIO
WRITE(*,'('' RATIO UPDATE INTERVAL FOR BOX

= '',I6)')

IRATB
WRITE(*,'('' POTENTIAL CUTOFF
'',F10.5)')RCUT
WRITE(*,'('' DESIRED PRES.
'',F10.5)')PRESUR
WRITE(*,'('' DESIRED TEMP
'',F10.5)')TEMP
C
C

** READCN READS IN INITIAL CONFIGURATION **


** ORIGIN SHOULD BE AT CENTRE OF BOX
**

=
=
=

57

CALL READCN ( CNFILE, BOX )


C

** SET DEPENDENT PARAMETERS **


VOL
= BOX ** 3
BOXINV = 1.0 / BOX
DENS
= REAL ( N ) / VOL
IF ( RCUT .GT. ( 0.5 * BOX ) ) STOP 'CUT-OFF TOO LARGE'
DBOXMX
DRMAX
RMIN
BETA

=
=
=
=

BOX / 40.0
0.15
0.70
1.0 / TEMP

WRITE(*,'('' INITIAL DENSITY

= '',F10.5)')

DENS
C
C

** CALCULATE LONG-RANGE CORRECTIONS FOR LJ POTENTIAL.


**
** 6 IS FOR ATTRACTIVE CONTRIBUTIONS 12 IS FOR REPULSIVE **
SR3
SR9
VLRC12
VLRC6
WLRC12
WLRC6
VLRC
WLRC

=
=
=
= =
=
=
=

( 1.0 / RCUT ) ** 3
SR3 ** 3
8.0 * PI * DENS * REAL ( N ) * SR9 / 9.0
8.0 * PI * DENS * REAL ( N ) * SR3 / 3.0
4.0 * VLRC12
2.0 * VLRC6
VLRC12 + VLRC6
WLRC12 + WLRC6

** ZERO ACCUMULATORS **
ACM
= 0.0
ACATMA = 0.0
ACBOXA = 0.0
ACV = 0.0
ACP = 0.0
ACD = 0.0
ACVSQ = 0.0
ACPSQ = 0.0
ACDSQ = 0.0
FLV = 0.0
FLP = 0.0
FLD = 0.0

** CALCULATE INITIAL ENERGY AND VIRIAL **


CALL SUMUP ( RCUT, RMIN, OVRLAP, BOX, V12, V6, W12, W6 )
IF ( OVRLAP ) STOP 'OVERLAP IN INITIAL CONFIGURATION'

** CALCULATE THE INITIAL ENERGY AND VIRIAL **


VS = ( V12 + V6 + VLRC ) / REAL ( N )
WS = ( W12 + W6 + WLRC ) / REAL ( N )
PS = DENS * TEMP + ( W12 + W6 + WLRC ) / VOL

C
C

** ADD LONG RANGE CORRECTIONS **


** INTO THE ENERGY AND VIRIAL **

58

V12
V6
W12
W6

=
=
=
=

V12
V6
W12
W6

+
+
+
+

VLRC12
VLRC6
WLRC12
WLRC6

WRITE(*,'('' INITIAL V/N

= '',F10.6)')

WRITE(*,'('' INITIAL W/N

= '',F10.6)')

WRITE(*,'('' INITIAL P

= '',F10.6)')

VS
WS
PS
WRITE(*,'(//'' **** START OF MARKOV CHAIN ****'')')
WRITE(*,10001)
C
*******************************************************************
C
** MAIN LOOP STARTS
**
C
*******************************************************************
DO 100 STEP = 1, NSTEP
C

** LOOP OVER ATOMS STARTS **


DO 97 I = 1, N
RXIOLD = RX(I)
RYIOLD = RY(I)
RZIOLD = RZ(I)

** CALCULATE V FOR AN ATOM IN OLD STATE **


:

CALL ENERGY ( RXIOLD, RYIOLD, RZIOLD, I, RCUT, BOX,


V12OLD, V6OLD, W12OLD, W6OLD )
** MOVE ATOM I AND PICKUP CENTRAL IMAGE **
RXINEW = RXIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *

DRMAX
RYINEW = RYIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *
DRMAX
RZINEW = RZIOLD + ( 2.0 * RANF ( DUMMY ) - 1.0 ) *
DRMAX
RXINEW = RXINEW - ANINT ( RXINEW * BOXINV ) * BOX
RYINEW = RYINEW - ANINT ( RYINEW * BOXINV ) * BOX
RZINEW = RZINEW - ANINT ( RZINEW * BOXINV ) * BOX
C

** CALCULATE V FOR ATOM IN NEW STATE **


:

CALL ENERGY ( RXINEW, RYINEW, RZINEW, I, RCUT, BOX,


V12NEW, V6NEW, W12NEW, W6NEW )
** CHECK FOR ACCEPTANCE **
DELV12
DELV6
DELW12
DELW6
DELTV
DELTVB

=
=
=
=
=
=

V12NEW
V6NEW
W12NEW
W6NEW
DELV12
BETA *

- V12OLD
- V6OLD
- W12OLD
- W6OLD
+ DELV6
DELTV

59

IF ( DELTVB .LT. 75.0 ) THEN


IF ( DELTV .LE. 0.0 ) THEN
V12
V6
W12
W6
RX(I)
RY(I)
RZ(I)
ACATMA

=
=
=
=
=
=
=
=

V12 + DELV12
V6 + DELV6
W12 + DELW12
W6 + DELW6
RXINEW
RYINEW
RZINEW
ACATMA + 1.0

ELSEIF ( EXP ( - DELTVB ) .GT. RANF ( DUMMY ) )


THEN
V12
V6
W12
W6
RX(I)
RY(I)
RZ(I)
ACATMA

=
=
=
=
=
=
=
=

V12 + DELV12
V6 + DELV6
W12 + DELW12
W6 + DELW6
RXINEW
RYINEW
RZINEW
ACATMA + 1.0

ENDIF
ENDIF
VN
= ( V12 + V6 ) / REAL ( N )
PRES = DENS * TEMP + ( W12 + W6 )
C

/ VOL

** INCREMENT ACCUMULATORS **
ACM
ACV
ACP
ACD

=
=
=
=

ACM
ACV
ACP
ACD

+
+
+
+

1.0
VN
PRES
DENS

ACVSQ = ACVSQ + VN ** 2
ACPSQ = ACPSQ + PRES ** 2
ACDSQ = ACDSQ + DENS ** 2
97

CONTINUE

** ENDS LOOP OVER ATOMS IN ONE CYCLE

** ATTEMPT A BOX MOVE **


BOXNEW
RATBOX
RRBOX
RCUTN

BOX + ( 2.0 * RANF ( DUMMY ) - 1.0 ) * DBOXMX


BOX / BOXNEW
1.0 / RATBOX
RCUT * RRBOX

** CALCULATE SCALING PARAMETERS **


RAT6
RAT12

=
=
=
=

**

= RATBOX ** 6
= RAT6 * RAT6

** SCALE ENERGY, AND VIRIAL INCLUDING LRC **


V12NEW = V12
V6NEW = V6

* RAT12
* RAT6

60

W12NEW = W12
W6NEW = W6
C

** CALCULATE CHANGE IN ENERGY AND VOLUME **


DELTV
DPV
DVOL
DELTHB

* RAT12
* RAT6

=
=
=
=

V12NEW + V6NEW - V12 - V6


PRESUR * ( BOXNEW ** 3 - VOL )
3.0 * TEMP * REAL ( N ) * ALOG ( RATBOX )
BETA * ( DELTV + DPV + DVOL )

** CHECK FOR ACCEPTANCE **


IF ( DELTHB .LT. 75.0 ) THEN
IF ( DELTHB .LE. 0.0 ) THEN
V12
V6
W12
W6

=
=
=
=

V12NEW
V6NEW
W12NEW
W6NEW

DO 98 I = 1, N
RX(I) = RX(I) * RRBOX
RY(I) = RY(I) * RRBOX
RZ(I) = RZ(I) * RRBOX
98

CONTINUE
BOX
= BOXNEW
RCUT
= RCUTN
ACBOXA = ACBOXA + 1.0
ELSEIF ( EXP ( - DELTHB ) .GT. RANF ( DUMMY ) ) THEN
V12
V6
W12
W6

=
=
=
=

V12NEW
V6NEW
W12NEW
W6NEW

DO 99 I = 1, N
RX(I) = RX(I) * RRBOX
RY(I) = RY(I) * RRBOX
RZ(I) = RZ(I) * RRBOX
99

CONTINUE
BOX
= BOXNEW
RCUTN = RCUT
ACBOXA = ACBOXA + 1.0
ENDIF
ENDIF
BOXINV = 1.0 / BOX
VOL
= BOX ** 3
DENS
= REAL ( N ) / VOL

** CALCULATE ENERGY AND PRESSURE **


VN

= ( V12 + V6 ) / REAL ( N )

61

PRES = DENS * TEMP + ( W12 + W6 ) / VOL


C

** INCREMENT ACCUMULATORS **
ACM
ACV
ACP
ACD

=
=
=
=

ACM
ACV
ACP
ACD

+
+
+
+

1.0
VN
PRES
DENS

ACVSQ = ACVSQ + VN ** 2
ACPSQ = ACPSQ + PRES ** 2
ACDSQ = ACDSQ + DENS ** 2
C

** ENDS ATTEMPTED BOX MOVE **

** PERFORM PERIODIC OPERATIONS **


IF ( MOD ( STEP, IRATIO ) .EQ. 0 ) THEN

** ADJUST MAXIMUM DISPLACEMENT FOR ATOMS **


RATIO = ACATMA / REAL ( N * IRATIO )
IF ( RATIO .GT. 0.5 ) THEN
DRMAX = DRMAX * 1.05
ELSE
DRMAX = DRMAX * 0.95
ENDIF
ACATMA = 0.0
ENDIF
IF ( MOD ( STEP, IRATB ) .EQ. 0 ) THEN

** ADJUST MAXIMUM DISPLACEMENT FOR THE BOX **


BRATIO = ACBOXA / REAL ( IRATB )
IF ( BRATIO .GT. 0.5 ) THEN
DBOXMX = DBOXMX * 1.05
ELSE
DBOXMX = DBOXMX * 0.95
ENDIF
ACBOXA = 0.0
ENDIF
IF ( MOD ( STEP, IPRINT ) .EQ. 0 ) THEN

** OPTIONALLY PRINT INFORMATION **


:

WRITE(*,'(1X,I8,5(2X,F10.5))')
STEP, VN, PRES, DENS, RATIO, BRATIO

62

ENDIF
100

CONTINUE

C
*******************************************************************
C
** MAIN LOOP ENDS
**
C
*******************************************************************
WRITE(*,'(/1X,''**** END OF MARKOV CHAIN **** ''//)')
C

** WRITE OUT FINAL CONFIGURATION AND BOXLENGTH **


CALL WRITCN ( CNFILE, BOX )

** WRITE OUT FINAL AVERAGES **


NORM
AVV
AVP
AVD

=
=
=
=

REAL ( ACM )
ACV / NORM
ACP / NORM
ACD / NORM

ACVSQ = ( ACVSQ / NORM ) - AVV ** 2


ACPSQ = ( ACPSQ / NORM ) - AVP ** 2
ACDSQ = ( ACDSQ / NORM ) - AVD ** 2
IF ( ACVSQ .GT. 0.0 ) FLV = SQRT ( ACVSQ )
IF ( ACPSQ .GT. 0.0 ) FLP = SQRT ( ACPSQ )
IF ( ACDSQ .GT. 0.0 ) FLD = SQRT ( ACDSQ )
WRITE(*, 10002)
WRITE(*,'('' AVERAGES'',3(2X,F10.5))') AVV, AVP, AVD
WRITE(*,'('' FLUCTS '',3(2X,F10.5))') FLV, FLP, FLD
STOP
10001
FORMAT(//1X,' CYCLE
..POTENT.. ..PRESSURE..
..DENSITY..',
:
' ..RATIO.. ..BRATIO..')
10002
FORMAT(//1X,' CYCLE
..POTENT.. ..PRESSURE..
..DENSITY..')
END

SUBROUTINE SUMUP ( RCUT, RMIN, OVRLAP, BOX, V12, V6, W12, W6


)
COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** CALCULATES THE TOTAL POTENTIAL ENERGY FOR A CONFIGURATION.
**
C
**
**
C
** PRINCIPAL VARIABLES:
**

63

C
**
**
C
** INTEGER N
THE NUMBER OF ATOMS
**
C
** REAL
RX(N(,RY(N),RZ(N) THE POSITIONS OF THE ATOMS
**
C
** REAL
V
THE POTENTIAL ENERGY
**
C
** REAL
W
THE VIRIAL
**
C
** LOGICAL OVRLAP
TRUE FOR SUBSTANTIAL ATOM OVERLAP
**
C
**
**
C
** USAGE:
**
C
**
**
C
** THE SUBROUTINE RETURNS THE TOTAL POTENTIAL ENERGY AT THE
**
C
** BEGINNING AND END OF THE RUN.
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL
RX(N), RY(N), RZ(N)
REAL
RMIN, RCUT, V12, V6, W12, W6, BOX
LOGICAL
OVRLAP
REAL
REAL
REAL
INTEGER

RCUTSQ, RMINSQ, VIJ12, VIJ6


RXI, RYI, RZI, RXIJ, RYIJ, RZIJ
SR2, SR6, RIJSQ, BOXINV
I, J

C
*******************************************************************

OVRLAP
RCUTSQ
RMINSQ
BOXINV

=
=
=
=

.FALSE.
RCUT * RCUT
RMIN * RMIN
1.0 / BOX

V12
V6
W12
W6

=
=
=
=

0.0
0.0
0.0
0.0

** LOOP OVER ALL THE PAIRS IN THE LIQUID **


DO 100 I = 1, N - 1
RXI = RX(I)
RYI = RY(I)
RZI = RZ(I)
DO 99 J = I + 1, N
RXIJ
RYIJ
RZIJ

= RXI - RX(J)
= RYI - RY(J)
= RZI - RZ(J)

64

RXIJ
RYIJ
RZIJ

= RXIJ - ANINT ( RXIJ * BOXINV ) * BOX


= RYIJ - ANINT ( RYIJ * BOXINV ) * BOX
= RZIJ - ANINT ( RZIJ * BOXINV ) * BOX

RIJSQ = RXIJ * RXIJ + RYIJ * RYIJ + RZIJ * RZIJ


IF ( RIJSQ .LT. RMINSQ ) THEN
OVRLAP = .TRUE.
RETURN
ELSEIF ( RIJSQ .LT. RCUTSQ ) THEN
SR2
SR6
VIJ12
VIJ6
V12
V6
W12
W6

=
=
=
=
=
=
=
=

1.0 /
SR2 *
SR6 *
- SR6
V12 +
V6 +
W12 +
W6 +

RIJSQ
SR2 * SR2
SR6
VIJ12
VIJ6
VIJ12
VIJ6 * 0.5

ENDIF
99

CONTINUE

100

CONTINUE
V12
V6
W12
W6

=
=
=
=

4.0 * V12
4.0 * V6
48.0 * W12 / 3.0
48.0 * W6 / 3.0

RETURN
END

SUBROUTINE ENERGY ( RXI, RYI, RZI, I, RCUT, BOX,


V12, V6, W12, W6 )
COMMON / BLOCK1 / RX, RY, RZ

C
*******************************************************************
C
** CALCULATES THE POTENTIAL ENERGY OF I WITH ALL OTHER ATOMS
**
C
**
**
C
** PRINCIPAL VARIABLES:
**
C
**
**
C
** INTEGER I
THE ATOM OF INTEREST
**
C
** INTEGER N
THE NUMBER OF ATOMS
**
C
** REAL
RX(N),RY(N),RZ(N) THE ATOM POSITIONS
**
C
** REAL
RXI,RYI,RZI
THE COORDINATES OF ATOM I
**
C
** REAL
V
THE POTENTIAL ENERGY OF ATOM I
**

65

C
** REAL
W
THE VIRIAL OF ATOM I
**
C
**
**
C
** USAGE:
**
C
**
**
C
** THIS SUBROUTINE IS USED TO CALCULATE THE CHANGE OF ENERGY
**
C
** DURING A TRIAL MOVE OF ATOM I. IT IS CALLED BEFORE AND
**
C
** AFTER THE RANDOM DISPLACEMENT OF I.
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
REAL
RX(N), RY(N), RZ(N)
REAL
RCUT, BOX, RXI, RYI, RZI, V12, V6, W12, W6
INTEGER
I
REAL
REAL
INTEGER

RCUTSQ, VIJ12, VIJ6


RXIJ, RYIJ, RZIJ, RIJSQ, SR2, SR6, BOXINV
J

C
******************************************************************
RCUTSQ = RCUT * RCUT
BOXINV = 1.0 / BOX
V12
V6
W12
W6
C

=
=
=
=

0.0
0.0
0.0
0.0

** LOOP OVER ALL MOLECULES EXCEPT I

**

DO 100 J = 1, N
IF ( I .NE. J ) THEN
RXIJ
RYIJ
RZIJ

= RXI - RX(J)
= RYI - RY(J)
= RZI - RZ(J)

RXIJ
RYIJ
RZIJ

= RXIJ - ANINT ( RXIJ * BOXINV ) * BOX


= RYIJ - ANINT ( RYIJ * BOXINV ) * BOX
= RZIJ - ANINT ( RZIJ * BOXINV ) * BOX

RIJSQ = RXIJ * RXIJ + RYIJ * RYIJ + RZIJ * RZIJ


IF ( RIJSQ .LT. RCUTSQ ) THEN
SR2
SR6
VIJ12
VIJ6
V12
V6

=
=
=
=
=
=

1.0 /
SR2 *
SR6 *
- SR6
V12 +
V6 +

RIJSQ
SR2 * SR2
SR6
VIJ12
VIJ6

66

W12
W6

= W12 + VIJ12
= W6 + VIJ6 * 0.5

ENDIF
ENDIF
100

CONTINUE
V12
V6
W12
W6

=
=
=
=

4.0 * V12
4.0 * V6
48.0 * W12 / 3.0
48.0 * W6 / 3.0

RETURN
END

SUBROUTINE READCN ( CNFILE, BOX )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************
C
** SUBROUTINE TO READ IN THE CONFIGURATION FROM UNIT 10
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
CHARACTER
CNFILE*(*)
REAL
RX(N), RY(N), RZ(N)
REAL
BOX
INTEGER
CNUNIT
PARAMETER ( CNUNIT = 10 )
INTEGER
NN
C
********************************************************************
:

OPEN ( UNIT = CNUNIT, FILE = CNFILE, STATUS = 'OLD',


FORM = 'UNFORMATTED'
)
READ ( CNUNIT ) NN, BOX
IF ( NN .NE. N ) STOP 'N ERROR IN READCN'
READ ( CNUNIT ) RX, RY, RZ
CLOSE ( UNIT = CNUNIT )
RETURN
END

SUBROUTINE WRITCN ( CNFILE, BOX )


COMMON / BLOCK1 / RX, RY, RZ
C
*******************************************************************

67

C
** SUBROUTINE TO WRITE OUT THE CONFIGURATION TO UNIT 10
**
C
*******************************************************************
INTEGER
N
PARAMETER ( N = 108 )
CHARACTER
CNFILE*(*)
REAL
RX(N), RY(N), RZ(N)
REAL
BOX
INTEGER
CNUNIT
PARAMETER ( CNUNIT = 10 )
C
********************************************************************
:

OPEN ( UNIT = CNUNIT, FILE = CNFILE, STATUS = 'UNKNOWN',


FORM = 'UNFORMATTED'
)
WRITE ( CNUNIT ) N, BOX
WRITE ( CNUNIT ) RX, RY, RZ
CLOSE ( UNIT = CNUNIT )
RETURN
END

REAL FUNCTION RANF ( DUMMY )


C
*******************************************************************
C
** RETURNS A UNIFORM RANDOM VARIATE IN THE RANGE 0 TO 1.
**
C
**
**
C
**
***************
**
C
**
** WARNING **
**
C
**
***************
**
C
**
**
C
** GOOD RANDOM NUMBER GENERATORS ARE MACHINE SPECIFIC.
**
C
** PLEASE USE THE ONE RECOMMENDED FOR YOUR MACHINE.
**
C
*******************************************************************
INTEGER
L, C, M
PARAMETER ( L = 1029, C = 221591, M = 1048576 )
INTEGER
REAL
SAVE
DATA

SEED
DUMMY
SEED
SEED / 0 /

C
*******************************************************************

68

SEED = MOD ( SEED * L + C, M )


RANF = REAL ( SEED ) / M
RETURN
END

Vous aimerez peut-être aussi