Esempio n. 1
0
     6.12615     5.62330
     1.00000     1.00000
 n=6   2   1   E   135.64896     4.82387
     5.14075
     1.00000
%EndBlock PAO.Basis
""")

URLbase = "http://fisica.ehu.es/ag/siesta-psffiles/"
urllib.urlretrieve(URLbase + "Pb.psf", "Pb.psf") 

cell = Num.array([ [0.5,0.5,0.0], [0.5,0.0,0.5], [0.0,0.5,0.5]])
cell = 4.89*cell
atoms = ListOfAtoms([Atom('Pb', (0.0,0.0,0.0))], cell=cell, periodic=1)

for i in range(len(cutoffs)):
  cutoff = cutoffs[i]
  print i, cutoff
  a = Siesta(executable="$HOME/bin/siesta-2.6.9")          # Initialize object
###  a.SetOption("FilterCutoff"," 100.0 Ry")               # Optional Filtering
  a.SetOption("Meshcutoff", str(cutoff)+" Ry")
  a.SetOption("%include"," basis.fdf")
  energy[i], dum, dum2 = a.run(atoms)   # Run Siesta and get the (free)energy

#
# Plot
#
p.add(biggles.Curve(cutoffs[:],energy[:]))
p.show()
os.chdir(orig_dir) 
Esempio n. 2
0
output_file=os.path.abspath(label+".eggbox."+str(cutoff))
print "The output will be in file: ", output_file

# create a work subdirectory
orig_dir = os.getcwd()
import tempfile
workdir = tempfile.mkdtemp(prefix="eggbox.work.",dir=".")
print "Working directory: ", workdir
os.chdir(workdir) # move to dir
#
os.system("cp -p " + pseudo_file + " .")
os.system("cp -p " + basis_file + " .")
g=open(output_file,"w")

for i in range(len(disps)):
  d = i*dx/(m-1)
  # could generalize the displacement here (1,1,1), (1,0,1)...
  atoms=Crystal([Atom(symbol=symbol,label=label,position=(0,0,d))])
  atoms.SetUnitCell(cell,fix=True)
  atoms.SetBoundaryConditions(periodic=True)
  energy[i], force, stress = a.run(atoms)   # Run Siesta - get the (free)energy
  print  i, d, energy[i]
  fforce = [ float(j) for j in force[0]]
  g.write(" %10.6f %20.6f  %15.6f%15.6f%15.6f\n" % (float(d), float(energy[i]),  fforce[0], fforce[1], fforce[2] ))

#
g.close()
os.chdir(orig_dir)