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)
f.close() label = os.path.basename(pseudo_file[:-len(".psf")]) pseudo_file = os.path.abspath(pseudo_file) print "Processing ", pseudo_file print "Element label, symbol: ", label, symbol a=10.0 # Default box length in Ang cell=Num.array([(a, 0, 0), (0, a, 0), (0, 0, a)]) a = Siesta(executable="$HOME/bin/siesta-test") # Initialize object a.SetOption("DM.NumberPulay","3") a.SetOption("DM.UseSaveDM","T") a.SetOption("UseSaveDM","T") a.SetOption("Meshcutoff", str(cutoff)+" Ry") # # Make sure that your fdf has been patched to allow long %include filenames # a.SetOption("%include",basis_file) m=20 # Number of displacements to try disps=Num.zeros(m,Num.Float) energy=Num.zeros(m,Num.Float) output_file=os.path.abspath(label+".eggbox."+str(cutoff)) print "The output will be in file: ", output_file