Plasmapy: Add period, group, block, and category for each element

Created on 6 Dec 2017  路  5Comments  路  Source: PlasmaPy/PlasmaPy

Each element in the periodic table has a _period_ and a _group_ related to its chemical properties. Each row in the periodic table corresponds to a period, whereas each column corresponds to a group. For example: lithium is in period 2, group 1 and helium is in period 2, group 18. Elements of the same group have similar chemical properties. The periodic table contains four _blocks_ ('s', 'p', 'd', and 'f') named after characteristic orbitals. Additionally, there are different categories. For example, the periodic table from LANL uses the following categories: alkali metal, alkaline earth metal, transition metal, post-transition metal, metalloid, lanthanide, actinide, nonmetal, halogen, noble gas (see also the IUPAC recommendations for nomenclature of inorganic chemistry from 2005).

I propose that we add functionality to get period, group, block, and category information for each element as an enhancement for the atomic subpackage. The steps to do this are:

  • [ ] Add period information to Elements dictionary
  • [ ] Add group information to Elements dictionary
  • [ ] Add block information to Elements dictionary
  • [ ] Add category information to Elements dictionary
  • [ ] Create a function to retrieve an element's period (perhaps periodic_table_period)
  • [ ] Create a function to retrieve an element's group (perhaps periodic_table_group)
  • [ ] Create a function to retrieve an element's block (perhaps periodic_table_block)
  • [ ] Create a function to retrieve an element's category (perhaps periodic_table_category)

The Elements dictionary is in plasmapy/atomic/elements.py. Each function should have a docstring and tests. Different function names would be fine if you can think of something more readable. I did notice some differences in categories from different references, so it'd probably be best to cite what reference we use to get the category information.

Thank you! 馃敩 馃敪

Cross-references because I know too many librarians: #52, #104, #105

Good first contribution Particles low

All 5 comments

Also, there are too few emoji available on GitHub that are related to chemistry.

I think I can help with this, mind if I give it a crack?

Hey @jams2, sure! I'm sure @namurphy would appreciate some help with this. Make sure to coordinate though!

That would be great, @jams2! I'll be working on atomic.py sometime in the next two weeks, but separately from this. Many thanks!

@namurphy happy to help. I'm looking at the functions now, I'm definitely not an expert on the subject matter. Should I anticipate the same range of inputs as atomic_symbol and isotope_symbol (so checking for _is_neutron etc.), or is this a more general case where expected inputs will be atomic number, symbol, element name?

Was this page helpful?
0 / 5 - 0 ratings