|
Radiation damage in metals
|
The spICED code
Classical molecular dynamics (MD) is concerned chiefly with calculating representative trajectories of point-like atoms.
In the Ehrenfest dynamics approximation we simultaneously solve equations updating the electronic state using a Hamiltonian explicitly dependent on atomic position.
Any Ehrenfest dynamics code will therefore have many of the features of an MD code, but with the additional requirement that electronic wavefunctions be tracked.
Even a minimal orthogonal s-band tight-binding basis set requires ½ N(N+1) complex numbers to describe fully, where N is the number of orbitals, and so the challenge of generating an efficient parallel Ehrenfest code for large N is very different from that for MD.
The total energy of the system of electrons and ions is written
|
E = Tr( H0 ρ ) + ε[ ρ ] + φ( x ) + ½ Σi pi2 / mi .
|
[1]
|
where
H0 is a single particle Hamiltonian,
φ( x ) is the classical ion-ion interaction energy if the ions at positions x,
pi and mi are the position and momentum of the ith atom, and
ρ is a density matrix, constructed from an orthonormal set of single particle time-evolving wavefunctions
| φa > each occupied with fa electrons:
|
ρ = Σa fa | φa >< φa |.
|
[2]
|
In metals the density matrix may not be truncated and must be stored explicitly.
If N is large this matrix will quickly become too big to fit on one processor.
Note that H0 can be truncated in metals, as the hopping integrals between distant atoms can be assumed zero.
H0 is therefore sparse, and its distribution is therefore not an issue.
The time derivative of the density matrix is given by the quantum Liouville equation:
|
i ħ ρ˙ =
[ H0 + δ ε / δ ρ , ρ ].
|
[3]
|
The time derivatives of the positions and momenta are given by the velocities and forces, where
|
Fi =
p˙i =
- Tr( ρ ∇i H0 )
- ∇i ε
- ∇i φ( x ).
|
[4]
|
We have developed a new code "spICED",
sparse
parallel
Imperial
College
Ehrenfest
Dynamics.
This code integrates the equations of Ehrenfest dynamics, distributing the large dense matrix ρ across the processors.
It has been used to generate all the simulation results on these pages.
A full description of the working of the code is in preparation for publication.
Obtaining a copy of the code
The code is in a stable form now.
There will hopefully be a public release if we can resolve support issues, but this will not be until 2009.
Any groups interested in getting hold of a prerelease copy should contact Daniel or Adrian directly ( see under People tab ).