[ase-users] A short script for making a periodic table
Michael Joseph Waters
michael.j.waters at northwestern.edu
Wed Jan 22 17:47:21 CET 2020
Hi Jens Jørgen,
Wow thanks! I'm adding that to my C.V.
I was hoping that someday ASE-GUI might have a UI periodic table like Avogadro (https://www.openchemistry.org/wp-content/uploads/2014/05/periodictable-avo2.png).
But I'm a terrible UI programmer, so I made the code for positioning the elements in on a grid.
Best,
-Mike
________________________________
From: Jens Jørgen Mortensen <jjmo at dtu.dk>
Sent: Wednesday, January 22, 2020 4:16 AM
To: Michael Joseph Waters <michael.j.waters at northwestern.edu>; ase users <ase-users at listserv.fysik.dtu.dk>
Subject: Re: [ase-users] A short script for making a periodic table
Den 13.01.2020 kl. 16.54 skrev Michael Joseph Waters via ase-users:
> Hi all,
>
> I made a short script that creates the row and column positions for each
> element in the periodic table. I think it's handy if you are picking a
> color set.
Thanks! I've added it to our gallery:
https://urldefense.proofpoint.com/v2/url?u=https-3A__wiki.fysik.dtu.dk_ase_dev_gallery_gallery.html-23periodic-2Dtable&d=DwID-g&c=yHlS04HhBraes5BQ9ueu5zKhE7rtNXt_d012z2PA6ws&r=IWIXV02QNefgPQmc-Ovk6evJ6KEOZjyl5g4atrVIlcJ4WAvRgH8dNpuAIeIrVHn4&m=lNkBRT8wAmS5I29lb76zSVAKpG6MYJumrFLovgn-dN4&s=9jjDASlezdl-7cLCBy6VFOvZIGEo5P7gEUmwmUcfVRk&e=
Jens Jørgen
>
>
> ############### generates column, row positions for each element
> x, y = 1, 1 # column, row , initial coordinates for Hydrogen
> position_list = [(0,0,0)]
> zmax = 118
> for z in range(1,zmax+1):
> if z==2: x += 16
> if z==5: x += 10
> if z==13: x += 10
> if z==57 or z==89: y+=3
> if z==72 or z==104:
> y-=3
> x-=14
> position_list.append((x,y,0))
> x += 1
> if x > 18:
> x=1
> y+=1
> ################### now for viewing
> from ase.data import chemical_symbols, colors
> from ase import Atoms, Atom, io
> import numpy as np
>
> spacing = 2.5
>
> atoms = Atoms()
> for z in range(1,zmax+1):
> symbol = chemical_symbols[z]
> position = spacing *np.array(position_list[z])
> position[1] = -position[1]
> atoms.append(Atom(symbol, position=position))
>
> io.write('ptable.xyz',atoms)
>
> from ase.visualize import view
> view(atoms)
>
> I hope someone finds it useful.
>
> Cheers,
> -Mike
>
> _______________________________________________
> ase-users mailing list
> ase-users at listserv.fysik.dtu.dk
> https://urldefense.proofpoint.com/v2/url?u=https-3A__listserv.fysik.dtu.dk_mailman_listinfo_ase-2Dusers&d=DwID-g&c=yHlS04HhBraes5BQ9ueu5zKhE7rtNXt_d012z2PA6ws&r=IWIXV02QNefgPQmc-Ovk6evJ6KEOZjyl5g4atrVIlcJ4WAvRgH8dNpuAIeIrVHn4&m=lNkBRT8wAmS5I29lb76zSVAKpG6MYJumrFLovgn-dN4&s=7xvxEhjeHfbUIxXgijL6JzDN6HTsE6boJGZHwxLayks&e=
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20200122/0bf3ff55/attachment-0001.html>
More information about the ase-users
mailing list