root / ase / optimize / test / nanoparticle.py @ 4
Historique | Voir | Annoter | Télécharger (1,53 ko)
| 1 |
#/usr/bin/env python
|
|---|---|
| 2 |
#PBS -l nodes=4:ppn=8
|
| 3 |
#PBS -l walltime=02:15:00
|
| 4 |
|
| 5 |
from ase import Atom, Atoms |
| 6 |
from ase.io import read |
| 7 |
from ase.constraints import FixAtoms |
| 8 |
from ase.optimize.test import run_test |
| 9 |
from gpaw import GPAW |
| 10 |
from gpaw import Mixer |
| 11 |
from gpaw.poisson import PoissonSolver |
| 12 |
|
| 13 |
name = 'nanoparticle'
|
| 14 |
|
| 15 |
def get_atoms(): |
| 16 |
atoms = Atoms([ |
| 17 |
Atom('Pd', [5.078689759346383, 5.410678028467162, 4.000000000000000]), |
| 18 |
Atom('Pd', [7.522055777772603, 4.000000000000000, 4.000000000000000]), |
| 19 |
Atom('Pd', [7.522055777772603, 6.821356056934325, 4.000000000000000]), |
| 20 |
Atom('Pd', [6.707600438297196, 5.410678028467162, 6.303627574066606]), |
| 21 |
Atom('N', [4.807604264052752, 5.728625577716107, 5.919407072553396]), |
| 22 |
Atom('H', [4.000000000000000, 5.965167390141987, 6.490469524180266]), |
| 23 |
]) |
| 24 |
|
| 25 |
constraint = FixAtoms(mask=[a.symbol == 'Pd' for a in atoms]) |
| 26 |
atoms.set_constraint(constraint) |
| 27 |
atoms.center(vacuum=4.0)
|
| 28 |
atoms.set_pbc(False)
|
| 29 |
return atoms
|
| 30 |
|
| 31 |
def get_calculator(): |
| 32 |
calc = GPAW(gpts=(64, 64, 64), #h=0.18, gives 64x60x60 |
| 33 |
mode='lcao',
|
| 34 |
basis='szp(dzp)',
|
| 35 |
nbands=-5,
|
| 36 |
xc='LDA',
|
| 37 |
width=0.1,
|
| 38 |
mixer=Mixer(beta=0.1, nmaxold=5, weight=50.0), |
| 39 |
poissonsolver=PoissonSolver(nn='M', relax='GS'), |
| 40 |
convergence={'energy': 1e-4, 'bands': -3},
|
| 41 |
stencils=(3, 3), |
| 42 |
txt='nanoparticle.txt')
|
| 43 |
return calc
|
| 44 |
|
| 45 |
run_test(get_atoms, get_calculator, name, fmax=0.05, steps=200) |