[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