root / ase / optimize / test / C2_Cu100.py @ 4
Historique | Voir | Annoter | Télécharger (4,72 ko)
| 1 | 1 | tkerber | #PBS -l nodes=4:ppn=8
|
|---|---|---|---|
| 2 | 1 | tkerber | #PBS -l walltime=13:00:00
|
| 3 | 1 | tkerber | import numpy as np |
| 4 | 1 | tkerber | from ase import Atoms |
| 5 | 1 | tkerber | from ase.constraints import FixedPlane, FixAtoms |
| 6 | 1 | tkerber | from ase.optimize.test import run_test |
| 7 | 1 | tkerber | from gpaw import GPAW, Mixer |
| 8 | 1 | tkerber | from gpaw.poisson import PoissonSolver |
| 9 | 1 | tkerber | |
| 10 | 1 | tkerber | def get_calculator(): |
| 11 | 1 | tkerber | basis = 'szp(dzp)'
|
| 12 | 1 | tkerber | calc = GPAW(gpts=(64, 64, 128), # ca h=0.25 |
| 13 | 1 | tkerber | width=0.1,
|
| 14 | 1 | tkerber | nbands=-5,
|
| 15 | 1 | tkerber | xc='LDA',
|
| 16 | 1 | tkerber | mode='lcao',
|
| 17 | 1 | tkerber | txt='C2_Cu100.txt',
|
| 18 | 1 | tkerber | mixer=Mixer(beta=0.1, nmaxold=5, weight=50.0), |
| 19 | 1 | tkerber | poissonsolver=PoissonSolver(nn='M', relax='GS'), |
| 20 | 1 | tkerber | stencils=(3, 3), |
| 21 | 1 | tkerber | maxiter=400,
|
| 22 | 1 | tkerber | basis=basis) |
| 23 | 1 | tkerber | return calc
|
| 24 | 1 | tkerber | |
| 25 | 1 | tkerber | def get_atoms(): |
| 26 | 1 | tkerber | srf = Atoms('Cu64',[(1.2763, 1.2763, 4.0000), |
| 27 | 1 | tkerber | (3.8290, 1.2763, 4.0000), |
| 28 | 1 | tkerber | (6.3816, 1.2763, 4.0000), |
| 29 | 1 | tkerber | (8.9343, 1.2763, 4.0000), |
| 30 | 1 | tkerber | (1.2763, 3.8290, 4.0000), |
| 31 | 1 | tkerber | (3.8290, 3.8290, 4.0000), |
| 32 | 1 | tkerber | (6.3816, 3.8290, 4.0000), |
| 33 | 1 | tkerber | (8.9343, 3.8290, 4.0000), |
| 34 | 1 | tkerber | (1.2763, 6.3816, 4.0000), |
| 35 | 1 | tkerber | (3.8290, 6.3816, 4.0000), |
| 36 | 1 | tkerber | (6.3816, 6.3816, 4.0000), |
| 37 | 1 | tkerber | (8.9343, 6.3816, 4.0000), |
| 38 | 1 | tkerber | (1.2763, 8.9343, 4.0000), |
| 39 | 1 | tkerber | (3.8290, 8.9343, 4.0000), |
| 40 | 1 | tkerber | (6.3816, 8.9343, 4.0000), |
| 41 | 1 | tkerber | (8.9343, 8.9343, 4.0000), |
| 42 | 1 | tkerber | (0.0000, 0.0000, 5.8050), |
| 43 | 1 | tkerber | (2.5527, 0.0000, 5.8050), |
| 44 | 1 | tkerber | (5.1053, 0.0000, 5.8050), |
| 45 | 1 | tkerber | (7.6580, 0.0000, 5.8050), |
| 46 | 1 | tkerber | (0.0000, 2.5527, 5.8050), |
| 47 | 1 | tkerber | (2.5527, 2.5527, 5.8050), |
| 48 | 1 | tkerber | (5.1053, 2.5527, 5.8050), |
| 49 | 1 | tkerber | (7.6580, 2.5527, 5.8050), |
| 50 | 1 | tkerber | (0.0000, 5.1053, 5.8050), |
| 51 | 1 | tkerber | (2.5527, 5.1053, 5.8050), |
| 52 | 1 | tkerber | (5.1053, 5.1053, 5.8050), |
| 53 | 1 | tkerber | (7.6580, 5.1053, 5.8050), |
| 54 | 1 | tkerber | (0.0000, 7.6580, 5.8050), |
| 55 | 1 | tkerber | (2.5527, 7.6580, 5.8050), |
| 56 | 1 | tkerber | (5.1053, 7.6580, 5.8050), |
| 57 | 1 | tkerber | (7.6580, 7.6580, 5.8050), |
| 58 | 1 | tkerber | (1.2409, 1.2409, 7.6081), |
| 59 | 1 | tkerber | (3.7731, 1.2803, 7.6603), |
| 60 | 1 | tkerber | (6.3219, 1.3241, 7.6442), |
| 61 | 1 | tkerber | (8.8935, 1.2669, 7.6189), |
| 62 | 1 | tkerber | (1.2803, 3.7731, 7.6603), |
| 63 | 1 | tkerber | (3.8188, 3.8188, 7.5870), |
| 64 | 1 | tkerber | (6.3457, 3.8718, 7.6649), |
| 65 | 1 | tkerber | (8.9174, 3.8340, 7.5976), |
| 66 | 1 | tkerber | (1.3241, 6.3219, 7.6442), |
| 67 | 1 | tkerber | (3.8718, 6.3457, 7.6649), |
| 68 | 1 | tkerber | (6.3945, 6.3945, 7.6495), |
| 69 | 1 | tkerber | (8.9576, 6.3976, 7.6213), |
| 70 | 1 | tkerber | (1.2669, 8.8935, 7.6189), |
| 71 | 1 | tkerber | (3.8340, 8.9174, 7.5976), |
| 72 | 1 | tkerber | (6.3976, 8.9576, 7.6213), |
| 73 | 1 | tkerber | (8.9367, 8.9367, 7.6539), |
| 74 | 1 | tkerber | (0.0582, 0.0582, 9.4227), |
| 75 | 1 | tkerber | (2.5965, -0.2051, 9.4199), |
| 76 | 1 | tkerber | (5.1282, 0.0663, 9.4037), |
| 77 | 1 | tkerber | (7.6808, -0.0157, 9.4235), |
| 78 | 1 | tkerber | (-0.2051, 2.5965, 9.4199), |
| 79 | 1 | tkerber | (2.1913, 2.1913, 9.6123), |
| 80 | 1 | tkerber | (5.0046, 2.5955, 9.4873), |
| 81 | 1 | tkerber | (7.5409, 2.5336, 9.4126), |
| 82 | 1 | tkerber | (0.0663, 5.1282, 9.4037), |
| 83 | 1 | tkerber | (2.5955, 5.0046, 9.4873), |
| 84 | 1 | tkerber | (5.3381, 5.3381, 9.6106), |
| 85 | 1 | tkerber | (7.8015, 5.0682, 9.4237), |
| 86 | 1 | tkerber | (-0.0157, 7.6808, 9.4235), |
| 87 | 1 | tkerber | (2.5336, 7.5409, 9.4126), |
| 88 | 1 | tkerber | (5.0682, 7.8015, 9.4237), |
| 89 | 1 | tkerber | (7.6155, 7.6155, 9.4317)]) |
| 90 | 1 | tkerber | c2=Atoms('C2', [(3.2897, 3.2897, 10.6627), |
| 91 | 1 | tkerber | (4.2113, 4.2113, 10.6493)]) |
| 92 | 1 | tkerber | srf.extend(c2) |
| 93 | 1 | tkerber | srf.pbc=(1, 1, 0) |
| 94 | 1 | tkerber | srf.set_cell([ 10.2106, 10.2106, 20.6572],scale_atoms=False) |
| 95 | 1 | tkerber | |
| 96 | 1 | tkerber | mask=[a.index < 32 for a in srf] |
| 97 | 1 | tkerber | c1 = FixedPlane(-1, (1/np.sqrt(2), 1/np.sqrt(2), 1)) |
| 98 | 1 | tkerber | c2 = FixedPlane(-2, (1/np.sqrt(2), 1/np.sqrt(2), 1)) |
| 99 | 1 | tkerber | constraint = FixAtoms(mask=mask) |
| 100 | 1 | tkerber | srf.set_constraint([constraint, c1, c2]) |
| 101 | 1 | tkerber | return srf
|
| 102 | 1 | tkerber | |
| 103 | 1 | tkerber | run_test(get_atoms, get_calculator, 'C2_Cu100') |