root / ase / optimize / test / nanoparticle.py @ 1
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) |